It is a useful DevOps practice to decouple software deployments and releases. While a deployment marks the installation of software in an environment, a release is when we make the features available to our customers. Thus, deployments are not necessarily associated 1-to-1 with releases.
This decoupling has many benefits: foremost, that releasing new features is less stressful, as we can deploy these features at an earlier stage and only release them when useful from a business perspective. Practices like canary releases and blue-green deployment patterns can help to achieve this goal.
The State of DevOps report, a great resource about DevOps adoption within the industry, identified deployment frequency as one of the pivotal KPI’s that signal DevOps maturity. Their definition of deployment is “deploying to production”. Release frequency, on the other hand, is not mentioned as a KPI.
We ask ourselves: given that deployments and releases are two separate concepts with different motivations, shouldn’t release frequency be a metric to measure on its own? Ultimately, software that is not released to end-users is software that is not used, missing potential feedback and return on investment.
What is your opinion? Do you also think release frequency is an important metric to measure? What is your experience with separating deployments and releases in practice?