Inspections are peer reviews by trained individuals using a formal, structured method. Inspections represent the gold standard for reviews. According to Capers Jones, inspections are highly effective in removing over 97% of requirements defects. Data that I have collected supports the view that inspections are the most effective means of early defect removal. The issue is that very few people do inspections for two basic reasons. The first is that inspections are expensive (they require time and effort) and inspections are uncomfortable for those being reviewed. Inspections require specific set of roles and a specific process.
Moderator – The moderator leads the team through the process ensuring everyone participates and follows the rules. The moderator will also ensure that metrics are collected and that the defects that are identified are correct and recorded.
Author – The author is the person that created the deliverable being reviewed. He or she will participate in the inspection, providing feedback and developing an understanding of the defects being identified.
Reviewers – Reviewers read the deliverable and identify defects BEFORE the inspection meeting. The pre-work is critical and needs to be turned into the scribe before the inspections meeting.
Scribe – The scribe insures that all participants have provided their feedback before the inspection team meets. The scribe also combines all of the feedback to ensure that only unique items are discussed in the inspection meeting. During the inspection meeting, the scribe records feedback on the defects identified during the pre-work and records any new defects that are identified during the meeting. After the meeting they keep track of the defects to make sure they are tracked to completion. The data collected by the scribe feeds the measures and metrics.
- Plan the inspection process: The plan needs to ensure that the process is followed and that need lead times are built in.
- Kick off meeting: The moderator explains the goal and reviews the plan for the inspection. The moderator will also ensure that all reviewers are aware of any organizational standards that need to be applied during the inspection. I suggest that during the kickoff meeting that the reviewer lets the moderator know if they will have a problem meeting the due dates and if they feel they are unqualified to perform reviews.
- Distribute the deliverable that will be inspected. Note in today’s collaborative environments this may mean send a link to the document that will be inspected.
- Individual preparation: Each reviewer reads the material being reviewed and records all defects identified using the format identified in the kick-off meeting. Also keep track and record the time you spend on the review. Send the defects identified to the scribe before the inspection meeting. For large deliverables the scribe may need up a week to consolidate all of the feedback. Collaboration tools can save time and effort to consolidate the feedback.
- Inspection Meeting: The inspection meeting is the core event. Generally each reviewer goes over the unique defects they identified. As a moderator, use a round robin process with each reviewer walking the author through an item. The author can ask questions or point out why something identified is not a defect, but under no circumstance can anything identified be debated. Moderators need to ensure that the feedback stays technical and not personal. Being told you made a mistake is never fun. Reviewers that did not complete the pre-work are not allowed to participate. Scribes make sure comments are recorded and all defects that are really defects are recorded for follow up.
- Rework and Follow Up: After the inspection meeting the author needs to resolve the defects found in the inspection. Some organizations have rules about which defects must be corrected and which can be deferred. Major problems may require a further inspection. The moderator will usually make this type of determination based on organizational standards and the level of criticality of the project. The time required for rework is useful data for process improvement and determining whether inspections are effective.
- Retrospective: Always do a retrospective on the process to improve how you are doing inspections. The moderator should ensure that the retrospective occurs (it should be part of the plan).
- Process Improvement: The data collected during the review process can be used to improve the process in the IT department, to identify training needs and to decide what types of work should be inspected. The moderator or process improvement personnel will do the analysis needed for process improvement.
Inspections are very effective if the team doing the inspection understands the process and the deliverable being reviewed. For example, if you are doing a code review on a program written in Ruby don’t gather a group of reviewers that have never coded in Ruby. They are not qualified. Also, everyone involved in the process needs to trust each other. All reviews, in general, and specifically inspections (because they very formal) can be very stressful for the author. The level of stress can cause authors to avoid inspections or short cut the process; which means that defects will be found later in the development process or in production. Inspections remove defects in code or any other deliverable before they get into production or before lots of time is spent on building something that will need to be changed before it goes into production.