After presenting on a recent webinar by CollabNet called “50% Cycle Time Reduction – Delivery Pipeline Strategies That Work,” my colleague Laurence Sweeney and I received some interesting questions about DevOps from the webinar registrants that I would like to address:
1) What is difference between DevOps, ARA and CD (Continuous Delivery)? How do they all relate to each other?
My favorite definitions of continuous integration, continuous delivery, and DevOps are the following:
- Continuous integration is where each commit results in a fully tested build, but not running in production
- Continuous delivery is where each commit results in a tested code and environments that are then automatically deployed and run in the production environment
- DevOps requires both continuous integration and continuous deployment. In the upcoming “DevOps Cookbook,” both of these are subsumed in the First Way (which is all about Flow from Development into IT Operations and the customer)
A more fully discussion has been written about by Jez Humble (co-author of the book “Continuous Delivery) at: http://continuousdelivery.com/2010/08/continuous-delivery-vs-continuous-deployment/
2) We’re still very much waterfall. Can we practice DevOps, or does that require Scrum?
DevOps practices are very consistent with Agile practices, however Agile is not a prerequisite. However, DevOps does require continuous deployment.
The only way to achieve the short lead times (the time required to go from “code committed” to running successfully in production) and short cycle times (i.e., tens, hundreds or even thousands of deploys per day) is to have environments available upon demand, automated code deployment processes and small batch sizes in Development (e.g., developers committing code on a daily basis).
All of these characteristics preclude waterfall Development approaches.