Continuous Delivery is the next step after the Continuous Integration software development discipline. Let’s begin with what I think is the best definition for this concept:

“Continuous Delivery is the ability to get changes of all types — including new features, configuration changes, bug fixes and experiments — into production, or into the hands of users, safely and quickly in a sustainable way.”

One thing we have to demystify is that Continuous Delivery is not Continuous Deployment. Continuous Deployment is another software development technique that means that every commit and successful build is deployed into production automatically. Continuous Delivery means that after the new feature or new change is coded, reviewed, tested and got a successful build it is now considered as “done” and “ready to be deployed”.

Benefits of continuous delivering

  • Reliable releases. If you are deploying smaller changes the chances of something getting wrongly done is smaller and it is easier and faster to get it fixed.
  • Faster feedback. By delivering more often than before you see the use and results from the customer faster. It gives you time to take a different direction if something you thought was required is not really what the customer was looking for. Or in some cases is easier to test a concept and have the needed feedback to pursuit an idea.
  • Lower costs. With faster deliveries and smaller changes the cost of time spent to understand the new pieces of code and merge new changes is reduced.

Happier teams. When we release more frequently, software delivery teams can engage more actively with users, learning which ideas work and which don’t, and seeing first-hand the outcomes of the work they have done.

In fact what we see when we apply such culture on the software development teams is that you get customer satisfaction improved, since they do not have to wait weeks or even months to get new or better features. Customers also participate more often when they can give more feedback. As a consequence you have teams that are more productive on the eyes of the Product Owners (P.Os) and more confident with the delivering and deploying of their codes.