This is a pretty loaded question. Is cooking a skill? Are home builders skilled or unskilled labor? A skill would denote being able to do something well or having expertise in practice. Skills can be trained! Being in a field of skilled labor like running CNC equipment requires a tremendous amount of skill.
So, is DevOps a skill or is it a logical evolution where technology delivery ends up going regardless of the forces that drive it there?
Related Articles
- 15 Top DevOps Skills In 2024
- Continuous Learning: Agile DevOps Education
- Retaining Top Talent In A DevOps-Driven Culture
Technology Delivery
Delivering technology, with any kind of quality backing that delivery, will require several different practices. Depending on your domain; you will probably employ the specialties of software developers, infrastructure/cloud engineers, quality assurance engineers, security engineers, and network engineers, along with a whole host of other roles. Each of those roles is critical to the successful execution of a project at a very high standard.
Once the technology is delivered to the market, someone is going to have to pick up the mantle and run that technology solution. In some organizations that will be a dedicated operations team, and in others they will adhere to a "you build it you own it" strategy.
One of the biggest misnomers that I run across quite frequently is this; once a project is launched, the skilled labor that developed that project is no longer needed over the lifetime of that technology. I believe that this could not be further from the truth.
Technology Lifecycle > Delivery
I prefer to look at technology through the lens of a lifecycle rather than a static point-in-time delivery. Once a technology product is launched, it needs a tremendous amount of care and feeding to ensure that it remains valuable to its end users.
Due to the complex nature of the domains that I generally work in, this means that the skilled labor that helped produce said technology product will continue to have a hand in that technology product for its entire lifecycle. It does not mean that they will be entirely dedicated to a single effort, but it does mean they will continue to lend their expertise.
So, how does this answer the question "Is DevOps a skill?". For me, the answer is a simple one, YES! But I think that it first takes an understanding of what DevOps is.
What is DevOps?
DevOps is a series of practices that combine together into a consistent delivery flow for technology. It is generally misrepresented as purely automation, but that is only a particular skilled practice inside DevOps. Embracing DevOps fully is a serious commitment to changing how technology delivery is performed, and full adoption means that you will be more interested in the overall lifecycle of technology instead of just finite delivery points in time.
What Expertise is Needed for DevOps?
I believe that most organizations are following a more traditional software delivery methodology. They have not adopted DevOps or agile in any meaningful way, and if they have at the very least adopted agile they are not using a standardized framework. This is not true everywhere, but I believe it is more true than false.
Advocating for and Leading Change
Since most organizations are building and deploying software with some degree of success in whatever way works for them, to build real DevOps adoption, a change agent is going to need to be bravely thrown into the mix to help drive the change they want to see in the world.
Let's face it, Change is hard. Change brings the unknown right to our doorsteps and forces us to confront aspects of our work that may feel uncomfortable. Depending on your level in an organization, either being an advocate for change or leading through change is a trainable skill that individuals should look into developing.
Agile Project Management
Project management is a pretty crowded space. There are plenty of certifications out there that individuals can go get to skill up in this space as well. But, agile project management is not just for project managers, everyone should become well versed in this space.
Learning about risks and risk management, work breakdown structures, timelines, forecasting, Gantt charts, resource management, and all of the rest of the highly skilled practices in agile project management will only enhance a DevOps team's ability to deliver effective and high-quality solutions. If a project manager is left to fully manage a project independently while engineers are heads down in code and poorly communicating, that project is doomed for failure from the very beginning.
Transforming Communication
In order to adopt effective DevOps practices, a team will need to build effective communication patterns.
Some organizations will adopt a pattern of tickets first. "If it isn't in the ticket, it didn't happen". This is a great asynchronous communication pattern that ensures that communication is available more broadly to any consumers that may have questions or need updates. It is an ineffective communication pattern if nobody ever reads the tickets.
Other organizations will adopt in-person or remote scrums to talk about what they worked on, will be working on, and challenges. This can be a really good communication pattern for individuals who like to talk through and collaborate on problems. This is a terrible pattern when it comes to groups that are spread a little too thin or have a WIP problem.
Communication must work for the individuals who are producing communication and consuming communication. I have seen multiple different scenarios fail because members of the team are not willing to adapt to each other and ensure success. There are a tremendous number of tools on the market, I am confident that any team willing to put in the work to find the right one can become effective communicators.
Effective Feedback Loops
Along with communication, feedback loops are also incredibly important to a DevOps team. If automated testing fails, where do notifications go? If there is a problem with production, where does communication go? If these two events, or many other different kinds of events, impact delivery; where does that communication go?
By ensuring that feedback is making its way back to the proper parties, more effective data-driven decision-making can happen. Without feedback loops from tools, systems, or people; we are all left guessing!
Tools Tools Tools
10 years ago, the market for DevOps tools (technology tools) was pretty sparse. You were left with bash scripts on Linux servers, limited API access, and using your legs to walk down to your local data center to pop in the newest RedHat CD.
Today, the number of tools in the DevOps space is expansive. I am not going to go too deep into the tooling here because of its depth, but any DevOps team worth its weight will need to have some serious skills with the latest DevOps tools.
Conclusion
I wrote this post to answer the question, "Is DevOps a skill?". I believe that the answer to that question is a resounding yes. It is as much of a skill as sculpting clay into a piece of art or customizing a classic car. There is a high degree of depth in expertise for a DevOps team to be effective in their delivery processes. Finally, any organization out there that thinks they are doing DevOps without these skills is not fully realizing the benefits that DevOps has to offer.