Melpomene - Fotolia
With DevOps, given its focus on eradicating silos and fostering integration, the lines between dev and ops teams blur, if not disappear entirely. But what does that mean for individual skill sets? Will DevOps eradicate specialists as well?
Companies looking to nail their DevOps team structure may wonder if full-stack programmers – developers who understand both programming and architecture – are the only resource they should seek out. As is the case with many aspects of DevOps, this is a point of contention.
One could argue it helps DevOps teams to have developers not only cognizant of production and architecture dependencies as they work, but who are also capable of checking off the "infrastructure as code" box. Others could interpret DevOps as keeping the more "traditional" specialists who may have some familiarity with the other side's work, but who above all have a closer relationship
Between the two factions, neither is objectively correct. Rather, which side is right is contingent upon the state of the company in question.
The phrase "able to wear many hats" is popular in job descriptions for smaller companies for a reason. When resources are scarce, it's all about getting the most bang for your buck. Smaller organizations need engineers that understand the entire stack, because they simply can't afford to hire three different specialists. Instead, they'll just hire one person and have them do the job of all three, no matter how disparate (relatively speaking) their responsibilities may be. Additionally, the scale of their goals tend to be smaller – no startup is coming out of the gate serving millions of customers – so it's more feasible for one person to do three different jobs in pursuit of those business objectives.
Larger companies have more resources and have goals much grander in scale. However, taking the full-stack approach is ill-advised at best. That's when it makes more sense to break DevOps teams down into specialist roles with more focused skill sets. It's why, for example, QA specialists are still needed in the age of DevOps, as we recently discussed in another post.
These new specialists, though, have skill sets centered on integration and communication along with the traditional dev and ops requirements. A DevOps team needs a release manager devoted to maintaining the continuous delivery chain from concept to development through production. A DevOps evangelist oversees the cultural change at the heart of DevOps. An automation architect (or an integration specialist) helps design and implement strategies for continuous deployments while also ensuring architectural efficiency that allows the team’s software developer/tester to write and test code all at once. These are new specialists with certain skills molded for the DevOps agenda.
To be clear, the general pillars of DevOps – speed, collaboration, continuous delivery, etc. – are still present in both scenarios. After all, it's still important in the grand scheme of continuous, stable software integration through DevOps to have everyone on the same page. Yes, it also means development and operations should have some familiarity with both sides of the equation. But how the responsibilities break down on an employee-by-employee basis is entirely dependent upon the nature and state of the business.