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
   25   26   27   28   29   30   31   32   33   34   35