In our first book, Agile Testing, we introduced our “10 Principles for Agile Testers”. At the time, most testers were still part of a siloed testing team, working in a phased-and-gated methodology. The mindset shift to testing being a continual process, not a phase tacked on at the end, was new and the concept was difficult for a lot of people. We included the principles on our Quick Tools for Agile Testers handout (downloadable in 10 languages!)
Over the years, we’ve gotten lots of positive feedback from people who found good guidance in following them. And, just as testing and quality are the responsibility of the whole delivery team, these principles apply to everyone on the team – because everyone participates in testing activities. The 10 principles are still relevant and useful today:
- Provide continuous feedback
- Deliver value to the customer
- Enable face-to-face communication
- Have courage
- Keep it simple
- Practice continuous improvement
- Respond to change
- Focus on people
Modern Testing Principles
In the past couple of years, Alan Page and Brent Jensen have been thinking about principles for testing in our modern world of continuous delivery and deployment. They liked our books and found them a good basis. They also saw the need for new skills. For example, data science would help us analyze the data we can now get to learn about how our customers actually use our products. They want testers to move even more fully into a coaching role, helping everyone on the team learn to test and build quality in. They eventually settled on these Modern Testing Principles:
- Our priority is improving the business.
- We accelerate the team, and use models like Lean Thinking and the Theory of Constraints to help identify, prioritize and mitigate bottlenecks from the system.
- We are a force for continuous improvement, helping the team adapt and optimize in order to succeed, rather than providing a safety net to catch failures.
- We care deeply about the quality culture of our team, and we coach, lead, and nurture the team towards a more mature quality culture.
- We believe that the customer is the only one capable to judge and evaluate the quality of our product
- We use data extensively to deeply understand customer usage and then close the gaps between product hypotheses and business impact.
- We expand testing abilities and knowhow across the team; understanding that this may reduce (or eliminate) the need for a dedicated testing specialist.
How do these principles relate? Or do they?
The Modern Testing principles are congruent with the 10 Principles for Agile Testing. We feel the 10 Principles support the Modern Testing ones. Let’s look at some examples of how the principles relate to each other. Let’s start with our first one.
Continuous feedback is required for continuous improvement. Short feedback loops are even more critical for teams moving towards continuous delivery and deployment. We have long encouraged practices like pairing and mobbing, which give the shortest possible feedback loops.
Focusing on delivering value to the customer supports the idea that the customer judges the product’s level of quality. Today’s technology means we can quickly learn what customers think of the product by analyzing how they use it in production. We do have to remember that our products usually have more than one customer, and there are both internal and external customers to satisfy.
Face-to-face communication (using video for distributed situations) is the most effective way testing practitioners can accelerate the team and encourage continuous improvement. It’s a key component in building a culture of quality.
Deciding to stop acting as a safety net for developers and collaborating with them to improve their own code correctness requires a lot of courage on the part of a tester! Modern principle 7 takes courage as well – who wants to work themselves out of a job they love? We believe that in most domains, dedicated testing specialists will continue to be needed. At the same time, it’s clear that teams where “quality” is left to a few specialists will not perform well.
How simplicity relates to the Modern Testing (MT) principles is less obvious. A lot of people reading the MT principles will feel overwhelmed. Starting simple, with one small step, is usually the most effective road towards embracing them. Simplicity for testers seems to be one of the hardest principles to implement.
Continuous improvement is a principle shared by both lists, and it’s a core practice for any team wanting to embrace agile and DevOps culture and becoming a higher-performing team. Responding to change and self-organizing are both integral components in continual improvement. In our experience, the way to improve is to identify the biggest problem in the team’s way, make it visible, design a small experiment to chip away at that problem, measure progress (or lack of it), and iterate with changed or new experiments.
We know that it’s people, not tools or methodologies, that ultimately make teams and their products successful. Numerous academic studies, as well as our own experiences, have borne this out. In our opinion, the principle Focus on people applies to every one of the Modern Testing principles.
Finally, enjoyment. The Modern Testing call to action is an imposing challenge for most of us. There’s no reason to take this on if you won’t enjoy the journey! The satisfaction of helping your company and team succeed, growing a culture of quality, helping non-testers learn to build quality in, all of those are hugely rewarding accomplishments that we hope add to your joy.
Principles are not meant to be followed blindly but used as a ‘guiding light’. They do not go out of date when a new tool is created, or someone thinks of a specific time when “this” does not work. If we were to create our 10 principles today (10 years later), they would likely be worded differently, but the meaning behind them still stands true.