Three DevOps Considerations for 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?
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: