How to implement Continuous Delivery

Why should I care?

Being able to deploy software at the “push of a button” not only reduces release complexity and increases delivery speed, but it also allows feedback to be collected from customers faster, resulting in features being iterated upon with less assumptions.

What is Continuous Delivery?

Continuous Delivery is the practice of frequently releasing software at the push of the “button”. It’s technically enabled by an automated deployment pipeline, but also focuses the mindset of delivering software to customers over building new features.

If it hurts, do it more frequently, and bring the pain forward.

 Jez Humble

The main benefits of implementing continuous delivery are:

  • Reduced deployment risk
  • Faster return on investment
  • Frequent customer feedback

From a technical standpoint, continuous delivery is the combination of the following:

How to implement continuous delivery

1

One “button” push deployments

Automate tests within a continuous integration system and have each build deployable to a production environment through the execution of an automated deployment script

2

Focus on delivering software over building new features

Make minimal marketable features to get software to customers faster

3

Automate “health checks” for production systems and the delivery pipeline

Fix blockages on the delivery pipeline and your production environment as they happen to maintain the ability to continuously deliver

What to watch out for

  • “Finished” software tasks that aren’t deployable
  • Partially automated deployment pipeline
  • Difficult to fix deployment pipeline

If you found this useful, share it with your followers