Continuous Deployment is the term we use to describe when users immediately get changes to an application as soon as they are “complete.” Traditionally, software was delivered to users via some physical media. Increasingly, software is delivered “over the air” (OTA) which makes one wonder if there is a reason for releases. From the software development side of the house, typically the answer can be “no.” However, one must have the infrastructure to support deployment to end users which, for an existing application, can be difficult to retrofit. We should also consider, as producers of software, that there may be other, very good, reasons to retain the concept of releases. For example, releases can be great for a marketing or sales team to make a “big splash” to drive new sales.
The major advantage to implementing Continuous Deployment is that you get feedback from your users very quickly. The feedback can be as simple as increased usage of a feature that is more prominently displayed, usage of a brand new feature, or something negative like a failure under load of your software at scale.
All that said, Continuous Deployment is, rarely, as simple as “continuously deploying changes to users.” You usually want some nuance in how the changes are released. We will discuss some of those options [LINK TO ARGO LEARNING PATH]. However, the key of Continuous Deployment is that it is purely a business decision when users receive updates. Neither software producers nor the users need to be involved nor even aware that a decision was made to release changes.