I want to be a DevOps engineer but I hear that DevOps is not a role
"DevOps is not a role."
You'll hear these words now and then during DevOps conversations.
But you'll see many people calling themselves DevOps engineers.
You'll also see many opportunities on job boards for DevOps engineers, senior DevOps engineers, lead DevOps engineers, etc.
So, is DevOps really not a role?
To address this question we have to go back to the history of DevOps.
A brief introduction to DevOps
DevOps is a philosophy created around 2007 to address a serious problem in software engineering.
At the time, software teams followed a waterfall model for software development.
In the waterfall model, the developers used to write code and hand over to (or rather throw out at) the IT operations team (also known as system administrators or sysadmins). The IT operations teams would get the code running in production by following various ad-hoc procedures.
Getting new code to production was a painful task for both teams. The developers just wanted to ship out the new code. The IT operations teams naturally resisted the urge for change, because nobody really knew how the new code was going to perform in production.
So, shipping out new features and fixing bugs was slow and cumbersome.
Also, the developers and the IT operations teams were often in rivalry. If anything went wrong there was a lot of ball passing and the customers suffered.
To put this problem to an end, software industry got together and created DevOps - a new set of practices to develop and run software efficiently. The DevOps practices facilitate collaboration among the developers and the operations teams to create harmony . Also, the DevOps practices emphasize on automation to improve the efficiency of the software lifecycle.
Today, many organizations are successfully using DevOps practices to deliver quality software at high velocity.
Emergence of the DevOps role
From the beginning, DevOps was intended to be a methodology - a set of practices that the developers and the operations teams could follow along.
There was no any role named DevOps engineer in DevOps practices.
In fact, it was considered an anti-pattern to have a role named DevOps because it dilutes the intention of DevOps.
As more organizations began rolling out DevOps practices, the technology landscape of software development also evolved. New technologies like containers and Kubernetes emerged. Many tools were developed to support automation aspects in DevOps practices. So, the skill set required for software operations vastly changed from the traditional system administration skills.
When recruiting operations team members with these elevated skill set, the organizations used to call that job role as DevOps engineer to differentiate it from the traditional operations or a sysadmin role. Gradually, the term DevOps engineer became an accepted term in the software industry.
But, still you'd hear people sometimes shouting out that "DevOps is not a role".
It's true that the original DevOps practices did not distinguish a person as a DevOps engineer. But today the term DevOps engineer is used for convenience to identify persons involved in software operations in a team that's practicing DevOps.
The use of this term does not harm the intention of original DevOps practices.
So, while the original DevOps practice did not define a role named DevOps engineer, today's software teams have a concrete a role named DevOps engineer.
Not only that, DevOps engineers are one of the most sought after resources in the software industry.
The job scope of a DevOps engineer
The job scope of sysadmins or the traditional operations teams was limited to running code in production.
But DevOps engineers have a much wider scope of responsibilities like:
- Planning projects and being involved in project management decisions
- Collaborating with developers and QA engineers to identify their requirements
- Building CICD pipelines to automate software deployment and release
- Writing IaC for provisioning cloud infrastructure
- Monitoring the performance of production software
- Troubleshoot and identify problems in production systems
- Help teams adopt new tools
People often describe DevOps engineer role as a bridge between developers and operations teams. But it is not true.
Most organizations do not have separate roles as operations engineers and DevOps engineers. The DevOps engineers are responsible for the operations work as well.
Variation in DevOps engineer roles
Above we listed a typical set of responsibilities of the DevOps engineer. But, if you are to become a DevOps engineer, your actual responsibilities will depend on many factors.
- Programming language/frameworks used by developers
- Cloud platform (private cloud or public cloud)
- Type of the software applications (Enterprise software, Mobile app with back-end, etc.)
- Availability requirements of the software application
- Size of the software team
- Maturity of DevOps adaptation in the organization
So, as a DevOps engineer, you must be prepared to adapt to the requirements of your team.
There are also other variations in DevOps engineer roles like Site Reliability Engineer and Platform Engineer. We will go into details of these roles in a future post.
DevOps engineer's skill set
People tend to believe that a DevOps engineer is a pure technical role. But that's simply not true. A competent DevOps engineer must have a balanced set of technical and people skills.
Technical skills of a DevOps engineer
A DevOps engineer must be well-versed with all aspects of the software development lifecycle.
Automation is a crucial part of DevOps practices. So, a DevOps engineer must be able to use tools to automate repetitive steps like build, test, deploy, monitor, etc., in the software lifecycle.
Also, a DevOps engineer must be skilled in cloud infrastructure, IaC, troubleshooting, etc.
People skills of a DevOps engineer
While technical skills matter, people skills matter even more for a DevOps engineer. A DevOps engineer's primary objective is to help software developers ship code efficiently to the market.
While tools exist to support this objective, the tools alone are not enough. The DevOps engineer must have the people skills to collaborate with the developers and introduce the right tools and practices to solve the problems at hand.
Being a DevOps engineer
If you have a dream to be a DevOps engineer, don't get confused by people telling you that "DevOps is not a role".
DevOps engineer is a valid role and a solid career choice in 2025.
Thanks for reading.
-Indika