The Three Pillars of Agile Quality and Testing: The Pillars Explained
As I have said, the driving force behind my creating the Three Pillars framework was organizational quality imbalance in agile adoptions. As I observed what was happening to a client, I clearly recognized the imbalance. However, it was unclear to me how to create a model that would help them.
I eventually came upon the following three critical areas, or “pillars,” where I tried to categorize crucial tactics, strategies, and techniques that I have found helpful to agile teams as they create a broad and deep supportive structure for their product quality and testing activities. Here are the pillars at a high level:
1. Development and test automation: This pillar is the technology side of quality and testing, and it is not simply focused on testing and testers. It includes tooling, execution of the automation test pyramid, continuous integration, XP technical practices, and support for ALM-distributed collaboration tools.
Often, it is the place toward which organizations gravitate first—probably because of our affinity for tools’ solving all of our challenges. An important way to think about this pillar is that it is foundational, in that the other two pillars are built on top of the tooling. Organizations often underestimate the importance, initial cost, and ongoing costs of maintaining foundational agility in this pillar. Continuous investment is an ongoing challenge here.
Finally, this pillar is not centric to the testing function or group. While it includes testing, tooling, and automation, it inherently includes all tooling related to product development across the entire agile organization. It provides much of the “glue” in cross-connecting tools and automation towards efficiency and quality.
2. Software testing: This pillar is focused on the profession of testing. On solid testing practices, not only agile testing practices but also leveraging the teams’ past testing experience, skills, techniques, and tools. This is the place where agile teams move from a trivial view of agile software testing (which only looks at TDD, ATDD, and developer-based testing) toward a more holistic view of quality.
It is a pillar where the breadth and depth of functional and nonfunctional testing is embraced. Where exploratory testing is understood and practiced as a viable testing technique. It is where the breadth of nonfunctional testing is understood and applied to meet business and domain needs, including performance, load, security, and customer usability testing.
By definition, this is where testing strategy resides, where planning and governance sits, and where broad reporting is performed. I am not talking about traditional testing with all of its process focus and typical lack of value. But I am talking about effective professional testing, broadly and deeply applied within agile contexts.
3. Cross-functional team practices: Finally, this pillar is focused on cross-team collaboration, team-based standards, quality attitudes, and, importantly, on building things properly. Consider this the soft skills area of the three pillars, where we provide direction for how each team will operate, the “rules of engagement” as it were.
For example, this is the place where good old-fashioned reviews and inspections are valued. This would include pairing (across all team members), as well as slightly more formal reviews of architecture, design, code, and test cases. It is a place where inspection is performed rigorously, as established in the teams’ definition-of-done. Where refactoring of the code base and keeping it “well kept” is also of primary importance.
Speaking of definition-of-done, the third pillar is where cross-team physical constraints, conventions, and agreements are established. But, more importantly than creating them, it is where the team makes commitments to consistency and actually “holding to” their agreements. Another important focus is on group integrity in conducting powerful retrospectives and fostering continuous improvement in the long term.
I’ve found that all of my agile testing practices and activities can be grouped either into one of the Three Pillars or into the foundations of the pillars, which is a topic for a different day. For a free PDF copy of The Three Pillars of Agile Quality & Testing, please join my mailing list here. You’ll then gain access to my website downloads area.