Agile Quality Patterns


Over an intense period of three years—from 2014 to 2016—I worked with Joe Yoder on creating this collection of 23 patterns about agile Quality Assurance practices and values. Ademar Aguiar and Hironori Washikazi also contributed to these patterns. The patterns in this collection present quality assurance activities and roles as well as practices for ensuring system quality requirements are addressed.

We drew insights from our work with clients and insights gained through interacting with Agile Alliance Experience Report authors who had successfully incorporated quality-related activities into their processes. They bucked the trend of many organizations who, in their pursuit of rapid feature delivery, had dismantled traditional QA departments, haphazardly co-located testers with developers, and largely ignored system qualities. It wasn’t that these organizations didn’t care about software quality. It just wasn’t clear to them how or where system quality-related concerns or quality assurance efforts could fit into their new agile ways of working.

However, we did find ways to be agile and care about software quality. That’s how these patterns came to be.

Although the patterns in this collection support agile development processes, characterizing these them as suitable only for agile teams is too limiting. Many of these patterns can be applied to "tweak" any software process to ensure that system quality isn't an afterthought.


QA to AQ: Patterns about transitioning from Quality Assurance to Agile Quality

Joseph W. Yoder
Rebecca Wirfs-Brock
Ademar Aquiar
07 Mar 2014 AsianPLoP '14 Proceedings
paper HTML PDF 26 minutes read

This paper outlines core patterns for transitioning from a traditional QA practice to a more agile one, where quality is addressed earlier in the process and QA plays a more integral role.

Abstract

As organizations transition to agile processes, Quality Assurance (QA) activities and roles need to evolve. Traditionally, QA activities have occurred late in the process, after the software is fully functioning. As a consequence, QA departments have been “quality gatekeepers” rather than actively engaged in the ongoing development and delivery of quality software. Agile teams incrementally deliver working software. Incremental delivery provides an opportunity to engage in QA activities much earlier, ensuring that both functionality and important system qualities are addressed just in time, rather than too late. Agile teams embrace a “whole team” approach. Even though special skills may be required to perform certain development and Quality Assurance tasks, everyone on the team is focused on the delivery of quality software. This paper outlines 24 patterns for transitioning from a traditional QA practice to a more agile process. Six of the patterns are completely presented that focus on where quality is addressed earlier in the process and QA plays a more integral role.


QA to AQ Part Three: Shifting from Quality Assurance to Agile Quality—Tearing Down the Walls

Joseph W. Yoder
Rebecca Wirfs-Brock
Hironori Washizaki
09 Nov 2014 SugarLoafPLoP '14 Proceedings
paper HTML PDF 21 minutes read

The two patterns in this paper, “Break Down Barriers” and “Pair with a Quality Advocate”, are about removing barriers between Quality Assurance and other parts of the organization.

Abstract

As organizations transition to agile processes, Quality Assurance (QA) activities and roles need to evolve. Traditionally, QA activities occur late in the process, after the software is fully functioning. As a consequence, QA departments have been “quality gatekeepers” rather than actively engaged in the ongoing development and delivery of quality software. Agile teams incrementally deliver working software. Incremental delivery provides an opportunity to engage in QA activities much earlier, ensuring that both functionality and important system qualities are addressed just in time, rather than too late. Agile teams embrace a “whole team” approach. Even though special skills may be required to perform certain development and Quality Assurance tasks, everyone on the team is focused on the delivery of quality software. The patterns in this paper are focused on “breaking down the walls” or removing barriers between people and traditional roles, as this is key for any change within an organization that is transitioning to being more Agile at Quality


QA to AQ Part Two: Shifting from Quality Assurance to Agile Quality—Measuring and Monitoring Quality

Joseph W. Yoder
Rebecca Wirfs-Brock
14 Nov 2014 PLoP '14 Proceedings
paper HTML PDF ACM DOI 31 minutes read

This paper is part two of a series of pattern papers about Agile QA practices and activities. The patterns in this paper are about measuring and monitoring system qualities.

Abstract

