Game Development Reference
In-Depth Information
Inspections are more structured than reviews. Fagan Inspections are one particular
inspection methodology from which many others have been derived. They were defined
by Michael Fagan in the 1970s based on his work at IBM, and are now part of the Fagan
Defect-Free Process. You can find out more about his process at
A Fagan Inspection follows these steps:
1. Planning
2. Overview
3. Preparation
4. Meeting
5. Rework
6. Follow-Up
7. Causal Analysis
The inspection meeting is limited to four people, with each session taking no more
than two hours. Larger work should be broken up into multiple sessions. These guide-
lines are based on data that shows a decline in the effectiveness of the inspection if
these limits are exceeded. If you don't know your inspection rates, such as pages per
hour or lines of code per hour, measure them for the first 10 or so inspections you do.
Then use those results to calculate how many sessions are needed for any future
In the Fagan Inspection method, each participant plays a specific role in the inspec-
tion of the material. The Moderator, who is not the Author, organizes the inspection
and checks that the materials to be inspected satisfy predefined criteria. As with the
checklist reviews, you will need to establish these criteria for different items that you
will be inspecting. Once the criteria are met, the Moderator schedules the review
meeting, plus an “overview�? session that takes place prior to the review. This is to discuss
the scope and intent of the inspection with the participants. Participants may also
have questions that can be answered here or soon after the meeting. Typically there
should be two working days between the overview and the inspection meeting. This
is to give reviewers adequate preparation time.
Each of the inspectors is assigned a role to play in the inspection meeting. The Reader
is expected to paraphrase the material being inspected. The idea is to communicate
any implied information or behavior that the Reader interprets to see if it matches the
Author's intended function. For example, here is a line of code to read:
LoadLevel(level[17], highRes, 0);
Search WWH ::

Custom Search