DevOps isn’t just the right culture, roles, or tools - it is a trifecta. But what is the right combination? Well, that depends on your organization, and it is important is to realize that you need all three and have to think strategically about what each one looks like for your organization.
Sumit Agarwal (@aga_sumit) tackled this at the 2016 All Day DevOps conference in his talk, DevOps: Culture, Tools, and Roles. He is currently the Head of Release Engineering at Broadridge Financial Solutions and is leading a change initiative to adopt continuous delivery. In this article, we’ll look at Sumit’s advice on the DevOps Trifecta to help you think through what is best at your organization.
What is DevOps culture? We often hear that DevOps is about collaboration and open communication between development and operations, and that is key. But there is so much more to that...
It is about sharing responsibility between development and operations. This means developers are in the on-call rotation, which helps them see how their applications run in production and keeps operations from getting burned out. It is about continuous learning. You run blameless postmortems, because any bug or outage is an opportunity to learn. It is about lean practices. They are pervasive to reduce backslides with more timely feedback and reduce waste by reducing handovers. And, throughout everything, it is about the eye towards continuous improvement: learning from failures, dev understanding ops better and ops understanding dev better, improving communications, etc.
Besides these principles, a DevOps organization must have an effective team and a team that feels safe together (see “Generative” in the above chart).
With regards to the roles of all team members, you must start with considering operations to be the most important users and a shared responsibility of operational requirements. This allows operations to see how the applications work and to request operational requirements and improvements.
There also needs to be a specific DevOps role. This person orchestrates the DevOps environment, and they should be effective at:
Coding or scripting.
Communicating and collaborating with others.
You have the opportunity to structure a DevOps environment in several ways:
DevOps Silo: This can work for a limited time with the goal to improve communications between Dev and Ops.
Rebranded Sys Admin: This is effectively just giving a Sys Admin a new title and tools. You should never do this.
But, what you should really strive for is an intersection between Dev and Ops:
Remember Home Improvement and Tim “The Tool Man” Taylor? He always wanted a bigger and better tool. A power drill with a two-cycle motor? Sure, sounds great. But a “better” tool isn’t always better. In fact, Sumit makes the point, “Tools are not essential - look at the problem and see if you are better off building the solution yourself. You will also learn more about the problem and the solutions. Just because you use Jenkins, doesn’t mean you are doing continuous integration.”
In the end, every DevOps organization needs the right culture, roles, and tools. How do you decide? As Sumit said, “Measure what you want to change and look towards continuous improvement. Retire old metrics that are no longer relevant.”
You can watch Sumit’s entire talk online here. If you missed any of the other 30-minute long presentations from All Day DevOps, they are easy to find and available free-of-charge here. Finally, be sure to register you and the rest of your team for the 2017 All Day DevOps conference here. This year’s event will offer 96 practitioner-led sessions (no vendor pitches allowed). It’s all free and online on October 24th.