This post was originally authored by Scott Johnston, vice president of strategy & marketing at Puppet Labs.
Though it’s common to hear people talking about “DevOps teams” — or see job postings for “DevOps” — to leaders of this technology movement, the phrase is like the sound of fingernails on a chalkboard. If you wonder why, it's worth reading Jez Humble's oft-cited blog post, There's No Such Thing as a “DevOps" Team.
So why do those in the know freely talk about a DevOps toolchain? It’s because a common toolchain helps developers and IT operations people work together more collaboratively to achieve the goals of the business.
DevOps Team: Just Another Silo
The problem with hiring or designating a DevOps team is that you’re creating a new silo to deal with a problem that has its origins in the existence of silos.
Let’s back up for a moment. DevOps came about because a few developers, IT ops people and business managers wanted to resolve a glaring problem: When developers write code without reference to how it will be released, and then leave it to operations to run that code in the real world, the result is software that’s buggy, breaks other code, or breaks the network. In other words, this model impedes business progress.
The answer isn’t building a whole new team to "do DevOps" — that doesn’t facilitate better communications between developers and IT operations people. Furthermore, the new “DevOps team” can end up with a huge backlog of tasks that development can't do and operations won't do (or vice versa).
A DevOps Toolchain Supports Collaboration
Instead of creating a third silo, Humble recommends that developers and operations people learn about each other’s workflows and tools. Have devs work on the ops teams for a while; have ops people go to the dev team’s standups and demos; run lunch and learn sessions. Most important of all, share the responsibility for releasing code that works, Humble says. For example, have developers carry pagers and act as support when their code is released.
If development and IT operations are to work together effectively, they’ll need shared tools to manage the software lifecycle from development all the way through to production. The DevOps toolchain must cover provisioning, configuration management, code check-in, orchestration, monitoring and metrics.
DevOps, then, isn’t a functional area. Nor is it a separate team, or a specific person. It’s the approach that says developers and IT operations people must share responsibility for delivering software that answers business needs and goals. The DevOps toolchain supports that approach.