I went to Smidig 2007 earlier this week, and it was pretty good. The highlight came at the end of two intense days of lightning talks and open spaces, when Tom Gilb offered to give a session on agile inspections to three other guys and me.
Tom Gilb is known to many as an authority on software inspection, but as he made a point of himself, his 1993 book isn’t agile. The big problem with inspections is that they take a lot of time, especially if you want them anywhere close to being effective. The Pareto principle doesn’t apply here. You don’t find 80% of the defects during the first 20% of the review session. If you try to cover a lot of material in a short time, the effectiveness will be close to zero, because the checkers won’t be able to look closely at anything. Gilb claims that the optimal effectiveness occurs when you inspect about a page per hour, or 20-30 lines of code per hour. Even then, inspections won’t get more than 60% effective. Who can afford to review everything?
How can you do this more agile? By redefining the purpose of the inspection. The traditional view is to use inspections to find as many defects as possible (ideally all of them), so that they can be fixed. Forget that, it’s futile anyway. Look at inspections as a way to measure quality, not as a way to detect bugs. Use inspections as a way to enforce the lean principle of building quality in. By inspecting just a small amount of material, you can get the job done in an hour, and you will know if the material is of sufficient quality. If it isn’t, ask the author to rework it. The idea is that he will learn about quality requirements gradually by participating in the review, and he will find out on his own how to build more quality in. At the second round of inspection, quality will hopefully have improved, but it may still be insufficient with regard to your exit criteria. In that case, you repeat.
When the material finally gets approved, you will have achieved the following:
- Production material meeting your quality standards.
- One of your co-workers has learned a lot about quality and is much more likely to produce good material next time.
- You didn’t have to inspect very much.
See Gilb’s own information about all of this here. I’d love to hear your opinions.