Warning! Let Ops own Operations
Somewhere in the emergence of DevOps tools and practices some agile teams have taken the initiative and gone beyond their core responsibilities into system and operational domains. Some argue that because tools like Docker, Chef and Puppet enable software driven configuration management and scripted system deployments that it now falls under Development responsibilities to program virtual environments and automate their scalability.
Don't Cross The Streams! Developers Stay Left!
Review my last post. When I lead a group of developers, I target them to spend at least 70% of their time on development efforts that directly improve business capabilities. That means they only get 30% of their time to operational and support tasks like responding to incidents, addressing application lifecycle issues, resolving technical debt, and improving development processes. All of these are critically important, but keeping up with these responsibilities is a tall order and difficult to fulfill within their 30%.
Why Agile Development Teams Cross the Line?Agile development teams by definition should be self organizing but if there is a need to take on DevOps practices they may elect to put this work on their own backlog. A product owner that senses infrastructure or operational gaps may support them. If there is a strong cultural divide with Ops, if there is weak governance on procuring infrastructure (including cloud), or if there aren't practices to insure development priorities are applied to appropriate technical functions then agile teams may cross the line and take on Ops' practices.
This isn't the answer. I doubt agile teams would like their product owners to start designing databases or developing technical standards (though some try to) because they lost confidence in their development teams. Development teams need to have a similar respect and collaboration with their Ops teams regarding operational responsibilities.
If Ops teams aren't getting it and DevOps is a strategic priority for the CIO, then he/she needs to work that out with the Ops team's management. If the CIO accepts Dev stepping in, then it might create longer term animosities or produce conflicts with fulfilling business priorities.
How can the CIO Help?
A CIO should recognize when one team needs support and another team is overrunning them. If an Ops team is struggling with the new operational practices and tools of DevOps, the CIO needs to step in and pace the program accordingly Some options:
- Define roles and responsibilities so Dev and Ops understand who owns what DevOps practices and where collaboration is required.
- Bring in a coach that adapts to the CIO's and organization's governance and culture.
- Recognize skill gaps and address by bringing in experts, investing in training, and providing sufficient time for practicing new skills.
- Define reasonable scopes and goals especially on transformation initiatives.