Last month, we discussed the quality of different DevOps metrics and some of the top KPIs to measure throughout the software development life cycle (SDLC). The key takeaways from that blog included:
- Avoid "vanity" metrics.
- Balance the number of metrics to create actionable data without causing overload.
- Don’t use metrics to reward or punish employees. Use them to improve quality and streamline processes continuously.
This month we will take a deeper dive into metrics used to measure how well your software release cycle is working:
|Metrics to Measure Software Release Cycles|
|Feature Lead Time||How long does it take to incorporate new features, from idea to release?|
|Deployment Frequency||How often do you deploy new versions?|
|Deployment Time||How long does it take to roll out a new release to users?|
|Change Failure Rate||Calculated by dividing the number of failed deployments by the total number of deployments|
Feature Lead Time
Feature Lead Time measures the amount of time elapsed between the request for a new feature and when that feature is available in an update or new release of the software. Feature Lead Time is a user-centric measurement that shows the total duration of time, including the period before a feature is approved for development and waiting periods when a feature is put on hold. Some organizations prefer to measure only "flow" or "cycle" time, which measures only the active time after a feature or user story is added to the workflow. Both versions of this metric are useful in understanding how quickly your DevOps team can respond to changing user and market needs.
Deployment Frequency is how often you deploy new releases, without measuring the quality of those releases. According to the DORA 2019 State of DevOps Report, elite performing DevOps organizations release code to production multiple times per day while high-performing teams release between once per day and once per week. Low-performing teams release code to production somewhere between once per month and once every six months.
If releasing code multiple times per week or per day sounds intimidating, it’s easier to do with the right tools and quality control. Higher-quality code requires fewer fixes and less rework, making it easier to release more often. Automated deployment tools can track your deployment frequency, providing insight when culture and process improvements are having a beneficial or detrimental effect.
Deployment Time (or "Deployment Length") is the amount of time it takes to perform a rollout of new code to users. If your team’s deployments rely on inefficient approvals and manual processes, the time to deploy a release will take longer and cause bottlenecks that slow down Feature Lead Time and Deployment Frequency.
Change Failure Rate / Failed Deployments
The Change Failure Rate measures how often deployments fail and require a hotfix or rollback. This metric is calculated by dividing the number of failed deployments by the total number of deployments for a time period. The 2019 State of DevOps report indicates that high-performing organizations can expect a 0-15% Change Failure Rate, while low-performing DevOps teams might see a 40-60% Change Failure Rate. The more mature your DevOps implementation, the more likely your deployments to production will succeed.
Release Tools to Improve Performance
Measuring development and release performance is key to understanding how to improve the value provided by your DevOps teams. Replacing cumbersome manual processes with automation tools can improve efficiency and provide deeper insight. ReleaseTEAM offers consulting, evaluation, and implementation of many industry-leading and open source Release tools.