Finding Adequate Metrics for Quality in Software Development
In the quest for quality software, different stakeholders own different quality domains. The article, written by Michael Kutz, delves into the complexities of measuring software quality. It identifies three domains of quality: Outer Quality (owned by product people), Inner Quality (owned by developers), and Process Quality (owned by managers). The article warns of the potential side effects of measuring quality, such as gaming the metrics or discouraging collaboration. It emphasizes the need for metrics that answer specific questions that help reach clear goals, and it explores various metrics that can be used to assess the different domains of quality.
Key Insights:
1. The Double-Edged Sword of Metrics
- Metrics can guide us towards quality but can also be gamed or lead to unintended consequences. For example, focusing on code coverage might lead to writing tests that don’t test anything meaningful.
2. The Importance of Clear Goals
- A good metric should answer a specific question that helps to reach a clear goal. This makes it possible to adjust the metrics as goals and questions evolve.
3. The Three Domains of Quality
- Outer Quality is about the user’s experience and is owned by product people. Inner Quality, owned by developers, is about the maintainability and structure of the code. Process Quality, owned by managers, is about the efficiency and effectiveness of the development process.
The article is “Finding Adequate Metrics for Outer, Inner, and Process Quality in Software Development.“