I just realized I wrote my first “stop doing this” type of posts. Hopefully it doesn’t antagonise anyone too much. I wish that by the end of this post you’ve come to understand this stance I have with the use of “DevOps” in a job title.
Nobody should care about titles, instead care about skills
We can all agree that in the software industry, job titles are very relaxed. I can call myself a software developer, a software engineer, architect, consultant, web developer, mobile developer, scrum master.. it doesn’t matter. I have skills that range from building basic websites to building and designing full scale systems, mobile applications, desktop applications, to teaching people about agility, being a tech lead or a scrum master.. and I can learn more.
Most of us have huge breadth in terms of skills and knowledge that can’t be labeled under one title. Unless that title is incredibly universal, but people can just as easily bicker about the use of “engineer” in a title (even though I am an engineer by my educational background).
I consider the titles in our industry to be very flexible and relaxed, but I do take issue with using the term “DevOps” in a job title. To me this is Agile™ all over again, used by companies to lift up their brand using the latest buzzwords, while no one in there might not have a clue what that word really means.
What is DevOps?
Let us begin by defining what DevOps really is on a very broad scale. I base my knowledge of it on several books (listed below) that I’ve read on the subject, State of DevOps reports and multiple credible sources on the web. Not to mention actually practicing it.
- The DevOps Handbook
- Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations
- The Phoenix Project
Wikipedia references multiple sources, and states that DevOps has no “confirmed” definition, however it does include this reference:
At its most successful, DevOps is a combination of specific practices, culture change, and tools.
AWS:
DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes.
Under a DevOps model, development and operations teams are no longer “siloed.” Sometimes, these two teams are merged into a single team where the engineers work across the entire application lifecycle, from development and test to deployment to operations, and develop a range of skills not limited to a single function.
DevOps is a set of practices, tools, and a cultural philosophy that automate and integrate the processes between software development and IT teams. It emphasizes team empowerment, cross-team communication and collaboration, and technology automation.
So there we have three items, repeated, for what DevOps is (summarized):
- Culture
- Practices
- Tools
And by any means it is not limited to only these three items. They are just the concepts at the very top.
Now, for anyone who has the title “DevOps” in their job role.. Does your company actually embrace this culture on a daily basis? Is it your job to enforce it? To follow the practices set on by DevOps? The culture and practices of automation, of close collaboration between development and ops, of innovation and experimentation, of harbouring a safe place to learn from your mistakes as opposed to being blamed, of embedding security and testing to the early stages of the development cycle and having short feedback loops?
If you can’t understand what you’re trying to accomplish, what is the kind of culture you’re supposed to be building or nurturing, how are you expected to wear that title?
DevOps as a job title has become synonymous with just Ops work
What I’ve been seeing is that DevOps has become synonymous with people that work in operations. It has become a role with the requirement to know how to manage infrastructure as code and automate things. How to use specific tooling.
That’s not DevOps. That’s just operations work that has gone through natural evolution because of it’s surrounding environment. The cloud.
I myself, as a developer, have gotten more and more into what I would call “ops work”. I can easily write up CloudFormation or Bicep templates for my projects and set up pipelines to deploy my code into production as I commit to trunk, after my automated tests and scans have passed. I consider that a normal evolution to my work, brought on by the cloud.
But I am terrible at networks, or setting up automated scaling, load balancers etc. And I recognise that I lack in those areas, which is why I turn to specialists for help. I collaborate with my Ops colleagues, who have way more depth of knowledge in those areas to make sure everything will work as expected, and that we’ve taken all things into consideration like robustness, scalability, recoverability, maintainability.. from the very start of any project.
Don’t let the complexity distract you
Has our work (both in dev and ops) gotten more complex? Yes, definitely. Do I, or anyone else, deserve to put the name of a culture of work in our job title? No, I don’t think so.
I can embrace the practices of DevOps. I can teach other people about it. We can all collaborate to automate the work, to bring security and testing to the earlier stages of the development process and make all our lives a little easier. With small steps we can build a culture of DevOps in our company.
But we still have developers and operations people with their own responsibilities. They just collaborate more, either through having something like “ops-as-a-service” type of team, or operations people embedded in development teams.
So please, stop buying into this “DevOps engineer” title that companies market. It’s snake oil. When you interview for such a role, make sure you ask the people interviewing you if they know what DevOps really is.
Instead, why not call yourself Cloud engineers? Platform engineers. Infrastructure engineers. Or just use the good old Operations in your job title.
Let’s not ruin another good thing! Also, if you haven’t already, I can truly recommend those three books for you to read.