Software Review

Software review is an extremely important technique used to assure the quality, functionality, and other features of your software. Unlike many of the other techniques for assuring quality that I have talked about in this blog, software review doesn’t follow an exact formula or a standard. I believe it gives you more freedom and in many cases depends on the person coding and the reviewer. What software reviews enable is the opportunity for people in your team to test your code and tell you of possible errors, improvements, etc.

Some of the most common software review practices include:

  • Code review: Systematic examination of the source code used to fix mistakes and remove vulnerabilities.
  • Pair Programming: In this type of code review, two programmers work together on one workstation and develop code. More people working in one piece of code enables the opportunity to bring up ideas that only one person might not have and gives more than one point of view for solving problems which is always good.
  • Walkthrough: For this review, a developer leads a team of software developers to go through a software product. Questions are asked and necessary comments are made about defects and errors.
  • Technical review: A technical review is more formal, qualified personnel review the software product and examine if its suitable enough for its intended use.
  • Inspection: This is another formal type of peer review in which experienced and qualified individuals examine software for bugs and defects using a defined process.

These were mainly software peer review techniques, there are other types of reviews used in later stages by management representatives. They are mainly used to evaluate work status and decisions regarding downstream activities are taken from there.

One final type of review I will talk about is audit reviews. These are external reviews in which one or more auditors that are not from the development team conduct an independent examination of your software product. Done by managerial level people.

A software product is not only comprised by code but includes everything related to the product itself like plans, requirements, design, etc. What I explained above is mainly focused on code review but there are also techniques you can use to review all the other key work products in your software. What is important to understand is that reviews will always (or at least should) come from people from that specific area that is being reviewed. You can’t ask someone from the design team to review someone’s back-end code. So reviewing these other key components of a software product is pretty much the same. Although I am sure there are other specific types of reviews, standards and techniques used to review them, the basic idea is to have someone else to help you find errors and improvements. Reviews don’t have to be as specific or strict as they are described above. A designer might have no use for “pair programming” but taking the core idea and using it from a design perspective would mean having someone help you design your software and make decisions as you start thinking about solutions for the product. Another example are technical reviews, people focused on the budget area might want to review your budget plan before moving forward. Does the fact that it doesn’t have code make it different from the technical review I talked about earlier? Not really, the core ideas are the same.

In conclusion, software reviews are extremely important when it comes to fixing errors and helping improve your software. They are not limited to code and the basic idea of most if not all the reviews can be translated into other areas to make sure that you are producing software to the best of you and your company’s ability.

External links:

Software review

Software Review

And for our last topic of this partial we haaaaave… sooftware review!!! *claps*

  1. Definition and characteristics of review
  2. Activities and roles for each review
  3. How to review the key work products: plans, requirements, design, and code

Software review is an important part of the software life cycle, assisting engineers in validating quality, functionality and other vital features and components in the sofware. It can be seen as a systematic examination of a document by one or more individuals who try and find any mistakes in it, specially during the early stages of this cycle, some examples of this documents are “test plans” or “test cases”.

We can pinpoint the main objective of software review and it’s characteristics by understanding what is the purpose or the objectives of using this process:

  1. Improve the productivity of the development team.
  2. Make the testing process time and cost effective.
  3. Finish our product with as few defects as possible, reaching the definition listed in our requirements as close as we can.
  4. Eliminate inadequacies, garbage code and anything which is not listed as a requirement

Productivy guys!!!

Finally, we can say there are 3 main types of software reviews:

Software Peer Review:

Focuses on the process of assessing the technical content and quality of the product, conducted by the author of the work product along with some other developers.

Software Management Review:

Software Management Review evaluates the work status. In this section decisions regarding downstream activities are taken.

Software Audit Review:

It’s a type of external review in which one or more critics, not part of the development team, organize an independent inspection of the software product and its processes to assess their compliance with stated specifications and standards.

As for the processes and activities we usually have in software review:

  1. Entry Evaluation:A standard check-list is used by entry criteria in order to ensure an ideal condition for a successful review.
  2. Management Preparation:During this stage of the process, a responsible management ensures that the software review has all the required resources, which includes things like staff, time, materials, and tools.
  3. Review Planning:To undergo a software review, an objective is identified. Based on the objective, a recognized team of resources is formed.
  4. Preparation:The reviewers are held responsible for preparing group examination to do the reviewing task.
  5. Examination and Exit Evaluation:In the end, the result made by each reviewer is combined all together. Before the review is finalized, verification of all activities is done that are considered necessary for an efficacious software review.