DevOps has been defined in many ways: a set of practices that automate and integrate processes so teams can build, test, and release software faster and more reliably; a combination of culture and tools that enable organizations to ship software at a higher velocity; a culture, a movement, or a philosophy. None of these are wrong, and they are all important aspects of DevOps—but they don’t quite fully capture what’s at the heart of DevOps: the essential human element between Dev and Ops teams, when collaboration bridges the gap that allows teams to ship better software, faster.
For organizations, DevOps provides value by increasing software quality and stability, and shortening lead times to production. For developers, DevOps focuses on both automation and culture—it’s about how the work is done. But most importantly, DevOps is about enabling people to collaborate across roles to deliver value to end users quickly, safely, and reliably. Altogether, it’s a combination of focus, means, and expected results.
Programming is not a zero-sum game. Teaching something to a fellow programmer doesn’t take it away from you.
Sometimes we hear teams say, “We use [tool X] or automate [X process], so now we’re doing DevOps!” But as noted above, tooling and automation are part of how you implement DevOps (the means), not DevOps itself. It’s a collaborative human endeavor, and our tooling—and the automation it supports—is how we get this work done. There are many tools in this space; while it’s tempting to immediately adopt a specific set of DevOps tools or a prescribed toolchain to try to shortcut your DevOps journey, choosing the right tooling for your organization is key to your success.
One of the most common myths we hear is that Agile and DevOps are the same. While it’s easy to confuse the two, processes like Agile are part of how to DevOps, not what DevOps is. Agile, Lean, Extreme Programming, and other “work fast, ship often” models are just a few of the many ways teams can make DevOps successful. Agile ships software faster, but it doesn’t ensure collaboration with other teams in the software lifecycle, and can overwhelm test, QA, and operations teams if they’re in a siloed organization..
In practice, DevOps is different for every organization, as each brings its own unique constraints, strengths, talent, and goals; the tools and processes that worked in one company won’t necessarily translate into success for another. Although there are common practices and principles for successful DevOps transformations, it’s not pre-packaged in a box, and there are many ways that companies can successfully implement their own.
While it’s true that DevOps delivers value for organizations, helping them develop and deliver innovation to their end users with speed, stability, and reliability, there’s so much more to it. DevOps started, in part, as a way to make software more humane. By automating our workflows, people can focus more on the task at hand. This brings more joy to our work and decreases burnout.
There are a few key concepts and principles that every successful DevOps program shares. Combining these with the right tooling, process, and culture will help teams find DevOps success. While DevOps will look different for each organization and team