Peer reviews and inspections use a straight-forward, organized approach for conducting an evaluation of a work product. The approach is designed to detect potential defects in a product and to methodically evaluate each defect to identify solutions and track incorporation of these solutions into the product. A product could be almost anything that is being produced, including documentation, designs, manufactured goods, or, in the case of software, the code. The value of this approach is that it is simple to understand and, when adhered to, can result in a very efficient method of identifying defects early in a product's life cycle. This topic provides guidance for projects implementing peer reviews and formal inspections, in accordance with the existing best practices, standards, and guidance at NASA. This topic also provides a procedural overview that cross-references to other resources for more information. Role Responsibility Author The author: Moderator The moderator is the single person responsible for overseeing the inspection process and obtaining a good inspection. The moderator does this by: Inspectors Inspectors: Managers Managers are essential to the success of an inspection. They: Software Assurance (SA) SA Representatives: Figure 1, Inspection Process Activity Diagram, illustrates an activity diagram for the inspection process. Activities to be performed in each phase are discussed in detail in the following sections. Figure 1 - Inspection Process Activity Diagram The purpose of this phase is to: Activities to be completed during this phase are performed by the moderator and include: Determining whether an overview meeting is needed. If an overview meeting is needed, make sure to schedule it at this point. Calculating the time required for inspection, based on the amount of material that needs to be reviewed, and assuming each inspection meeting will last no more than 2 hours in duration. To understand how much material the team can review per unit of time, use metrics from your own organization (if available) or general recommendations, such as the ones included in NASA-STD-2202.93, Software Formal Inspections Standard 277. You may need to iteratively replan which material will be reviewed, based on the amount of time that is available. It is important to remember that, while the inspection process itself should not change, the details of how it is applied in different contexts should change. The greatest benefit can be received from an inspection by using the process appropriately and by understanding how to focus it on the specific areas of concern for the various work products being inspected. To ensure the right quality focus during the planning phase, the moderator: More detail about which aspects of the inspection can be adapted (to reflect the quality focus) and which cannot (to avoid omitting important and proven best practices) is provided in NASA-STD-2202.93 277, which is currently under review. The purpose of this phase is to provide inspectors with the background information needed to properly inspect the technical work product, which may include: Activities to be completed during this phase include: The purpose of this phase is to give inspectors time to: Activities to be completed during this phase include: (1) Each inspector should: (a) Review the assigned checklist to refresh memory of the issues that should be focused on during the review. (2) The moderator reviews the degree of preparation work done by inspectors and: (a) Organizes the inspection meeting by making note of where the problem areas seem to be (and where there is sure to be some discussion during the meeting). The purpose of this phase is to: Activities to be completed during this phase include: If a third hour activity is needed, make sure to schedule it at this point. Activities to be completed during this phase include: The purpose of this phase is to remove known defects from the work product. Activities to be completed during this phase include: The purpose of this phase is to: Activities to be completed during this phase include: There is a need for local champions and management support. Development teams who implement inspections need trained moderators and support materials. Providing explicit training helps improve effectiveness. Inspections work best if management is not present at inspections, removing the threat that defect information could be used to evaluate workers. The primary inhibitors to inspection use seem to be in the realm of developer motivation: inspections can be perceived as being labor intensive in nature, although the return on investment, when done correctly, rewards the effort spent. Table 4.1 below provides guidance on what products a project will need to inspect/peer review to meet NPR 7150.2. The software products to be inspected/peer reviewed will depend on the classification of the project. Table 4.1 - Reference Documentation Table Tools to aid in compliance with this Topic, if any, may be found in the Tools Library in the NASA Engineering Network (NEN). NASA users find this in the Tools Library in the Software Processes Across NASA (SPAN) site of the Software Engineering Community in NEN. The list is informational only and does not represent an “approved tool list”, nor does it represent an endorsement of any particular tool. The purpose is to provide examples of tools being used across the Agency and to help projects and centers decide what tools to consider. A substantial body of data and experience justifies the use of inspections on requirements. Finding and fixing requirements problems during requirements analysis is more cost effective than doing so later in the life cycle and is substantially cheaper than finding and fixing the same defects after delivery of the software. Data from NASA, as well as from numerous other organizations, such as IBM, Toshiba, the Defense Analysis Center for Software, all confirm this effect. 277 The effectiveness of inspections for defect detection and removal in any artifact has also been amply demonstrated. Data from numerous organizations have shown a reasonable rule of thumb to be that a well-performed inspection typically removes between 60 and 90 percent of the existing defects, regardless of the artifact type. 277 A documented lesson from the NASA Lessons Learned database notes the following: Deficiencies in Mission Critical Software Development for Mars Climate Orbiter (1999) (Software Reviews can Result in Loss of Spacecraft), Lesson Number 0740: Experience at NASA has also shown that a lack of software reviews can result in loss of spacecraft: "1. Non-compliance with preferred software review practices may lead to mission loss. 2. To identify mission critical software, require concurrent engineering and thorough review by a team of systems engineers, developers, and end users... 3) For all mission critical software (or software interfaces between two systems or two major organizations), systems engineers, developers, and end users should participate in ... walkthroughs of requirements, design, and acceptance plans." 521
See edit history of this section
Post feedback on this section
1. Purpose and Roles
1.1 Introduction
1.2 Purpose
1.3 Roles
Representatives2. Process Overview
Note: Clear diamonds represent optional path; see descriptions below.2.1 Planning
(a) Reader.
( b) Recorder. 2.1.1 Defining the Review Perspectives, Quality Focus, and Checklists
2.2 Overview
2.3 Preparation
(b) Examine the materials for understanding and possible defects.
(c) Prepare for the assigned role (reader, recorder, moderator), if applicable.
(d) Record the total time spent in preparation and communicate that to the moderator.
(e) Provide an indication to the moderator that individual preparation work has been completed and that the individual is ready for the team meeting.
(b) Makes the "GO" or "NO GO" decision on the inspection meeting, i.e., determines whether the team can proceed and is likely to have an effective discussion or whether the meeting and discussion should be postponed until additional preparation work can be done.
(c) Records the total time spent on preparation by the team to allow for later analysis of the effort and cost of the inspection.2.4 Inspection Meeting
(a) The reader presents an appropriate amount of the work product to the inspection team in a logical and orderly manner. The amount should be selected so as to be large enough to have a meaningful discussion over quality issues but not so large that it does not have a logical cohesion. In other words, the reader should not cover the document line by line, yet should not present huge sections either.
(b) The inspectors discuss potential issues, determine if there is really a defect there to be fixed, and classify the resulting defects found.
(c) The recorder maintains a list of the defects found, along with classifications and dispositions.
(d) Issues that require some additional information to resolve are also recorded as action items and assigned to a member of the inspection team to be resolved outside of the inspection meeting. 2.5 Third Hour
The third hour is an optional phase – an unstructured stage in an otherwise highly structured process. There are two possible forms for the third hour:2.6 Rework
2.7 Followup
3. Barriers and Enablers
4. Resources
4.1 Reference Documentation Table
4.2 Resources
4.3 Tools
5. Lessons Learned
7.10 - Peer Review and Inspections Including Checklists
Web Resources
View this section on the websiteUnknown macro: {page-info}