WTF is Continuous Delivery?

Posted by Erin Snyder

24 May 2016

wtf is continuous delivery?

What is continuous delivery? A beginner’s guide

Somewhat recently I expanded my support-net (it’s like a fishing net but made of empathy and clever workarounds instead of rope) to cover more of the ThoughtWorks Products. Two of these products are Continuous Delivery and Release Management systems. Those are very big intimidating words (worthy of capitalization even) and prior to ThoughtWorks, I had no idea what any of that meant. So let’s dig in!

Some of my instructors at the coding bootcamp I attended tried to teach us how agile development works …kind of …but not really. None of us really practiced agile besides having daily stand-ups where we talked about blockers and successes.

In my current position, part of my job is to support an agile development tool. I really needed to learn this stuff. I figured out some of it on my own, I learned a lot from from observing my team, and now I’m doing the same with continuous delivery. Today I decided to sit down and pour out my knowledge for the benefit of anyone who might not be familiar with such things. Experienced developers can take a break: this one’s for the new kids and people like me who come from non-traditional (no CS degree here!) backgrounds. Here it is:

First of all, how does software even get made?

When I was attending a coding bootcamp, here was my process:

+(magic, that’s why)
continuous delivery is magic

In a workplace that practices agile development, here is your process:

What does continuous deployment do?

Some of the above steps can be automated to make the whole process faster. The faster you push a bug fix or a new feature, the happier your customers will be.

When you use continuous deployment software, here is your process:

What was that about continuous delivery?

The only difference between continuous deployment and continuous delivery is a manual trigger on the deployment stage. In continuous delivery, a human being has to push the button to deploy to an environment (staging, production, whatever).

This means that you can control your release cycle and decide what is getting pushed where and when. Deployment becomes a business decision. You can even rig up a big red button for your PM or whoever to push when it’s time to release!

anybody can deploy with cd

So that’s it! That is your very basic introduction to CD. It’s just a way to automate some of the steps that your code goes through when you’re developing software and gives you control over your release schedule. Not so intimidating after all :)


comments powered by Disqus