Remember that a big part of the testing effort is about making sure that what you have already done still works. Making a commitment to having a goal of zero defects is one part of the effort. Taking the steps towards being able to execute on that goal is another.
- Automation–How much automation are you doing? The more the better–for both unit testing and acceptance testing, and as part of your automated build process.
- Regression–Do you have regression testing built in? You need to make sure that what you are doing today does not break what you did yesterday.
- Continuous Testing–Has anything broken that used to work? Once a piece of code is done, it should always continue working. Never lower the bar. If something that you do breaks something that you have done, fix it immediately.
- Tools–How can you achieve a state where most defects are fixed within an hour? To start, the less human involvement, the better. Create an environment where the bulk of your testing effort is automated as part of your build process. If you don't have the tools to support this effort, then get them. If the goal is to fix a defect in one hour, and if it takes your automated testing process 10 minutes to verify and validate the built code, that leaves you 50 minutes with which to fix any failures and still achieve the goal of fixing a defect in one hour.
- Training–Let your team know that code quality matters.
- Time–It's worth saying again: make time for your team to be able to have good testing habits. It's the single best way to work towards the goal of eliminating defects.