How can your organization do DevOps? If you think the answer is simply to hire DevOps engineers, think again. Here's why the concept behind the DevOps engineer job description and the DevOps position itself are flawed and can undermine efforts to effectively embrace DevOps.
How not to do DevOps
There are thousands of job listings for DevOps engineer positions. Why? Because many companies think that they key to embracing DevOps is to hire someone with "DevOps" in his or her job title.
This is flawed thinking, however, for two reasons.
First and most obvious, it's simplistic to assume that the answer to achieving a complex technological transformation is as easy as creating a new position for someone ostensibly responsible for making that transformation possible.
It's actually a bit strange that companies are so interested in hiring DevOps engineers, given that you almost never see advertisements for "cloud engineer" or "continuous integration engineer." In the cases of other recent technological innovations, organizations appear to have realized that embracing them requires more than creating a new job title. This hasn't happened with DevOps.
Second and more important, the specifics of a DevOps engineer job description run counter to the core philosophy of the DevOps movement. That's because DevOps is all about coordinating disparate parts of the organization. The DevOps movement emphasizes breaking down silos between different groups and making sure that everyone -- including, but not limited to, developers and IT ops -- works together seamlessly.
For that reason, hiring people to specialize in DevOps seems silly. Doing DevOps the right way means getting the entire organization to embrace DevOps, not having a few people on staff who know DevOps.
A DevOps engineer position might work if the primary responsibility of the person who filled it was to coordinate collaboration between different groups within the organization and enforce DevOps principles. But that is not what a common DevOps engineer job description implies.
It would likely describe a role that blends programming with IT ops skills. They read more as job ads for people with broad skill sets than for engineers who can help all parts of an organization make the most of DevOps.
How to do DevOps
So, if hiring someone to be your DevOps engineer is not the right approach to embracing DevOps, what's a better way?
The answer is to reform your company's entire culture to embrace DevOps principles. Your employees should understand what DevOps means and how they can collaborate with each other to do DevOps.
Developers as testers?
Here's why it makes sense
Shifting testing left gets testers involved earlier in the process, but it also puts more of an onus on developers to collaborate with testers. Developers should write test scripts and run unit tests, and, ultimately, they must become responsible for quality as well as velocity.
It's not necessary for each employee to possess the full set of skills required to write, test, build, deploy and manage software. You just need to ensure that he or she understands that effective software delivery requires communication and coordination between the various groups responsible for each of those stages of software production.
It's time to put the DevOps engineer concept to rest. Doing DevOps requires much more than just adding "DevOps" to a job title.