2024-07-01: DORA Lead Time for Changes and Change Failure Rate

Lead Time for Changes and Change Failure Rate (CFR), the final two of the Four DORA Key Metrics are now available in Uplevel

Overview

Lead Time for Changes and CFR, the final two of the Four DORA Key Metrics are now available in Uplevel.

This release adds Lead Time for Changes to help organizations understand how quickly code changes are deployed to production.

This release also adds Change Failure Rate (CFR) metrics to help organizations see how often a deployment to production results in degraded service that requires subsequent remediation. 

It is calculated as the median duration of time from a PR's first commit to when it is deployed to a production environment using CI/CD data. This differs from Cycle Time which looks at when a PR is merged.

Key Updates

Lead Time for Changes

Definition:

  • Lead Time for Changes is calculated as the median duration of time from a PR's first commit to when it is deployed to a production environments. It is an indication of how quickly code changes reach end users. A PR will be associated with a segment of people if it contains the PR author, and was deployed to production in the time range selected. For more details see: Lead Time for Changes Overview

Change Failure Rate

Definition:

  • CFR is calculated as the number of failed deployments divided by the total number of deployments subtracted by the number of fix-only deployments. It is an indication of how often a deployment results in degraded service that requires remediation. A deployment will be associated with a segment of people if it contains the person who initiated the deployment workflow or the author of a PR that was deployed. 
  • Failures are identified by a subsequent deployment that signifies that there was defect remediation by looking for specific keywords like "hotfix", "patch", "fix forward" in associated PRs or Jira Tickets. They are also identified by rollback deployments that could indicate that there was a problem with the previous deployment.
  • For more details see: CFR Overview

Frequently Asked Questions (FAQ)

How does Lead Time for Changes differ from Cycle Time?

Cycle Time does not have a strict definition across engineering organizations. At Uplevel it is defined as the duration of time between a PR's first commit and when it is merged. Look to this becoming configurable in coming weeks to optionally start when a linked Jira ticket moves to the "In Progress" state. 

How does Uplevel identify production deployments?

Deployments to production are estimated for each repository by the environment configured within Github Actions. Uplevel looks for environments that contain the strings prod|live|release, but not pre-prod|pre-releaseand variants. If no environments match this expression, we default to an environment with the fewest deployments in the past 6 months.