Hiring The Elusive DevOps Engineer
What exactly is the difference between a DevOps Engineer and your standard SysAdmins?
Join the DZone community and get the full member experience.Join For Free
DevOps skills, like old vinyl records, the latest iPhone, or Tesla automobiles are currently in big demand. Every organization right now seems to be hunting down the best DevOps talent to innovate new services, improve existing ones and scale delivery.
But have you looked at the job sites for DevOps Engineers recently? I did over this past holiday season while investigating DevOps trends for 2016. What I found surprised me. A large number of the DevOps Engineer job descriptions posted online read as rebranded System Administrator duties. Responsibilities such as installing, upgrading and monitoring services, or build new VMs/environments, or being comfortable writing shell scripts to automate CLIs, or improving visibility into monitoring, metrics and advanced analytics are the type of skills they are after.
I thought, "this can’t be right." Going further down this rabbit hole, a Google search showed that the average salary for a System Administrator is about $74,000 a year. However, a DevOps Engineer commands, on average, about $105,000 a year. This means a System Administrator can increase his or her salary by up to 40% by simply changing their title! And companies are apparently willing to pay more money for the same value proposition.
This problem reminds me of an American baseball stat popularized by Keith Woolner called, ‘value over replacement player’ or VORP. The stat is used to determine how much a player contributes to his team as compared to a “replacement player”. In overly simplistic terms, the “replacement player” represents the average performance at a particular position and the VORP is a measure of how much better or worse a player is than that average. It helps teams justify pay increases to retain top talent or attract top talent while preventing them from getting less than they paid for.
Now, I have absolutely nothing against System Administrators: they are a critical component in IT departments. But simply calling a Quarter Horse a Thoroughbred will not win you the Kentucky Derby. If you want a DevOps Engineer and are willing to pay for a DevOps Engineer, do not hire a System Administrator; the two are not the same. Let me explain.
A whole list of System Administrator job requirements could be enumerated, but let me summarize what they might include. Essentially a System Administrator is responsible for production up time, ensuring that best practices and compliance standards are adhered to throughout numerous change requests and they own all of the infrastructure and environments within an IT portfolio. It is a huge job! System Administrators are tools and CLI specialists. It is important they know how to effectively use the tools required to perform this critical function of IT.
A DevOps Engineer, on the other hand, is a big picture person. An individual who can speak geek and business too – a collaborator. A DevOps Engineer is a business process engineer with a passion for automation that understands: coding best practices and tools, is familiar with QA methodologies and the benefits of differing types of testing, embraces the riggers, security and compliance requirements of operating in production environments, understands IaaS, PaaS, SaaS and the roles they play in provisioning and maintaining public, private or hybrid environments and containers.
I submit that a DevOps Engineer isn’t a myopic expert in one IT discipline, but someone who is, or was, quite good at more than one of them at some point in their IT career. A DevOps Engineer is a senior position. You are paying more for this position because these individuals know more about more things. You do not hire a DevOps Engineer because they know a particular tool or set of tools — tools and vendors come and go.
The right hire is a technologist who is capable of learning tools as needed. If you hire a tool guy, you have pigeonholed your future and set an expiration date to your IT strategy. You hire for strength rather than lack of weakness [Colin Powell]. A DevOps Engineer is capable, a good communicator, and a leader. A DevOps Engineer is a transformative hire. A DevOps Engineer will engineer an automation pipeline that stitches together a disparate tool chain and multiple technology disciplines into a well-oiled, coherent and reliable software factory.
So buyer beware. Hiring a DevOps Engineer is trickier than many have imagined. Be certain they possess all the skills you need — from coding and compliance, to QA and security — otherwise you might just end up paying for a Ferrari but get stuck driving a DeLorean.
Opinions expressed by DZone contributors are their own.