How do you manage software quality in Scrum? In traditional waterfall projects, teams will try to detect bugs in the final software testing activities like integration and acceptance tests. With the short timeframe of Scrum sprints, this approach does not work for Agile projects. In his book Scrum Product Ownership, Robert Galen provides some guidance on how to build quality software with one fundamental tip: you don’t test quality!
I spend a great deal of time coaching various teams in their agile adoption journeys and make this point in every introductory class. But, inevitably after we’re done sprinting, I hear team members, cross-functional stakeholders, and executives talking about testing and quality as if they were synonymous.
Read my lips. You don’t test quality. By the time you get to testing, it’s too late. Your quality has already been instantiated into your code. Instead you build quality into your DNA and work habits by individually adopting some of these values:
- Build quality into your stories by sitting down with actual customers and precisely understanding their challenges and usage
- Make your product backlogs transparent and easily available to everyone. Encourage questions and feedback.
- Listen deeply to your stakeholders and understand their priorities and needs.
- Build quality into your code by collaborating and pairing while performing more formal code reviews whenever possible, particularly on the more complex sections or areas where you’re in unfamiliar territory.
- If you encounter some horrible pre-existing code hacks, consistently endeavor to re-factor and improve or simplify them. Always leave the code better “after you’re gone”.
- Take the time to create thoughtful tests at every level (unit, feature, system, regression) and then relentlessly test as early as possible.
- Automate all tests so you can run them quickly, achieving continuous feedback for ongoing changes.
- If you decide to “skip” work at any level, place it on the backlog for future clean-up and improvement. Make the trade-off transparent and commit to doing it.
- Never blame management, or others, for the lack of quality. Instead, as part of your team, professionally hold yourself accountable to the highest principles and standards.
Source: Essential Scrum: Scrum Product Ownership (2nd edition), Robert Galen, 236 pages, ISBN 978-0-9885026-2-8