Practical programmer: inspections—some surprising findings

S omeone recently asked me to name the three best software engineering practices. After mulling over the question, I came up with the equivalent of a realtor’s answer: “inspections, inspections, and inspections.” (Realtors are said to say that the three most important criteria for choosing a place to live are “location, location, and location.”) What I meant by that only slightly facetious answer is that inspections, by all accounts, do a better job of errorremoval than any competing technology (that is, inspections tend to find more errors), and they do it at lower cost (the cost per error found is lower). There are plenty of studies that keep coming up with the same findings—fully 90% of software errors can be found by inspections before the first test case is run. Now don’t take this to mean that I’m a hot-blooded inspection zealot. I know inspections, if done correctly, are hard work. They require many people to perform them, and in these days of schedule-driven projects, just finding those people is a hard task. Inspections require preparation, and where does that time come from? They require rigorous thinking, the kind that exhausts participants after only an hour or two of participation. And given the typical productivity figure of 100 lines of code per hour of successful inspection, they are extremely costly, all