All software teams strive to build better software and ship it faster. That’s a competitive edge required to survive in the Age of Software. DevOps is the best methodology to leverage that competitive advantage, ultimately allowing practitioners to accelerate software delivery and raise quality levels. Some are skeptical of this claim or dismiss it outright at their peril. Research demonstrates that a DevOps cultural shift can elevate IT performance to Michael Jordan-esque levels. The first step is understanding that velocity and quality are related in an unexpected way.
This article covers the basics of scaling velocity and increasing quality with DevOps. To dive into DevOps and build skills with the tools that matter — Puppet, Docker, Chef, Ansible, and more — check out Cloud Academy’s DevOps Training Library.
The Death of Bi-Modal IT
A direct relationship between velocity and quality sounds counterintuitive at first. On its face, it seems that shifting time and resources into improving velocity takes time and resources away from quality focused work — like bug fixes — or causes teams to ship poorly written or tested code. I think this stems from framing IT using the project management triangle of scope, cost, time, or the “cheap, fast, good — choose two” variation. Thinking of velocity and quality like this is a logical straight line. This perspective, along with shoddy agile practices, reinforce misconception that velocity and quality are mutually exclusive, or in other words: choose velocity or quality. This is the bi-modal IT worldview. A quick survey of successful companies shows this is not always the case. Companies like GitHub, Netflix, and Amazon have high velocities and stable production environments. Why is that?
Software development leaders set out to answer that question in 2018. They published their findings in Accelerate: The Science of Lean Software and DevOps, and their findings