Continuous Quality or CQ is a software engineering practice in which isolated changes (or deltas) are immediately analyzed for the code's quality and the properties of maintainability, and reported on before they are added to a code base. The goal of CQ is to provide rapid feedback so that if issues are found that can affect maintainability of the code or contribute to increasing the technical debt, they can be identified and corrected as soon as possible.
CQ helps developers identify and fix defects and quality issues as early in the development process as possible. Since most common issues are fixed very early, implementing CQ also improves productivity during manual code reviews, so reviewers can get more time to do high-order qualitative review instead of worrying about trivial defects.
What are the components of Continuous Quality?
CQ is consisted of the following processes in the development workflow:
- Static analysis to catch defects, anti-patterns and ensure standardization
- Manual code review for qualitative review of software by other developers in the team
- Testing on various levels like units, integration, regression — to ensure correctness of code
- Monitoring key source code metrics to track code's maintainability
What are the benefits of Continuous Quality?
Implementation of rigorous CQ ensures that software that has been delivered has the following properties:
- Understandable: The code is easy to comprehend by developers other than the author, and at times, the future self of the author as well.
- Reliable: The software's behaviour is predictable, and not indeterministic.
- Correct: The software achieves it's purpose, what it was originally intended to solve.
- Secure: The software is safe against p99 attack vectors.