4.16. Find the Cause at the Root

Traditionally, defect prevention refers to identifying root causes of defects in a software life cycle and preventing them from recurring. It involves collecting defect data in a defect repository, analyzing and identifying the root causes of the most severe defects, and applying a systematic methodology to improve the software development process in order to prevent these defects from recurring.

Your team should be trained to "concentrate on vital few and not trivial many" defects. For example, once a vital defect such as a "dangling pointer" has been detected in a code module, this defect needs to be corrected, and a process should be established to prevent any future "dangling pointers" in the code.

Root causes might originate in methods, technology, or people. Once the root cause of the problem has been determined, action must be taken to prevent it from recurring. Finding the root cause of a defect often allows for fixing a whole class of defects. The entire system, therefore, becomes more stable and attains a higher level of quality.

The focus is always on improving the process, not merely repairing the defect.

Some people dismiss this approach as both costly and impractical for software. Developers and IT managers may tell you that "patching up" bugs without identifying their root causes is faster and more efficient than going to all the bother of root-cause analysis.

Do not listen to them. The ad-hoc, one-bug-at-a-time ap- proach provides ...

Get The Next Leap in Productivity: What Top Managers Really Need to Know about Information Technology now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.