DevOps: Tools vs. Mindset
DevOps: Tools vs. Mindset
Does the secret to a successful DevOps implementation lie in a culture shift or a strong toolchain?
Join the DZone community and get the full member experience.Join For Free
DevOps is quite common nowadays in the IT industry, from technical conferences and seminars to podcasts and more. Everyone seems to be talking about it, a lot of us know how to use it and implement it, while others are still willing to know more.
I have been working in the DevOps space for the last six years but I still had doubt until recently about whether DevOps is more about tools and technology or culture and mindset.
I think different people have different takes and opinions on this; the recruiters I speak with are looking for “DevOps skills,” the hiring managers are more interested in “DevOps resources,” and organizations are looking to build a “DevOps team.”
So is a person who has knowledge and experience with cloud, CI/CD pipelines, Docker, and monitoring tools a DevOps engineer? Some might agree with this, but I had a slightly different opinion.
My Definition of DevOps
DevOps = Developer + Operations
So we always had a developer who writes the code, maybe a build/release team that will do deployment in different environments, and a Operations person who owns and manages the infrastructure. In other words, a typical pre-DevOps era setup, with minimal or no automation.
These teams used to work in silos, completely unaware of the workings of other teams. But the problem arises when there is a production outage, and when chaos and confusion starts, the Operations team blames the release team for wrong deployment and release team passes it back to Development for a buggy code. I am sure we all have been in similar situations at one time or another.
Now comes the interesting part: with new startups getting into the Agile model and new automation tools readily available, there was a pressing need that, for small teams, Development should be able to understand and handle the deployment and infrastructure while Operations should be able to differentiate between an infrastructure and code issue. This would lead to a smooth deployment and better and timely resolution in case of production issues.
This is how a need for DevOps expertise came into picture, creating the need for someone who understands the code and can also maintain the infrastructure and administrative responsibilities.
This still best the question, can anyone who knows coding, some fancy automation tools, and how to sufficiently manage infrastructure provide that DevOps expertise?
I am not against this definition, but I personally feel that in all this discussion, the key point that is completely neglected is developing a flexible mindset that would lead to what we now call a "DevOps culture.”
In my opinion, instead of giving so much importance to the the DevOps toolchain (Cloud, CI/CD, containers, monitoring, configuration management, etc.) for building a state-of-the-art DevOps team, organizations should focus on existing individuals and teams within the organization who have a flexible mindset and are open to learn and adapt to new technologies.
The focus should be on retraining these people into the latest skills and build what I call as a Flexible DevOps Culture.
The 3Cs of DevOps
I read somewhere that a successful DevOps is made of 3Cs: Continuous Change, Collaboration and Culture.
And it is so true: without developing a collaborative environment within the teams, and a culture to adapt to continuous change, no organization can claim to have achieved DevOps implementation success, no matter what tools or technologies you use.
So for me, DevOps was and will always be more about having a flexible mindset and collaborative culture within the organization, and less about the tools specifically. That does not mean that I deny the benefits of these tools and do not give them importance, but I would prefer a team or an individual that is more receptive and open to a DevOps culture than someone with a knowledge of the entire DevOps toolchain but is rigid and unwilling to learn or change.
And what makes me happy is that I now see a lot of people and organizations understanding the importance of DevOps culture and not just the DevOps toolchain.
Opinions expressed by DZone contributors are their own.