Quality measures at speed in high-performance IT delivery
Quality was, is and remains a challenge within the IT industry. The DevOps team must actively work on quality engineering. Quality engineering consists of a great number of possible activities, the so-called quality measures. After all, quality must be built in, not tested in! Within quality engineering, testing is the instrument that can provide insight into the quality level of information systems. Based on these test results, when the quality level is not sufficient, the team can improve the quality of information systems and thus to deliver the pursued business value.
Quality measures do not apply to one specific DevOps activity; they are integrated with all DevOps activities.
Applying these measures leads to a situation whereby:
- there are indicators, measurement points and units that provide an indication of the quality of the products and processes
- it is clear to each team member which requirements their work must meet and that they can evaluate them based on the quality criteria
- it is possible for an independent party to evaluate the products/services based on the above-mentioned standards
- the product owner and other stakeholders can trace the causes of weaknesses in products or services and consider how they can be prevented in the future.
Quality measures are divided into preventive, detective and corrective measures:
- Preventive quality measures are aimed at preventing a lack of quality. These can be, for example, documentation standards, methods, techniques, training, etc.
- Detective quality measures are aimed at discovering a lack of quality, for example by static (including pull-requests and automated code analysis) and dynamic testing.
- Corrective quality measures are aimed at rectifying the lack of quality, such as the investigation and fixing of anomalies that have been exposed by means of testing.
It is of vital importance that the various quality measures are cohesive. No single quality measure is an independent activity; it is only a small cog in the quality management wheel. Testing, for example, is only one of the forms of quality control that can be employed. Quality control is in turn only one of the activities aimed at guaranteeing quality. And quality assurance is, in the end, only one dimension of quality engineering.
The quality measures can be used as part of quality engineering. Also, they contribute to covering risks.
Some examples of quality measures that fit well in a DevOps environment are:
- Root cause analysis (RCA)
- Specification and Example (SaE)
- Test-driven development (TDD)
- Pair programming
- Test design techniques
- Feature toggles
- Parallel testing
Descriptions of how to apply these quality measures are in the TMAP body of knowledge.