Quality is built into the product, the process and the people
To deliver an IT system (“product”) with the right quality level, it is essential that quality be built into the process too, and that the people also meet specific quality standards. Tests are used to monitor the quality of the product during the whole IT delivery process. Built-in quality is one of the key principles in the Lean approach, as well as continuous improvement, elimination of waste and valuing people. Built-in quality, continuously improved, leads to Right-First-Time, where the outcome of the process meets the expectations: fit-for-purpose. Thus, the stakeholders have confidence they will achieve the pursued business value in their business process.
Vision: “built-in quality”
In high-performance IT delivery, quality relates to products, processes and people. When we talk about built-in quality this relates to all three aspects.
Of course, the first focus is on the quality of the product, the IT system and the business process it supports. Building in quality means that the proper quality measures are selected and implemented to deliver the right level of quality at the right moment and achieve the business value. To define the required level of quality, a quality risk analysis is of great help; more risk requires stronger quality measures. For example, a low-risk feature can be built by one programmer and reviewed by another; on a high-risk feature programmers write the code together using pair programming. With a focus on building quality from the start, testing will demonstrate that the quality is at the expected level. (Which is very different from the obsolete approach of, at the end of the development activities, trying to find all problems that resulted from a lack of quality focus, and fix them. That outdated approach often turned testing into trial-and-error and a lot of time wasted on bug-fixing).
Next to the focus on the product, built-in quality also relates to the IT delivery process and the people involved. Built-in quality, continuously improved, leads to right-first-time delivery where the outcome of the process meets the expectations: fit-for-purpose.
We strongly believe that high-performance IT delivery teams have capabilities as a team, the team members contribute to the team as a whole, and various team members can perform specific tasks. One team member may be more skilled than another, but that is no reason to only provide work to the team member with the most experience and skills. Think of all tasks as a team effort in which each team member plays a role. Specifically, we think that quality assurance (QA) and testing activities should be integrated into both the DevOps activities as well as the people involved; that is how we see proper quality engineering.
Built-in quality (BIQ) is one of the seven core principles within the Lean mindset. Although Lean has its origins in manufacturing, it’s also applicable in software management. Built-in quality introduces a set of practices that ensures that the quality of each solution or component can be trusted at every stage of the development life cycle. [Grood 2021]
When working towards built-in quality, the business value is an essential perspective. Therefore, a quality-driven approach is also a business-driven approach. When defining the required level of quality to be built in, all aspects of the IT systems lifecycle and business process need to be considered.
Continuous quality engineering, including continuous improvement, is the backbone of delivering right-first-time fit-for-purpose solutions with business value to the business people and their customers.
Handling of test and quality issues
Quality refers to the quality of the outcome of the IT delivery process: the product quality. Process and product quality are strongly linked. Business value is an essential perspective. That is why a quality-driven approach should also be business-driven. A product is specified and designed for all aspects of the product lifecycle. Any deviation in the expected product quality should be detected as soon as possible and should lead to improvement measures. Fixing the fault in the product is not enough, it is essential to improve the process and the people to prevent such faults from occurring again (for example by applying Root Cause Analysis). That is how quality is built in the product. That is how product quality is improved by adjusting the process and improving the people. That is also why in an organization with multiple teams, the people involved need a way to oversee the whole process and need a way to influence the total IT delivery approach. Quality engineering is integrated into the IT delivery process.
Collaboration between teams and staff organization
In high-performance IT delivery the focus of the work, and thus of process quality, is on individual teams. In organizations with multiple teams, however, none of the teams will have all knowledge and skills necessary to achieve all tasks. Traditionally in organizations we distinguish three types of organizational parts, the project organization (that focuses on developing), the line organization (that focuses on operations) and the staff organization (that supports project and line). In high-performance IT delivery the distinction between project and line organization fades or even disappears (esp. in DevOps). People may tend to think the staff organization is no longer relevant as well. However, the staff organization is still needed to support teams in tasks for which they don’t have the proper knowledge and or skills (and sometimes time and resources).
Figure: Staff organization in traditional and in high-performance organizations