January 26, 2015
Formula One has gotten us all used to amazing speed. In as little as three seconds, F1 pit teams replace all four wheels on a car and even load in dozens of liters of fuel. Pit stops are no longer an impediment to success in F1 — but they can be differentiating to the point where teams that are good at it win and those that aren’t lose.
It turns out that pit stops not only affect speed; they also maintain and improve quality. In fact, prestigious teams like Ferrari, Mercedes-Benz, and Red Bull use pit stops to (usually!) prevent bad things from happening to their cars. In other words, pit stops are now a strategic component of any F1 racing strategy; they enhance speed with quality. But F1 teams also continuously test the condition of their cars and external conditions that might influence the race.
My question: Why can’t we do the same with software delivery? Can fast testing pit stops help? Today, in the age of the customer, delivery teams face a challenge like none before: a business need for unprecedented speed with quality — quality@speed. Release cycle times are plummeting from years to months, weeks, or even seconds — as companies like Amazon, Netflix, and Google prove.
The answer: Smart dev test teams do it — why can’t you? You can! Testing is radically changing with the advent of Agile and DevOps (I look at DevOps as the continuation of Agile or, better, as Agile all the way through). I’ve talked about DevTestOps on this blog and in my report on scaling Agile adoption and it turns out that I’ve never been so right! Testing can’t any longer be a weak link indelivery; everybody recognizes its crucial role for achieving quality at speed. Therecipe involves testing properly, quickly, and continuously. How? First, make “doing the right things” (functional quality) and “doing things right” (technical quality) your driving goals. Then adopt these five must-dos:
- Organize testing in a lean way. Eliminate waste; focus on value. Get developers and testers to work together in sync in the same team.
- Shift testing right and left. Build quality in from the very beginning, but also leverage testing in production and end user feedback.
- Build a practice for testing skills. Technical skills make the difference; your testers might need reskilling. Fewer business testers are needed. SDLC, design, and programming skills make superior testers.
- Reduce manual testing in favor of automation. You can’t deliver software frequently if you don’t automate testing from the very beginning.
- Automate test data and environment provisioning. Last but not least, test tools and environments need to be delivered as fast as F1 pit stops. To do that, automate your delivery pipeline.
Application delivery and testing teams must carry out these five activities to succeed in delivering quality@speed. Forrester clients will find more in the report 5 Must-Do's For Testing Quality At Speed as well as these two testing reports on Agile testing practices and tools. I’m sure there are more practices maturing out there, and I’d love to hear about them. Comment on this post or send me an email or a tweet (@dlogiudice).