A recurring argument in the DevOps community is whether the word DevOps should exist within a job title. Most people close to DevOps think it’s a potentially harmful anti-pattern which indicates a misunderstanding of what DevOps is all about. A few years ago I agreed with this, but I’ve now changed my mind.
Yes, DevOps is a culture, a mindset and all of those good things. It is about how people work together much more than automation. I also appreciate the argument that labelling individuals and teams with DevOps potentially introduces a silo where we are trying to solve a problem of siloes.
With all of that recognised, I’m still more than happy to now call myself a DevOps Engineer.
There were lots of job titles that didn’t exist 10 years ago. Agile Coaches, Social Media Managers, Data Scientists and Mobile App Developers for instance. Those fields evolved and there are now recognised experts in those fields who know how to apply the tools and help organisations be successful with them.
DevOps is the same. It is maturing as a movement and there is now enough specialist knowledge in the niche that people can build significant niche expertise, work within it full time, and even build long term careers as DevOps Engineers.
Definition Of A DevOps Engineer
DevOps Engineers are the people who sit between or within Development and Operations and use automation across the SDLC to reduce the cycle time from development to production.
These Engineers will bring knowledge across Development, Testing and Operations and help with gluing those areas together to ease the transition of code across them.
They will have deep technical skills in tools such as Puppet, Chef, Ansible, Vagrant and Docker, and use these tools to help their organisations deliver better software, faster and more reliably. They will also likely understand cloud and how to use infrastructure automation to leverage this to best effect.
As important as the technical knowledge is what we call the ‘DevOps Mindset’ – a personality type and approach that can help the IT organisation move from traditional ways of working, break down siloes, and collaborate more effectively. Technical skills alone do not make an effective DevOps Engineer.
Why This Matters
To me, this all sounds meaty enough to be a full time role and a career path. Therefore, why shouldn’t it also have it’s own name to identify it by?
I’ve always been pragmatic about this, but my main interest in this is how accepting DevOps Engineers as a job title might help to overcome the DevOps skills crisis – the huge shortage of people in industry who have this skill set and the fact that as an industry, we have still have no sustainable path to creating these people.
By accepting DevOps Engineers as a job and a career path, I think the definition of one would become more concrete. There would be more of a shared understanding over what it means, rather than savvy build and release engineers or system administrators re-badging themselves.
More people could align themselves to DevOps Engineering and work towards obtaining this recognised skill set.
Visibility of DevOps activities within the business would grow, and budgets would be created to support DevOps rather than it being an under the radar activity happening under other functional siloes.
Training for DevOps Engineers might emerge, and one day, it might even end up as a University Level course.
All of these things would help DevOps expand as a movement and practice in industry, which is ultimately a good thing for the sponsoring organisations and anyone who works in IT. Here at Contino, the more we interact with customers around DevOps, the more I realize this is the path things should take.