While tools are an important part of the DevOps process, it’s important to remember that they’re just part of the equation. The classic way to display the relative importance of different aspects of DevOps is as follows: People > Process > Tools.
It seems simple enough, but what does it actually mean and what are the implications? Does a software organization simply need more staff to successfully build a DevOps culture? Do tools not matter at all? Let’s dig in a little bit and see how this concept plays out in real life.
Consider an engineering team (or an entire organization) that goes from right to left in that expression; they go all-in and invest heavily in the latest and greatest tools and platforms, but make no additional investment in people or process. They probably have a pretty capable technology stack now, but no one on staff that knows how to use it effectively, no definable process or procedures, and, most critically, they’ve done nothing to develop and build a strong DevOps culture.
One of the major philosophies of DevOps is the notion of “continuous improvement,” making constant, small, incremental changes to improve software and software delivery. Not just making changes, either, but identifying where changes need to be made and fostering a culture that encourages this kind of dialogue. There isn’t a single tool, software, platform, or framework that can be purchased that provides this level of cultural transformation. It requires a consistent, top-down effort from engineering leadership, non-technical stakeholders, and individual contributors to make it a reality, hence the emphasis on “People” over “Process” and “Tools.”
Of course, that’s not to say that tools should be totally ignored either. Better tools make the underlying objective easier. Using a cloud provider with Terraform will be much easier to scale and hire for than a legacy on-premise rack managed with CFEngine. Modern software development benefits from selecting the best tools for the job, but tools simply aren’t the whole picture.