Page 30 - The Art of Designing Embedded Systems
P. 30
Disciplined Development 1 7
One study showed that, as a rule of thumb, each defect identified
during inspection saves around 9 hours of time downstream.
AT&T found inspections led to a 14% increase in productivity and
a tenfold increase in quality.
HP found that 80% of the errors detected during inspections were
unlikely to be caught by testing.
HP, Shell Research, Bell Northern, and AT&T all found inspec-
tions 20 to 30 times more efficient than testing in detecting errors.
IBM found that inspections gave a 23% increase in productivity
and a 38% reduction in bugs detected after unit test.
So, though the inspection may cost up to 20% more time up front, de-
bugging can shrink by an order of magnitude or more. The reduced num-
ber of bugs in the final product means you’ll spend less time in the
mind-numbing weariness of maintenance as well.
There is no known better way tofind bugs than through Code ln-
spections! Skipping inspections is a sure sign of the amateur firmware
jockey.
The Inspection Team
The best inspections come about from properly organized teams.
Keep management off the team. Experience indicates that when a manager
is involved usually only the most superficial bugs are caught, since no one
wishes to show the author to be the cause of major program defects.
Four formal roles exist: the Moderator, Reader, Recorder, and
Author.
The Moderator, always technically competent, leads the inspection
process. He or she paces the meeting, coaches other team members, deals
with scheduling a meeting place and disseminating materials before the
meeting, and follows up on rework (if any).
The Reader takes the team through the code by paraphrasing its op-
eration. Never let the Author take this role, since he may read what he
meant instead of what was implemented.
A Recorder notes each error on a standard form. This frees the other
team members to focus on thinking deeply about the code.
The Author’s role is to understand the errors and to illuminate un-
clear areas. As Code Inspections are never confrontational, the Author
should never be in a position of defending the code.
An additional role is that of Trainee. No one seems to have a clear
idea how to create embedded developers. One technique is to include new
folks (only one or two per team) into the Code Inspection. The Trainee

