Battle between Continuous Delivery and DevOps?
I stumbled across a discussion spawned off an article a friend and former colleague wrote that asked what the difference between DevOps and Continuous Delivery would be. There were many great comments in this discussion. Some of what I will state here will already have been said in some form.
History of the World - Part II
DevOps is a movement that spawned from the general dysfunction of traditional Information Technology (IT) silos of businesses. Recall the pictures of the “wall of confusion”, “it worked in dev – ops problem now” and many more. Trouble was twofold. There needed to be a way to be innovative from a development perspective (velocity, frequency and quality) but operations was busy keeping the lights on and couldn’t support development on this with the required infrastructure and when there were requests, it took forever to interpret them, let alone implement them. From an operations perspective, any and all changes were first denied – why would it be otherwise: the last delivery was poor and it took forever to get things working (and reworking and reworking). This juxtaposition marginally functioned in many organizations up until a few years ago. Things changed: enter the digital economy (and people who grew up in it). Big question marks arose. There has to be a change. At the heart of this change is a cultural change – there has to be trust across teams, collaboration, the right metrics to be measured by, a sense of value and how you support the business, removing bottlenecks (hero culture is bad), etc. All spoken and written about. Often, to accomplish this, tools were created or adapted to assist. This is the birth of DevOps (which is nice and short but really should be BizAppsDevQaOps).
Enter the DevOps Era
A few “wrong turns” and interpretations quickly arose as marketing machines latched on. I still cringe when I see “DevOps Engineer” in a job title, or when a dev team says they do DevOps but their Standup has no representation from "BizAppsQAOps" there. Many more examples down the path.
So, all this rambling for a “definition” of DevOps. Again, it is a movement to tear down silos within organizations. And, it is a journey! You need a business-led approach of well-defined strategy and objectives, stakeholder education and IT/Business alignment of priorities. Interlocked in this is skilled and collaborative IT with the relevant knowledge and skills, cross functional processes and cultural harmony. To complete this puzzle there are required key enablers and controls, with the right infrastructure and tooling, the right suppliers and support and the relevant security and compliance measures. Some really smart DevOps people came up with good to great approaches and frameworks to assist with making these concepts reality in organizations (CALMS, for example is one of my favorites - thanks Damon, John and Jez).
Continuous What?
That’s DevOps. Let’s move on to the “continuous” part. Again, lots of marketing machines took over to hijack definitions. “Continuous Delivery” could be defined as taking ideas, stories and changes and getting them to produce business value at velocity, frequency and quality (where quality encompasses functional, technical, security, etc.) in a highly automated way with amplified and near-immediate feedback loops for measurement and/or correction. It isn’t about checking-in, building and validating (Continuous Integration) or moving technical artifacts with configurations (Continuous Deployment) or managing deployment pipelines (Continuous Release). Continuous Delivery builds on and requires these concepts but also ties in planning, quality and operational practices to achieve the goal: continuously deliver the right innovation that produces business value - measurably.
DevOps isn't a technology, neither is Continuous Delivery
Given these two concepts, DevOps and Continuous Delivery, it is arguable that they go hand-in-hand. Are either technologies? No - but they certainly will require some to succeed. Can you achieve Continuous Delivery without embracing the concepts of DevOps? Highly unlikely. Can you embrace the concepts of DevOps and not do Continuous Delivery? Likely, but where would the value to the business be when businesses need applications to thrive in the digital economy?
spot on Jody Hunt, and Im stealing the Rorschach comment! No royalties!
Bravo. What people think DevOps is tells you more about them than what DevOps actually is. It's a Rorschach term.
Great analysis Georg - neither are technologies. Perhaps DevOps is weighed down more by the hype label than CD, but both are interconnected.