There are plenty of concerns organizations should have as they purchase a trip-tik and chart a path across their DevOps roadmap, but hand wringing about nurturing a DevOps culture and fostering an environment of collaboration and communication between operations and development teams isn’t one of them. If anything, it’s a time waster and a DevOps anti-pattern.
Why ‘DevOps encompasses culture and collaboration’ is false
Figuring out how DevOps encompasses culture and collaboration is a great topic of debate for witless members of the human resources team who have nothing more productive to do, but it’s poisonous if such discussions start consuming the clock cycles of developers and engineers. Those people have real jobs to do.
When anyone suggests that “DevOps encompasses culture and collaboration,” I’m always quick to point out that collaboration may indeed be part of the equation, but not in a positive way. DevOps is not about increased collaboration. DevOps is not about improving communication.
When you are doing DevOps right, there should be less collaboration, not more. The whole point of continuous delivery and continuous integration (CI/CD) — core tenets of the DevOps philosophy — is to remove as many manual processes as possible. That means communicating and collaborating less, not more.
And while I do despise all the talk about development and operations silos, the fact is that when we use DevOps tools like Chef, Jenkins, Docker and Git properly, human interactions should decrease. If I can wrap my Java app in an embedded Tomcat container, build it with Docker and deploy it to the cloud without anyone in the operations team making me fill out a form or fire off an email, the need for collaboration actually goes away. Just for this reason alone, the assertion that “DevOps encompasses culture and collaboration” is a complete and total misnomer.
It’s also worth mentioning that if your organization does have collaboration and communication issues, that’s a human resources problem, not a technical one. Don’t blame the IT department for the incompetence of the hiring manager.
Let’s debunk the false DevOps culture myth
I’ve debunked the DevOps culture myth before, but deprogramming converted DevOps cultists is a never ending battle.
Effective DevOps practices may have a long term impact on the culture of an organization, but any DevOps culture change is a result, not a prerequisite for adopting the process. Every single DevOps evangelist seems to get this simple concept wrong, and quite frankly, it’s befuddling.
Culture is defined by the various processes and procedures individuals within a group commonly perform. In Amsterdam, people tend to ride bikes. In the Ukraine, residents seem to really like cabbage. Those are cultural traits.
Why do the Dutch ride bikes? It’s because Amsterdam is as flat as a pancake. In fact, pancakes only wish they were as flat as Amsterdam. It’s that condition that makes cycling appealing to more than just a small group of spinning enthusiasts. In the Ukraine, cabbage is inexpensive and abundant, and that results in a cornucopia of tasty cabbage themed dishes. Nobody went around telling people in Amsterdam or the Ukraine that they needed to change their culture and start riding bikes and eating cabbage. Pre-existing conditions determine cultural patterns.
The same thing applies to DevOps culture. Complaining that a certain organization needs to change its culture is mindless and unproductive. If DevOps really encompasses culture and collaboration, it does so only as an output, not an input. If you want to do DevOps right, the correct approach is to focus on the inputs. If the right inputs are provided, a DevOps culture will elute.
DevOps cultural inputs
And what are those inputs that produce a DevOps culture? Giving developers tools they like is a start. If developers are allowed to use a distributed version control system like Git which provides facilities to work independently and in an isolated manner, they’ll be more likely to check code in multiple times a day. If you bring in build tools such as Apache Maven, Jenkins CI or Atlassian Bamboo into the mix early, running continuous code quality routines will become the norm. Throw in a good collaboration tool like JIRA and the Agile sprints will go more smoothly as well.
Another big culture change happens after organizations provide on-demand cloud computing resources. Traditionally, the operations team would make developers jump through a bunch of hoops, fill out a bunch of forms and wait for an extended period of time before provisioning a prototyping environment or a sandbox server. If cloud-based resources are available on demand, then time thieving, resource-requisition processes get eliminated. That results in a culture change.
And it’s time saving, silo-destroying processes like these that drill to the root of the DevOps philosophy. After all, when developers begin using on-demand cloud computing resources to provision their own container hosting services, where exactly does the delineation between development and operations occur? The melding of development and operations is a result of using the right tools and building the right processes around them. That’s what DevOps is all about, and that’s the only manner in which “DevOps encompasses culture and collaboration.”
DevOps encompasses culture and collaboration: True or false?
Don’t buy into the false DevOps culture myth and don’t buy into the call for DevOps teams to collaborate and communicate better. Those are talking points of the uninitiated. Prognosticators dwelling on them should be dismissed. Smooth the ground and introduce tools that developers and operations teams like, while making on-demand resources more abundant than cabbage in the Ukraine. If you do that, things will start to change.
If you want to do DevOps right, focus on the inputs, not the outputs.