Practical Benefits of Continuous Delivery

As I’ve discussed previously, I believe that Continuous Delivery is a practice that no software delivery organization should ignore.

Fundamental to implementing continuous delivery is building a delivery pipeline.  I drew up the following diagram of a delivery pipeline because I’ve found it useful for articulating the practical benefits of Continuous Delivery and highlighting where they are realized in the software delivery lifecycle.

I’m posting here in case it is of use to others (click to enlarge).

Benefits of a delivery pipeline

Here are the benefits stated in the diagram in text form:

  1. Immediate start after check-in: no wasted time
  2. One new change per new pipeline: transparent debugging
  3. Parallel execution: faster feedback
  4. All stages e.g. code analysis used as enforceable gates: easy to enforce quality controls
  5. Can include infrastructure / environment build as well as application deployment: predictable and consistent behaviour
  6. Visible project status: easy to understand current stage of delivery execution
  7. If a stage fails, the committer of the change can be immediately notified: efficient communication
  8. Fully automated: predictable outcomes and minimised manual effort
  9. Consistently executed automated test harness: high visibility of code quality and automated test stability
  10. Easy to drill down to cause of failure: faster debugging
  11. Highly visible historic information: can extract trends which inform planning decisions
  12. Tested build package re-used: predictable and consistent behaviour
  13. Environments are recreated from version control so no need to limit: efficient debugging
  14. Infrastructure resources recycled: efficient use of cloud services
  15. Some stages may only be triggered manually: compatible with release management approval processes
  16. The pipeline runs successively slower and more expensive quality gates: ensures optimised fast feedback

Notes:

The pipeline in the diagram is for a single independent software component.  I will describe how to handle multiple components in a future post.

The imagery is inspired by the build pipeline plugin for the Jenkins tool.

 

Advertisements

7 thoughts on “Practical Benefits of Continuous Delivery

  1. Nice example. Iterative and incremental model not only useful to customer’s feedback but also to get self feedback and team feedback to ensure that we are in right direction.

  2. Pingback: Continuous Delivery Visualization | Voice of the DBA

  3. Pingback: Reducing Continuous Delivery Impedance – Part 2: Solution Complexity | markosrendell's Blog

  4. Pingback: Reducing Continuous Delivery Impedance – Part 3: COTS Software Packages | markosrendell's Blog

  5. Pingback: Reducing Continuous Delivery Impedance – Part 5: Learned Helplessness | Markos Rendell

  6. Pingback: ADOP with Pivotal Cloud Foundry | Markos Rendell

  7. Pingback: Using ADOP and Docker to Learn Ansible | Markos Rendell

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s