Plutora Blog - Release Management, Test Environment Management
3 DevOps Considerations for the EnterpriseReading time 5 minutes
3 Things DevOps can Learn from the Enterprise
Many of the well-known examples of DevOps success we read in blogs on the Internet paint an idyllic picture of DevOps productivity. A team was facing a stodgy, slow-moving operations department, teams weren’t delivering software on time. Those teams moved to DevOps, became proactive about infrastructure and deployment automation, and an overnight transition to productivity ensues. People are promoted, projects are successful, and developers and system administrators dance hand-in-hand in a finale that has everyone applauding. DevOps is magic, and sometimes this is the reality for smaller projects and startups.
This is the accepted reality: If your teams move to DevOps, they will deliver software faster and at a higher level quality. You’ll be able to solve a host of IT management challenges you face today by moving to a more self-service model of infrastructure management, automating deployment tasks with tools like Chef and Puppet, and transforming operations to adapt to an increasingly agile approach to software development. You’ll breath “new life” into the stuffy, process-oriented reality of ITSM-based process.
Reality is a Bit More Complex
DevOps is hugely important to our clients and the movement has been a positive force for change. It’s also a trend that has inspired, in my opinion, a lot of marketing driven over-selling, and the danger here is that an over-simplistic message won’t line up with reality, teams will move to DevOps with unrealistic expectations, and at the end of the initiative enterprises will end up recommitting to heavy, process-oriented release pipelines that hobble productivity. My sense is that the DevOps community needs to talk honestly about its limitations in the enterprise before we face such a crisis of trust.
As the concepts of DevOps move from Startups and Open Source communities to the enterprise it has to undergo a transformation, and it’s this transformation that is not as straightforward as many posit. While enterprises will benefit from adopting DevOps practices, the more controversial statement is that DevOps will benefit from taking some time to consider what Enterprise computing has to offer the community. What does the Enterprise have to offer?
- An Appreciation of Risk – A recognition that different roles have different responsibilities, and a that a modicum of production control never hurt the stability metrics executives judge all of us by.
- Change Management – The idea that change management involves more than just a summary of issues fixed in Jira or pull requests merged to a repository.
- Release Orchestration – Consideration of project dependencies at a department or organizational level. The reality of the enterprise is that releases need to be highly orchestrated or else chaos ensues.
The Reality of DevOps in the Enterprise
The myth of DevOps is that it is simpler. While DevOps may be simpler for particular job roles in IT, this ease of deployment and development comes at a cost – it shifts responsibility for production control and quality management further toward operations, and DevOps in the enterprise often ends up hobbled by similar rules and processes as IT departments fail to understand how to adapt.
As with any process in any organization the amount of effort required to support software delivery is conserved – it is a constant. If you are managing a large enterprise you will still have teams accountable for quality, performance, and change management. The difference with DevOps is the way in which automation is leveraged to place control in the hands of application development teams and the redefined relationship between operations and development.
This is a good thing, and we need to continue to make progress in bringing the lessons of DevOps to the enterprise, but as we do this we need to also think about three next steps:
- Use tools like Plutora that can account for risk. Use tools that understand roles associated with a release. It isn’t enough to let developers loose on production and cross your fingers, you’ll want to have a RACI matrix available for operations to understand who is responsible for a build (even if it is automated.)
- Keep change management teams involved in DevOps initiatives. Change management and production teams are often excluded from DevOps initiatives as they are viewed as part of the problem. In the largest organizations production control is an essential component of managing release risk. They need to be included in any DevOps initiatives, and the DevOps community needs to stop viewing existing players in ITIL-based workflows as enemies. Engage teams following ITIL-based procedures and you’d be surprised what you might learn from them.
- Develop a department-wide approach to DevOps. If your organization is planning to move teams to a more agile, more “DevOps” approach to releases you need a comprehensive strategy for how to manage change across multiple project teams. If you don’t do this, wait a few years, and you’ll likely have to stand up a new ITIL-based process to manage your project teams.