Adaptability Through Early ValidationSoftware teams aspire to work fast, adapt to their market’s needs, and to have a sense of pride in their work. Defects can crush those aspirations, which means they need to be addressed as early as possible. Testing as part of every build improves quality and velocity by reducing re-work through fast feedback on code changes, but there’s far more to it than automated testing.
"Quality is more important than quantity, and in the end, it's a better financial decision anyway. One home run is much better than two doubles.”Adaptability through Early Validation
- Steve Jobs, BusinessWeek, 2005
Everyone wants to accelerate but not everyone stops to ask why. Software teams that move fast provide their organizations with adaptability to changes in their market and agility in business decisions. This doesn’t just apply to small and mid-size software teams; even enterprises such as Microsoft, Google, and Amazon have adopted this philosophy. [ref] Teams that move fast beat the competition more often than those who are slow to change.
Defects get in the way of forward progress. They force us to focus on fixing and spend less time on new, innovative work. Development teams measure their velocity in terms of story points; the less of these points they deliver, the slower they become. Fixing defects, a common type of re-work, is often the result of a lack of quality from a previous iteration.
The more of these defects get perpetuated to future work, the less time there is to work that benefits users, a downward spiral that no one aspires to.A solution for this Downward Spiral of Defects comes by example from top performing teams, those that release often and experience far less lead time than teams who leave defects to late-cycle testing phases [ref]. Their secret weapon: early validation. These teams carefully manage batch size and work-in-progress limits, adopting a culture of quality through early validation, and address release pain up front.
Depiction of testing at every phase of the software delivery lifecycle, Dan Ashby, 2016
In continuous delivery, release cycles start at the moment when code is checked in. Any parts of the process that are not automated cause the development to slow down. The compounding effect of getting this right means that teams have more time to focus on new work because they have fewer late-cycle defects taking up their time.
If we want early and accurate validation at each phase of our software delivery chain, we must automate testing to run reliably and efficiently.For more information on why certain software teams are vastly outperforming their competitors, we highly recommend reading the State of DevOps 2016 report by Puppet Labs.
It is also vital for agile teams to understand how to set themselves up for success when looking to improving their velocity. These dynamics are discussed in "Best Practices for Expanding Quality into the Build Cycle", a joint collaboration of Perfecto and AgileSparks.