A Required Culture Change for DevOps Transformation
Updated: Feb 7, 2019
Came across a nice article titled "Cargo Cult DevOps" posted in 2014 on the Xebialabs blog around the culture change required for a successful DevOps operating model. If you aren't familiar with Xebialabs, they created the Periodic Table of DevOps Tools, a good reference guide to the changing landscape of technologies around DevOps and CI/CD.
In the article, one particular passage really resonated for me and will become a rally cry for my team in 2019 as we continue our maturation around DevOps.
From the article, "The culture change that you really want is to make developers responsible for their code in production and operations people responsible for the design of code that can be maintained in production – highly collaborative teamwork."
No truer words have been stated based on my experience to date. What I've seen the development teams love about DevOps is the freedom to do things quickly and being empowered to build their solutions. While, that is a tenant of DevOps, there still seems to be a bit of a miss in not considering the end goal is for them to be responsible for their code in production, i.e., build in quality into the CD process and following best practices within cloud environments to assure seamless operations. To put it another way, I've seen developers try to put a square peg into a round hole when it comes to incorporating cloud technologies into their solutions and skimping out on test coverage in the name of quick delivery. With the daily changing landscape of the cloud, it's very important to stay on top of the technology and implement it in a way that it was intended so that the code can run well in production.
In the same regard, I'm seeing the operations team struggling a bit to assert themselves into the development mix and speak up when there are questions around design. Sure, developers have always been the fighter pilots and operations has always been the ground crew, but with DevOps, to gain highly collaborative teamwork, it's imperative that they speak up on design decisions that ultimately will impact the operations of the code. The operations teams have to break free of their comfort zones and not be afraid to make waves in the name of the best solution for the company so that when that code is pushed to production, it's easy to maintain.
So, to summarize, signs of a highly collaborative DevOps team can be measured by the developers willingness to take responsibility for their code in production and operations getting involved in the design and delivery of the solution assuring that it is maintainable.