Software teams aspire to work fast, to 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 reworks 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.” - Steve Jobs, BusinessWeek, 2005
Adaptability Through Early Validation
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. 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 rework, 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 d0 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. 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 addressing release pain up front.
In Continuous Delivery, release cycles start at the moment 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, then we must automate testing to run reliably and efficiently.