As organizations transition to agile processes, Quality Assurance (QA) activities and roles need to evolve. Traditionally, QA activities occur late in the process, after the software is fully functioning. As a consequence, QA departments have been “quality gatekeepers” rather than actively engaged in the ongoing development and delivery of quality software. Agile teams incrementally deliver working software. Incremental delivery provides an opportunity to engage in QA activities much earlier, ensuring that both functionality and important system qualities are addressed just in time, rather than too late. Agile teams embrace a “whole team” approach. Even though special skills may be required to perform certain development and Quality Assurance tasks, everyone on the team is focused on the delivery of quality software. This paper is part two of a series of patterns about Agile QA practices and activities. The patterns in this paper are focused primarily on measuring and monitoring system qualities.


QA to AQ Part Four: Shifting from Quality Assurance to Agile Quality—Prioritizing Qualities and Making them Visible

Joseph W. Yoder
Rebecca Wirfs-Brock
Hironori Washizaki
24 Oct 2015 PLoP '15 Proceedings
paper HTML PDF ACM DOI 21 minutes read

This paper presents three patterns for identifying system qualities and making them visible.

Abstract

As organizations transition to agile processes, Quality Assurance (QA) activities and attention to system quality need to evolve along with the evolution of development practices. Agile quality teams incrementally deliver working software while ensuring that important system qualities are also addressed. In order to pay appropriate attention to system qualities, they need to be visible and included as part of the prioritized work. This paper presents patterns for identifying system qualities and including them on the project roadmap, adding quality-related work items to the project backlog, and creating a quality radiator that communicates the status and goals for delivering system qualities.


QA to AQ Part Five: Being Agile at Quality—Growing Quality Awareness and Expertise

Joseph W. Yoder
Rebecca Wirfs-Brock
Hironori Washizaki
26 Feb 2016 AsianPLoP '16 Proceedings
paper HTML PDF 27 minutes read

This paper presents three patterns for growing quality awareness and expertise: Quality Checklists, the Product Quality Champion, and Shadow the Quality Expert.

Abstract

As organizations transition to agile processes, Quality Assurance (QA) activities and roles evolve. The whole team focuses on quality as they incrementally deliver working software. Incremental delivery provides an opportunity to engage in QA activities much earlier, ensuring that both functionality and system qualities are focused on just in time, rather than too late. Knowing what and when specific qualities need to be paid attention to and checking that they have been appropriately addressed is important. The patterns in this paper extend our previous work with three patterns aimed at increasing quality awareness and expertise: “Quality Checklists,” the “Product Quality Champion,” and “Shadow the Quality Expert.”


QA to AQ Part Six: Being Agile at Quality—Enabling and Infusing Quality

Joseph W. Yoder
Rebecca Wirfs-Brock
Hironori Washizaki
24 Oct 2016 PLoP '16 Proceedings
paper HTML PDF ACM DOI 23 minutes read

This paper expands on ways for Being Agile at Quality by presenting three patterns: System Quality Specialist, Spread the Quality Workload, and Automate As You Go.

Abstract

To achieve quality systems and products, it is vital to enable and infuse quality work throughout the entire process, rather than piling it on at the end. Thus paying attention to when to this, how to do this, and who is involved can increase quality. This paper presents three patterns from the collection of patterns on being agile at quality: System Quality Specialist, Spread the Quality Workload, and Automate As You Go. System Quality Specialists can define, test, and implement system-quality characteristics that are complex or require specialized skills and expertise to get right. Spreading the Quality Workload throughout the development process keeps the team from being overly burdened with quality-related work at any point in time. If you Automate As You Go, this enables teams to streamline their build and testing processes, eliminate tedious or mundane tasks, and allow more time for team members to focus on implementing and testing important system qualities.


Agile Quality Pattern Gists

Rebecca Wirfs-Brock


03 Dec 2024
paper HTML PDF 29 minutes read

Summary descriptions of all 23 patterns in the Agile Quality Patterns collection.

Abstract

The complete collection of patterns about transitioning to agile quality described in pattern gist form. A pattern gist is a brief version of the fuller pattern description. The gist motivates the pattern, poses a question about the problem the pattern addresses, and then sketches the pattern solution.