Why are reviews and inspections important? Because they affect the quality a project’s deliverable. The quality of product is generally positively correlated with value. As the quality of a project’s deliverable increases, the higher that product is valued. Quality influences at least five major components of value:
- Usability: Higher quality products are by definition more usable than the same product with lower quality. For example, I am an avid Evernote user, however recently I discovered a latent bug that broke the app for over a month. The lack of usability negatively impacted my perception of quality (even thought their customer service resolved the situation).
- Reduced Maintenance: A product with a smaller number of latent defects will require fewer fixes (less maintenance) than the same product with more defects. Every dollar spent on fixing defects in production is a dollar that can’t be spent on new features. Improving quality increases the budget that can be spent on development and enhancements.
- More Output: Increasing development quality helps an IT organization deliver more value. As noted, reduced maintenance provides more time for development. Secondly, it is a commonly held belief that a defect discovered earlier in the development cycle requires less effort to fix than one found later in the development cycle. The effort to fix a defect is typically called rework. The lower the amount of rework a project has to deliver, the more time that will be available to deliver value.
- Cost: Improving quality lowers rework and reduces maintenance, which translates directly to a lower cost per unit of work delivered. A simple metric is cost is cost per function point. Lower costs generally make everyone happy, specifically those people than have to manage the IT budget.
- Customer satisfaction: Quality and customer satisfaction are highly interrelated. Customer satisfaction is influenced by many different attributes. Product quality is a broader concept than just product quality, however without product quality few of the other project attributes (for example team professionalism and empathy for your customers needs) matter. Increased quality is generally linked to increased customer satisfaction. When a team’s customers are satisfied the team’s job satisfaction increases, which leads to improved performance and even higher quality. A cycle of improving quality and customer satisfaction is a virtuous circle.
Reviews and inspections are a method for improving the quality of the products a team delivers. In a perfect world we would have a perfect engineering process that would allow a project team to gather requirements, design, build, and deliver a perfect solution. The perfect engineering process would not require the burden of management approvals, reviews, inspections, or even testing. Real world engineering processes will never be perfect. Therefore, every project team must work hard to balance the level of quality an organization needs (or can afford) with the cost of testing. Reviews and inspections tend to be less costly than testing because they can be applied earlier in the development cycle. As a result, they help to tip the balance toward quality.