Course Description: "Software Inspections and Peer Reviews"

Karl Wiegers

Description:Effective peer reviews of all types of software work products are essential if software development organizations are to reduce their cost of producing software. Formal inspections of requirements specifications, designs, source code, and other work products are a proven means for finding errors and improving the quality of software products. This course shows software practitioners how to effectively apply both formal inspections and less formal reviews to software products. The inspection process and roles are described in detail. An practice inspection session will help students learn to conduct effective reviews on their own projects.
Objectives: On completion of this course, the student will be able to:
  • Explain why peer reviews add value at all stages of software development.
  • Describe the differences between formal and informal reviews.
  • List the participants in an inspection and describe their roles.
  • Describe the activities performed at each stage in an inspection.
  • Summarize the guidelines for conducting a successful review.
  • Select an appropriate review strategy for each work product.
Audience:This course will be useful to software engineers, managers, and others who wish to learn how to search systematically for defects in software work products of any kind. Non-software people who review requirements documents have also found the course to be easy to understand.
Format:Blend of lecture, class discussion, video, and a practice inspection.
Biography: Karl E. Wiegers is Principal Consultant with Process Impact in Portland, Oregon. Previously, he spent 18 years at Eastman Kodak Company, including experience as a photographic research scientist, software developer, software manager, and software process and quality improvement leader. Karl received a B.S. degree in chemistry from Boise State College, and M.S. and Ph.D. degrees in organic chemistry from the University of Illinois. He is a member of the IEEE, IEEE Computer Society, and ACM. Karl is the author of the books Peer Reviews in Software: A Practical Guide (Addison-Wesley, 2002), Software Requirements, 2nd Edition (Microsoft Press, 2003) and Creating a Software Engineering Culture (Dorset House, 1996), and more than 160 articles on many aspects of computing, chemistry, and military history. He is a frequent speaker at software conferences and professional society meetings.

Outline for "Software Inspections and Peer Reviews" (1 day):

I. Introduction to Software Peer Reviews

  • definition and objectives of reviews
  • discussions about reasons why people donít do reviews now and what kind of work products can be reviewed
  • peer reviews and process improvement
  • building reviews into the project plan
  • relative cost of fixing defects depending on when found
  • reported benefits of reviews
  • peer reviews and process improvement models
  • effectiveness of testing vs inspection

II. Software Inspections

  • what makes a review formal
  • what kind of people should review various work products
  • definition of inspections
  • inspection entry and exit criteria
  • roles of inspection participants
  • characteristics of effective moderators
  • inspection rates
  • the inspection process and descriptions of the stages of an inspection
  • the inspection package
  • defect checklists
  • inspection records and forms
  • metrics to keep on your inspections

III. Other Peer Review Methods

  • other review methods besides inspections, including team reviews, walkthroughs, and peer deskchecks
  • pluses and minuses of formal inspections vs informal reviews

IV. Making Peer Reviews Work for You

  • video and discussion: "Scenes of Software Inspections"
  • guidelines for successful reviews
  • documenting your organizationís peer review process
  • critical success factors for reviews
  • review traps to avoid

V. Practice inspection

  • overview meeting
  • individual preparation
  • inspection meeting, with role playing