Proposal: CI, CD -> CI, CD, CR

In the realm of software development it is impossible to go a week without heard about CI/CD. At a high level the concept of continuous integration / continuous delivery is to facilitate higher velocity change changes with more visibility. Software exists to support the business. So CI/CD helps the business people and software people work with more visibility.

The current CI/CD naming pattern is as follows:

  • CI = integration – merge changed to default branch often
  • CD = delivery – provide the business with visibility of progress (JIRA, pipeline, reports)
  • CD = deployment – update the version of the software running in a running system

Two ‘CD’s? From an industry that prides itself on have very specific terms to define abstract concepts I find this unacceptable. I propose we use the phrase ‘continual release’ in place of ‘continual deployment’. In my mind a release is a set of changes to be deployed. Whereas a deployment is the act of placing the release into an environment. We deploy a release to an environment.

To better clarify the abbreviations I propose replacing deployment with release.

  • CI = integration
  • CD = delivery
  • CR = release – publish a new release; optionally deploy to target environments

Is it pedantic? Sure. Are software concepts often confusing? Also yes. Hopefully with this change in terminology the concepts involved become a little more clear and understandable.

Additional Resources

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.