Software quality is a nuanced concept that requires a framework that addresses functional, structural and the process of the software delivery understand. Measurement of each aspect is a key tool for understanding whether we are delivering a quality product and whether our efforts to improve quality are having the intended impact. However, measurement can be costly. To balancing the effort required to measure quality versus the benefit, you first need to understand the reasons for measuring quality. Five of reasons quality is important to measure include:
- Safety – Poor quality in software can be hazardous to human life and safety. Quality problems can impact the functionality of the software products. Jon Quigley discussed the impact of configuration defects that effected safety in SPaMCAST 346.
- Cost – Quality issues cost money to fix. Whether you believe that a defect is 100x more costly to fix late in the development cycle or not, doing work over because it is defective does not deliver more value than doing it right once.
- Customer Satisfaction (internal) – Poor quality leads stakeholders to look for someone else to do your job or perhaps shipping your job and all your friend’s jobs somewhere else. Recognize that the stakeholders experience as the software is being developed, tested and implemented is just as critical as the raw number of defects.
- Customer Satisfaction (external) – Software products that don’t work, are hard to use (when they don’t need to be), or are buggy don’t tend not to last long in the marketplace. Remember that in today’s social media driven world every complaint that gets online has a ripple effect. Our goal should be to avoid problems that can be avoided.
- Future Value – Avoiding quality problems increases the amount of time available for the next project or the next set of features. Increasing quality also improves team morale, improved team morale is directly correlated with increased productivity (which will increase customer satisfaction and reduce cost).
In October 2015 Forbes predicted the Top Ten CIO Concerns for 2016; the list is littered with words and phrases like ‘alignment with the business’, ‘time-to-market’, ‘productivity’, and ‘efficiency’. While I am cherry picking a bit, the broad definition of quality that includes functional, structural and process aspects is ABSOLUTELY at the core of the value quality delivers. Because quality is so important measuring quality has become a passionate topic in many organizations. There are lots of reasons to measure quality, but one major reason is to find a lever to improve quality. The problem with the passion for measuring quality is that there are a huge number of measures and metrics that people have tried, learned from, and possibly abandoned because they have not learned from them. Almost every measure and metric used to understand quality meets a specific need making the decision of which set of measures to use requires matching business needs with your stomach for measurement. We will begin that discussion next.
May I ask a favor? I am pitching a presentation and exercise for Agile DC 2016. Can you click the link, read the abstract and if you would like me to do the session “like” (click the heart). The link is:
Note: We will circle back to complete the discussion of how Agile fares in a world full of moral hazards in two weeks.