Saturday, April 09, 2005

Expecting Zero Defects

If you expect zero defects a fundamental change in thinking occurs. Do I mean to say that no single defect will ever occur? No. I mean that we treat every defect as something really, really bad, and figure out how to prevent that class of defect from occurring again.

Lean Manufacturing production lines encourage each assembly worker to stop the line if a defect appears. Paradoxically, lean production lines almost never stop.

In Scientifically Managed production lines, only the manager can stop the line, yet they often crash because defects are not reported creating bigger problems downstream.

Expect zero defects and you realize that the way you schedule, test, program, and release software all needs to change to accomplish your goal. And since 80% of current software project dollars are spent removing defects the goal of Zero Defects becomes financially justifiable.

Extreme Programming has a practice of Test-First coding that is fundamental in achieving the goal of Zero Defects. Test-First coding requires that an automated unit-test is written before the production code and the test-to-code cycle time be 5-15 minutes long. Additionally, automated acceptance testing insures that the correct business value is delivered. Acceptance tests are built directly from the requirements before the production code is written. All tests are built one at a time immediately before each piece of production code. Moving the tests to the front of the process gains efficiencies in providing a tight discipline and direction to the team.