These days it seems like a foregone conclusion that every shop probably should be using Agile. Yeah, you read that right: I said Agile with a capital A (as if that’s really a thing). You may be using any one of the bajillion agile methodologies out there or a Frankenstein built out of handful of them, but no matter how Xtremely Scrumified your Kanban process is, if you aren’t practicing continuous delivery then you are falling short of really practicing Agile. Worse still, you’re cheating your end users out of the bliss they’ll feel when using that super-awesome-game-changing feature you just finished building!
Continuous delivery is the most important part of any agile process because it’s the part where you actaully deliver the code you’ve been working on. It’s what closes that short feedback loop that we all love about Agile. Your stakeholders have told you exactly what they think they want and you’ve built it. So why wait to ship it? The sooner you ship it the sooner they can start gleaning business value from it. Or tell you that it sucks. Either way, there is tremendous value in delivering your code to production often.
The authors of the Agile Manifesto realized this and made continuous delivery a key tenet in the document that has helped to shape Agile movement and all of the flavors of Agile that are out in the wild today:
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.