Chapter 10 – Software Inspections

  • A peer review of a programmer’s work to find problems and to improve quality
  • Our ability to find errors in our own work is impaired due to congnitive dissonance
  • Improve quality of programs by assisting programmers to recognize and fix their own errors early in the coding process. This is why it is easy to find bugs, especially GUI related, in new programmer’s work products. They don’t yet have the experience to spot them on their own.
  • Inspections help to motivate better work by avoiding being embarrassed by sloppy mistakes and through the pride of exhibiting a quality work product
  • Inspections examine work technically and provide the producers with an independent assessment of those product areas where improvements are needed.
  • Since inspections are expensive, they should be limited to those items where the benefir is likely to be work the cost.
  • Primary objectives
    • Find errors ar the earliest possible point in the development cycle
    • Ensure that the appropriate parties technically agree on the work
    • Verify that the work meets predefined criteria
    • Formally complete a technical task
    • Provide data on the product and inspection process
  • Secondary objectives
    • Ensure that associates workers are technically aware of the product
    • Help build an effective technical team
    • Help utilize the best talents in the organization
    • Provide people with a sense of achievement and participation
    • Help the participants develop their skills as a reviewer
  • Basic Inspection Principles
    • The inspection is a formal, structured process with a system of checklists and defined roles for participation
    • Generic checklists and standards are developed for each inspection type and where appropriate, they are tailored to specific project needs
    • The reviewers are prepared in advance and have identified their concerns and questions before the inspection starts
    • The focus of the inspection is on identifying problems, not resolving them
    • An inspection is conducted by technical people for technical people
    • Inspection data is entered in the process database and used both to monitor inspection effectiveness and to track and manage product quality
  • Conduct of Inspections
    • Inspections should be conducted at every point in the development or maintenance process at which intermediate products are produced
    • Inspections must be an explicit part of every project plan
    • Inspection participants
      • Moderator – responsible for leading the inspection expeditiously and efficiently to a successful conclusion
      • Producer(s) – those responsible for the work being inspected
      • Reviewers – people who are directly concerned and aware of the work being reviewed
      • Recorder – records the significant inspection results
    • limit attendance to 5 or 6 reviewers
    • only technical participants; inclusion of management distorts participants’ objectivity
    • use inspection data to measure the project’s progress, no to evaluate people
    • 3/4 of the errors found in well-run inspections are found during preparation so prepare!
  • Inspection Training
    • Moderators need a complete grounding in the principles and methods of inspection before they can do a competent job
    • It is desirable to broaden the training program to include all potential inspection participants
  • Reports and Tracking
    • It is essential to track inspection completions to ensure they are done
    • Much can be learned about inspection effectiveness from a brief study of the data
  • Inspection sessions should not exceed about 2 hours
  • It is wise to include new reviewers in each inspection to ensure that fresh perspectives are brought in
  • Not advisable to cover two different designs at the same time
  • When reviewers become embroiled in minor details they often overlook important problems
  • Organizations become progressively more efficient at doing inspections as they gain experience
  • Inspection Efficiency: defects found by inspection / total defects found by inspection and test
  • Quality Index: defects found in field use / total defects found during development