Businesspeople don’t ask for IT systems anymore. They want business value. And the supporting IT as such is not relevant for them. Also, they expect to get the right quality at the right moment.
IT delivery teams may struggle to deliver this “quality at speed”.
In this article you will learn how a focus on quality engineering by cross-functional teams in a DevOps culture (or other organization with Agile mindset) will enable organizations to achieve the business value they are longing for.
High-performance quality engineering: Why?
Organizations today cannot exist without information technology (IT). In 2020 we learned that silicon chips (in smartphones, tablets, laptops, etc.) keep the world turning when people can’t travel to get together. The first computer was created almost 80 years ago. And for about half a century IT was the territory of technical people only. Since the 1990’s businesspeople started to get used to what IT could do to achieve business value. Today they don’t want to be bothered by technical talk, they want business value and they want it fast. So, IT delivery teams need to adjust. It is exactly 20 years ago that the Agile manifesto was written by a group of visionary IT people. “We are uncovering better ways of developing software by doing it and helping others do it.” they said. Their vision has inspired many new approaches, but organizations still often struggle with implementing such new ways of high-performance IT delivery.
Today’s IT culture: DevOps
One of the ways to achieve a higher speed of IT delivery is to integrate development and operations efforts. This movement, using the simple name “DevOps” started about a decade ago and currently is being implemented by many organizations. We define DevOps as a cross-functional systems engineering culture that aims at unifying systems development (Dev) and systems operations (Ops) with the ability to create and deliver fast, cheap, flexible and with adequate quality, whereby the team as a whole is responsible for the quality. Usually other expertise’s like Business Analysis and Quality Assurance (including testing) are integrated in the team. A DevOps culture has an Agile mindset that can be supported/implemented by, for example, the Scrum framework.
High-performance quality engineering: Who?
To properly implement a DevOps culture, the people need to organize themselves in cross-functional teams. The main goal of this type of organization is that teams are, to a certain degree, autonomous. Which means the team members together have all skills, knowledge, and facilities to perform their tasks. This makes that they can execute almost any of their tasks without support from outside the team. To be able to work as a truly cross-functional team all team members are allowed to pick up any task, so they regularly switch roles. A team member for example can pick up a development task at one moment in time and perform a testing task at another moment. Also, the team members apply various quality measures, such as “pairing” in which two team members pick up one task together. Applying such quality measures enables them to quickly deliver the right quality, and at the same time improve their skills by learning from each other. And this brings us to one of the core concepts of high-performance cross-functional IT delivery teams: they constantly strive to improving the product (IT-system), process (for IT delivery) and people (both individual and team skills).
High-performance quality engineering: How?
To implement this continuous improvement focus in your Agile, Scrum or DevOps organization we introduce the concept of “quality engineering”. Quality Engineering is about team members and their stakeholders taking joint responsibility to continuously deliver IT systems with the right quality at the right moment to the businesspeople and their customers. It is a principle of software engineering concerned with applying quality measures to assure built-in quality.
Quality engineering is very broad, it encompasses quality assurance and testing, but also other engineering and IT delivery activities that relate to creating built-in quality. With today's wide variety of IT delivery models in mind, in our book “Quality for DevOps teams” we have described a common set of topics that are always relevant for quality engineering, regardless of the IT development, operations and maintenance approach that is followed by the organization. The way these topics are addressed in your situation depends on many factors, not in the least by the IT delivery model you use. We are convinced, however, that for effective and efficient QA & testing, all of these topics need to be addressed in one way or another. While describing the topics we noticed a distinction should be made about the kind of activities a topic relates to. This resulted in two overarching groups: Organizing topics and Performing topics. The organizing topics are aimed at orchestrating, arranging, planning, preparing, and controlling the quality engineering activities. The performing topics are aimed at the actual operational quality engineering activities. (This division is not purely black-and white, some topics are mostly organizing and somewhat performing or the other way around.)
Three different groups of people are involved in quality engineering.
- All members of a cross-functional team need to collaborate to perform their tasks in delivering business value with quality at speed. They therefore constantly focus on delivering business value with the right quality at speed.
- Some team members specialize in performing dedicated quality engineering activities (such as automating tasks in a CI/CD pipeline, specifying Infrastructure as Code, reviewing as part of pull requests, applying unit testing principles and mutation testing, etcetera) and support the other team members in their tasks. These engineers we call performing people.
- Especially in organizations with several teams, organizing IT delivery requires quality engineering at scale. Organizing this requires managing dependencies, thus enabling good communication and collaboration between teams. These product owners, release train engineers, end-to-end quality orchestrators, scrum masters, agile coaches, and others we call organizing people.
To continuously deliver IT systems at speed with a focus on business value, high-performance IT delivery teams (such as in a DevOps culture) integrate quality engineering in their way of working. These cross-functional teams continuously improve the products, processes and people that are required to deliver value to the end users. TMAP supports people in and around teams in implementing quality in their IT delivery culture, with practical examples, useful knowledge and some theoretical background. Modern teams benefit from this: instead of relying on the strength of departments or individuals, they aim for being a high-performing team. By following “you build it, you run it” they put quality dead center because they would feel the pain of issues themselves.
[This article was previously published in SQ_mag, #09 June 2021]