In this day-and-age of "perfection", review is extremely vital to get effective and quality results. Review helps individuals to learn new skills and provides them a way to assess their own work and improve it. Likewise, in software development too, review plays an immensely valuable role that helps developers and other members of the project develop an effective & defectless product that is in compliance with the stated requirements and standards.
Formal review is one such type of software review, which follows a set of steps and is more regulated and structured than its counterpart, informal review. Therefore, to help you understand formal review better, here is a detailed discussion on the same.
Defining Formal Review:
Formal review is one of the most important review technique used in Static Testing. Conducted by a group of 3 or more individuals, this type of software review follows a formal approach and helps developer, programmers, and other members of the project verify the quality as well as the standards of the software product. With the assistance of formal review, one can review various components of the software, such as software design, code, structure, requirements, and more. The main objective of formal review is to evaluate software’s conformance with specifications and plans as well as to ensure the change integrity. Here, the management or the technical leaders follow the recommendations and ensure that changes are documented and incorporated into the external process.
Reviews, whether formal or informal, are usually conducted early in the software development process, which enables early detection and elimination of defects and issues, and prevents excessive expenditure of time and money. Therefore, to get accurate results it is necessary for one to conduct formal review during the early stages of software development.
Activities of Formal Review:
Formal review, as mentioned above, is a well controlled, structured, and regulated process that follows defined steps for evaluating various documents and features of the software. Following these steps is extremely important as they enable the team of developers to ensure the efficiency, quality, and effectiveness of the software. Therefore, the steps for formal review are:
Planning: The initial stage of the whole review process, planning is extremely important. It is during this stage that a request to review the software and its components is presented by the the author to the moderator, where the author is the Review or Inspection Leader and the moderator is the individual who takes care of all the follow-ups on the rework and is responsible for scheduling the time, date, and place of various meetings. Moreover, the moderator also performs the entry checks and considers the exit criteria.
Other the activities that are conducted during this stage are:
Entry checks are performed by the reviewer to ensure that time is not wasted on a document that is not ready for review. This saves time and efforts of the moderator.
Exit criteria is decided, which checks whether the document is ready for formal review or not.
After performing entry checks and deciding exit criteria, the author and moderator decide the document that needs to be reviewed.
Also, the appropriate tasks and roles are allotted to the team members.
Kick-Off: This is the second stage of the formal review process, where the leader defines the main objective and goal of review to the whole team. Though, kick-ff is an optional stage of the review process, it offers a better understanding to the team about the relationship between the document under review and other documents. Moreover, to provide clarity to the people concerned, results of entry check and defined exit criteria is also discussed here.
Individual Preparations: As the name suggests, here the reviewers review the document individually based on the provided checklists, documents, rules, and procedures. Furthermore, while reviewing the document, these reviewers identify and check for defects and offer their comments, which are later combined and recorded with the assistance of logging form.
Review Meeting: This usually involves three phases, logging, discussion, and decision, wherein different tasks related to the document under review is performed.
Logging: The issues identified in the preparation stage are logged here by the author or scribe. These issues are further categorized according to their severity: critical, major, & minor.
Discussion: The reviews provided at this stage are found to be cost effective, as they are identified at the earlier stage, as the cost of rectifying a defect in the later stages would be much more than doing it in the initial stages.
Decision: After the commencement of review meeting, the team is tasked to make a decision regarding the document under review, which can be based on exit criteria.
Rework: If the number of defects found are more than an expected level, then the document has to be reworked. However, not every defect requires rework and it is the responsibility of the author to decide whether issue needs to be attended or not.
Follow Up: During this stage of the formal review process, the moderator makes sure that the author has taken care of all the defects. Moreover, the moderator appoints the task of checking the updated documents to all the participants and records their feedbacks, while making sure accurate and correct information is recorded and stored.
From the above discussion, we can conclude that software review is a vital part of software development life cycle (SDLC) that helps developers and other members related to the project, to improve the quality and other components of the software. With the assistance of software review, a team can effortlessly identify and resolve issues from the software product, while meeting its requirements, standards, and other necessary criteria. In short, software review is an helpful process that allows developers to deliver a quality product to the client.