Fagan Inspection is a method to find defects. It is a structured process that involves detecting defects in development documents like programming code, specifications, designs etc., during the various phases of software development process. The term Fagan is named after Michael Fagan, who incorporated various software formal software inspection methods.
In Fagan inspection method, a given activity has a predefined entry and exit criteria. So for every activity which has an entry and exit criteria, the Fagan inspection process offers a way to validate whether the output complies with the exit criteria intended for that activity.
Roles in Fagan Inspection Process :
The Fagan Inspection process involves the following roles to be carried out by the members of the team. They are as follows:
Moderator :This person is responsible for monitoring the inspection process. That is , the responsibility to schedule meetings, report inspection results, controls meetings, and follow up on various issues. Conducting inspections requires a moderator to understand the skills of people and ensure there's no conflict between technical and non-technical people.
Author :Responsible for maintaining the work product being inspected. The author may answer the questions raised during the inspection process.
Reader :The reader's responsibility is to simply describe what is written in the work product and elaborate it to the team members.
Recorder :Records the defects or issues being raised during the inspection process.
Inspector :This is a general role performed by almost all the team members irrespective of the specific roles assigned to them, that is, trying to find out errors in the product. This is a continuous activity throughout the life of the work product.
Inspection Activities/Process :
A formal inspection method consists of the following activities.
Planning :The moderator begins with planning the inspection activities, that is, forming the inspection team, gathering the necessary resources required during the inspection process, and distributes the necessary documents among the inspection team prior beginning the inspection process. Every document required for inspection should be clear, for instance the code should execute cleanly, and the listings (for defects) should be numbered.
Overview Meeting :This part of the inspection process is concerned with discussions regarding the important features of the product. This process may be skipped if the key points are known to the participants in advance.
Preparation :Participants are expected to examine the work product before beginning with the inspection process, to be able to raise issues or to see if any defect is detected. In short one needs to prepare himself in advance for the inspection meeting so that whatever is to be discussed, they are able to provide their individual feedback.
Inspection Meeting :This is the phase where the moderator begins leading the team, that is, the inspection process begins. The team is led by the moderator and the reader. If the moderator feels that the time allotted to the inspection meeting is insufficient, then he can reschedule the meeting at a later date.
Casual Analysis :This method deals with identifying the causes that leads to the occurrence of defects, thus allowing us to figure out ways to take preventive measures to avoid such defects to arise further.
Rework :The author shoulders the responsibility of solving issues or defects. The author must at least prepare an approximate estimation to deal with defects.
Follow-up :By the time the necessary rework is done, the moderator follows up with the author to check whether changes have been made correctly or not. The product must pass the inspection followed by this process. The defects should have resolved by now and the unresolved issues must be documented in a defect tracking system.
In pursuit of a successful inspection process, an inspection team should ideally follow the guidelines listed below.
The meeting should be conducted with a clear agenda in mind. There should be mutual respect among the team members taking part in the inspection process, to ensure free flow of ideas.
The idea behind the entire activity of inspection is not confined to pointing at the defects only. One should focus on the products positive aspects in terms of benefits it offers.
Pointing out the style of work may be a little inappropriate. That is, everyone has their own unique style/way of writing code, preparing designs etc. An error/defect raised should not be related to their individual styles, unless it impacts the performance of the product.
Reviewing the product should be a continuous activity. Since the beginning of the code, if team members find even the slightest faults, then that must be dealt with immediately.
Inspection Characteristics :
An inspection process should be budgeted, planned and scheduled.
A well-defined process should be adopted to begin with.
Team members must possess appropriate knowledge to actively participate in the inspection process.
To carry out the various roles of the inspection process, necessary training must be provided.
Having a defined entry and exit criteria is very important.
To have a quantitative assessment of the reviews, one should prepare checklists and define standards , based on which the inspection process must proceed.
The main idea behind this Fagan inspection methodology is to find out defects and devise a solution for the same. This inspection strategy follows a defined set of rules/process adhering to which one is able to attain the desired goal, to deal with bugs.