If you’ve been following our site for awhile, hopefully you’ve picked up on our central theme: software should be easy to operate. But as you work towards attaining that goal, keep in mind it’s a group effort. Just like the word “DevOps” is a portmanteau of development and operations, your effort towards being an organization that practices DevOps must be combination of effort from both your development team and your operations team.
As we’ve said before: to us, DevOps is not about some rote methodology, DevOps is about breaking down the traditional boundaries in a technology group. Having your operations group write checklists about deployments and release procedures and push them on the development team is not DevOps. Having your development team throw problems like production configuration management and deployment “over the wall” to operations is not DevOps.
To us, in order to truly “practice DevOps” you need to have developers that care about operational concerns and operations folk that understand software complexities and life-cycles. You need to build your software with that goal in mind: software should be easy to operate. DevOps means working together, not creating yet another silo or process that will magically solve all of your problems.
We keep beating the configuration problem drum, but we truly believe it is the root cause of many organizations’ software problems. Instead of treating configuration like a software development afterthought, treat it like the first class citizen that it is. By solving the configuration problem you ensure a consistent process which will inevitably lead you towards software that is easy to operate.
So if you want to “be DevOps”, don’t create a separate team and don’t search for some magic process or methodology. To “be DevOps” you just need your operations team to start speaking up and working with your development team about what could be done to reduce the operational complexity of the software. Figure out how to make your software easier to configure, easier to deploy, and easier to operate in general.
If the software has all the information it needs to make a decision, then it should just make that decision without the need for human input or manual intervention.
Likewise, your development teams need to seriously listen to the operations group. They need to treat the operations team’s concerns just like they would treat any end-user feature request or bug request. After all, your operations team is simply another type of user of the development team’s software.
Only by having your development team and your operations team work together and collaborate as equals, as two sides of the same coin, can you truly achieve “DevOps”.