Page 83 -
P. 83

members is that they would have built the software differently had they been given a bet-
                          ter understanding of what was needed from the beginning. One important root cause of
                          these problems is defects in work products that are not caught until long after those work
                          products have been used as the basis for later project activities.
                          The most important reason to inspect documents is to prevent defects. If the team starts
                          building software based on a vision and scope document that has a serious defect, eventu-
                          ally the entire project will have to stop and reverse course. This can be very expensive in
                          both effort and morale, because the team will need to backtrack and revise the require-
                          ments, design, code, test plans, and other work products that they have already put a lot
                          of effort into implementing. The same goes for defects that were caught in other work
                          products—defects missed in a design specification, for example, will have to be corrected
                          later after they have been coded. The longer a defect goes uncorrected, the more
                          entrenched it is in other work products; the more entrenched it is, the more time and
                          effort it will take to fix.
                          According to a report by the Software Engineering Institute, it costs more to not do inspec-
                          tions than it does to do them. A national survey of software engineering teams found that
                          in a typical inspection, four to five people spend one to two hours preparing for inspec-
                          tions, followed by one to two hours to hold an inspection meeting. The total effort
                          required for the inspection, therefore, is 10 to 20 person-hours; this effort results in the
                          early detection of an average of 5 to 10 defects. (On the average, these defects, if left in the
                          document, would require either 250 to 500 lines of new code or modification of 1000 to
                          1500 lines of legacy code to repair if they were eventually caught—which would almost
                          certainly require well over 20 person-hours of programmers’ time!) This is a very high
                          return on investment; few tools, techniques, or practices are as effective as inspections for
                          increasing the quality of the software.

                          Inspections are easy to implement, and have an immediate effect on quality and consen-
                          sus-building. A small team spending a few hours inspecting a work product will catch
                          errors that could potentially save weeks, or even months, of wasted effort. An effective
                          inspection requires a well-chosen team, a moderator who is able to run the meeting, and
                          an author who is willing to listen to criticism and fix the work product being inspected.

                          Choose the Inspection Team
                          The job of the inspection team is to work with the author of the document in order to
                          identify any defects. A defect is any problem in the document that will prevent an inspector
                          from approving it. Once a problem is identified, the inspection team must work to come
                          up with a solution that will fix the problem. When the team meets to inspect the docu-
                          ment, they will be expected to come up with solutions to the defects that they find. The
                          project manager must select a team that can perform this function. This means that each
                          inspector needs to have enough familiarity with the project and the way the work product
                          will be used to understand its problems and propose changes. (Team members who use
                          the document in their day-to-day work should have no problem with this.)




                                                                                                REVIEWS  75
   78   79   80   81   82   83   84   85   86   87   88