Why Agile Development Should Not Own DevOps

Thanks to Ramon Monteiro @ivisualize for developing this cool visual depicting my last post on The Key to aligning Agile Dev and Stable Ops to a Successful DevOps Transformation. While agile development teams continue to iterate and improve applications for the Business, and Ops insures that systems are stable and reliable, the CIO leads the entire IT organization through a DevOps transformation.


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%.

Dev simply doesn't have the time to take on additional operational responsibilities. They should not be involved configuring servers or automating their configurations. If they are going to participate in a DevOps transformation, they should support their Ops teams by focusing on the Dev practices of DevOps such as standardizing their application builds, automating testing, or strengthening their version control practices.

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.
 


No comments:

Post a Comment

Share