How to implement DORA metrics: a practical guide for engineering leaders
Most DORA metrics guides are written for engineering orgs that don’t exist yet: teams with dedicated platform engineers, multi-year transformation budgets, and the organizational bandwidth to spend a whole quarter instrumenting pipelines before measuring anything.
If you’re leading a 50–150 person engineering org, that’s not your reality. You have tech leads who are already overextended, CI/CD pipelines that grew organically across three different tools, and a board that wants to see delivery metrics in the next quarterly update. No one wants to wait through an 18-month implementation program.
That gap is why most mid-sized orgs either never start, or start and quietly abandon it when the data doesn’t make sense. This is written for your reality, with no platform team or enterprise tooling budget required.
What are DORA metrics, and why do they matter for engineering leaders?
DORA (originally DevOps Research and Assessment, now a Google Cloud research program) has been studying software delivery performance for over a decade, surveying roughly 45,000 professionals in that time. Their metrics are the closest thing the industry has to a shared, evidence-based language for software delivery performance.
The 2025 DORA report expanded the original four metrics to five.
Throughput metrics measure how much gets through the system:
- Deployment frequency: the number of deployments over a given period, or the time between deployments
- Lead time for changes: the amount of time it takes for a change to go from committed to version control to deployed in production
- Failed deployment recovery time (formerly mean time to recovery): the time it takes to recover from a deployment that fails and requires immediate intervention
Instability metrics measure how well deployments go:
- Change failure rate: the ratio of deployments that require immediate intervention following a deployment, likely resulting in a rollback or hotfix
- Deployment rework rate: the ratio of deployments that are unplanned but happen as a result of an incident in production (the fifth metric, added in 2024)
The throughput/instability framing matters. As the 2025 report puts it: “While these five metrics provide a vital snapshot of performance, they are ultimately outcomes. They tell you what is happening, but they don’t explain why.”
Why engineering leaders specifically should care
DORA metrics don’t just measure your pipeline. They give you evidence of where engineering time is actually going. That matters when you’re explaining to your CEO why a feature is late, or defending a headcount request to a skeptical CFO. Without data from your actual delivery process, you’re making that case with anecdotes and status reports. With it, you can show the board exactly what’s happening in your pipeline and where.
| Metric | What it measures | Why executives care |
| Deployment frequency | Delivery cadence | Speed to market, responsiveness |
| Lead time for changes | End-to-end cycle time | Planning accuracy, bottleneck visibility |
| Change failure rate | Quality and stability | Risk, incident cost, customer impact |
| Failed deployment recovery time | Resilience | Downtime cost, reliability posture |
| Deployment rework rate | Rework and churn | True cost of velocity, technical debt signal |
DORA benchmarks: what good looks like at your team size
Every DORA benchmarks article uses the same four-tier framework (Elite, High, Medium, Low) without acknowledging that these tiers were derived from a survey population spanning 10-person startups to Fortune 500 enterprises. The benchmarks are directionally correct, but context matters a lot.
The 2025 report retired the Elite/High/Medium/Low tier system entirely. Instead of ranking teams against static definitions of elite performance, the research now identifies seven team archetypes, from Harmonious high-achiever to Legacy bottleneck, based on a cluster analysis of performance, well-being, and stability together. The tiers were never meant to be a scorecard. DORA has said so explicitly for years. The distribution data below (consolidated from the report, which has more columns) is more useful.
| Lead time for changes | Under 1 hour: 9.4% | 1 hour to 1 day: 15% | 1 day to 1 week: 31.9% | Over 1 week: 43.5% |
| Deployment frequency | On demand (multiple/day): 16.2% | Hourly to daily: 6.5% | Daily to weekly: 21.9% | Less than weekly: 55.4% |
| Failed deployment recovery time | Under 1 hour: 21.3% | 1 hour to 1 day: 35.3% | 1 day to 1 week: 28% | Over 1 week: 15.3% |
| Change failure rate | 0–2%:8.5% | 2–8%: 27.7% | 8–16%:26% | Over 16%: 37.9% |
| Deployment rework rate | 0–2%: 6.9% | 2-8%: 19.5% | 8–16%: 26.1% | Over 16%: 47.4% |
What this means for a 50–150 engineer org
The distribution tells a more honest story than tier labels ever did. Only 16% of organizations deploy on demand. If your team ships weekly, you’re in the middle of the pack. Only 9% achieve sub-hour lead time. Just over a quarter of organizations have a change failure rate between 8–16%.
Use this as context. A few principles for your team size:
- Monolith and lower-cadence orgs: Moving from monthly to weekly deployments puts you in the top half of the distribution. That’s a meaningful improvement worth celebrating before chasing the top 16%.
- Service-oriented orgs: Sub-day lead time is achievable for most services in year one. Start with your highest-traffic service and prove it there first.
- Regulated industries: Recovery time and change failure rate matter more than frequency. Don’t trade stability for deployment cadence in a compliance environment.
The 2025 DORA report is explicit on how to benchmark: “The best, most insightful comparisons of software delivery performance are for the same application or service over time.”
The three traps that kill DORA implementations before they start
Before getting into implementation: most attempts fail, but the failure modes are predictable and avoidable.
Trap 1: Trying to automate before you can define
The most common mistake is reaching for tooling before you’ve answered the definition questions. What counts as a deployment? Does a configuration change count? A rollback? A feature flag flip? If you haven’t answered these questions explicitly and in writing, your automated tracking will produce data that nobody trusts, and abandoned dashboards will follow.
Trap 2: Perfectionism over momentum
Spending eight weeks building a perfect measurement pipeline before collecting a single data point is a momentum killer. You’ll hit edge cases, tool integration problems, and organizational resistance, all before you have any signal to motivate continued investment. Start with manual tracking. A spreadsheet with timestamp, deployer, and incident flag for 30 days will teach you more about your real edge cases than any amount of upfront system design.
Trap 3: Using metrics to compare teams
This is the most damaging trap, and it’s well-documented. Bryan Finster from IT Revolution has written extensively about the misuse pattern: leadership sees DORA as a leaderboard, teams optimize for the metric rather than the outcome, gaming deployment frequency with trivial changes or approving PRs in minutes to reduce lead time, and the entire program loses credibility. DORA’s own research team warns explicitly against cross-team comparison. Use these metrics to understand system performance.
How to implement DORA metrics in 90 days
This is for a VP or Head of Engineering running lean, with no dedicated DevOps tooling budget and no platform team.
Phase 1: Establish your baseline (weeks 1–4)
Before you start manual tracking, take the DORA Quick Check: a free, four-question self-assessment that benchmarks your team against the broader industry in under a minute. It doesn’t store your data, and it gives you a reference point before your first real data point comes in.
Start with manual tracking for deployment frequency and lead time.
Pick one team and one service. For 30 days, track every production deployment in a shared spreadsheet with five columns:
- Deployment date and time
- Who deployed
- What was deployed (feature, hotfix, config change, rollback)
- Lead time from first commit to deployment (in hours)
- Any incident within 24 hours (yes/no)
This feels low-tech because it is. That’s intentional. Manual tracking is how you pin down your definitions, not how you operate long-term. It forces you to resolve the definition questions before you automate anything. It also gives you your baseline, the before state that makes your progress concrete later.
Define your terms in writing before you start.
At minimum, document:
- What counts as a production deployment
- When lead time starts (first commit? branch creation? PR open?)
- What constitutes a failed change that counts against your change failure rate
These definitions don’t need to be perfect. They need to be consistent. Once you’ve written them down, don’t change them mid-measurement period.
Phase 2: Automate the two easiest metrics (weeks 5–8)
Deployment frequency and lead time are the lowest-friction metrics to automate because the data already exists in your version control and CI/CD systems.
GitHub Actions is the simplest starting point if your team is already using it. Add a step to your deployment workflow that writes a record (timestamp, commit SHA, environment) to a lightweight datastore. Even a Google Sheet via webhook works for this phase. GitHub’s native deployment environments give you structured deployment events you can query.
For lead time, most teams can calculate it by querying the time between a PR’s first commit and the merge-to-production deployment. GitHub’s API provides both data points.
You don’t need a commercial DORA metrics platform yet. The tool decision is a Phase 3 or Phase 4 problem, once you know what questions you’re actually trying to answer.
Phase 3: Add change failure rate (weeks 9–12)
Change failure rate requires you to connect deployment events to incident events, which is where integration complexity enters.
Start narrow. Define failure as a deployment that triggers your incident response process (PagerDuty alert, Slack incident channel, manual escalation, or whatever your current process is). Don’t try to detect failures algorithmically at first. Have the on-call engineer tag incidents with the suspected deployment cause in your incident tracker.
This gives you a denominator (total deployments from Phase 2) and a numerator (tagged incidents) that you can calculate weekly. It won’t be perfect. Latent bugs and slow-burn degradation won’t show up immediately. But it’s accurate enough to be useful, and honest about its limitations.
Expand your failure definition over time to include deployments requiring emergency rollback, customer-reported degradation within 48 hours, and SLA breaches traceable to a specific release.
Phase 4: Close the loop with recovery time (ongoing)
Failed deployment recovery time is the metric most mid-sized teams struggle to track because it requires clear incident start and end timestamps, and most incident processes are informal enough that this data doesn’t exist.
The prerequisite isn’t tooling. It’s process. Before you can measure recovery time reliably, you need a consistent definition of incident declared and incident resolved, with timestamps. If you’re not already using a structured incident management tool (PagerDuty, Opsgenie, or even a disciplined Jira workflow), establish that first.
Once you have timestamped incident data, recovery time is straightforward: resolved_at minus detected_at. Track it weekly alongside your change failure rate. They move together and tell a more complete story as a pair.
How to translate DORA improvements into business language
Every engineering leader eventually faces the same question: what do improved DORA metrics actually mean in dollars. Here’s how to translate metric movement into terms your CFO and board will recognize.
Before translating any of these into dollars, one caution that the rest of this guide will keep returning to: these metrics measure your delivery pipeline, not what your team is actually building. That distinction gets sharper under AI, and it changes how much weight each translation can bear.
Deployment frequency: speed to market
Each deployment can represent value delivered to customers. If your team ships weekly instead of monthly, that’s potentially 4x the opportunities to deliver revenue-generating features, fix churn-causing bugs, and respond to competitive pressure. But the caveat here is that in an AI-assisted environment, deployment count rises on its own as agents generate more, smaller changes. So a frequency gain only translates to business value if the deployments deliver real features and fixes rather than churn. Confirm this before putting the multiplier into a board deck. Then, estimate the average business value of a release and multiply by increased frequency.
Lead time for changes: planning accuracy
Shorter lead times mean tighter feedback loops. If a feature that took three weeks to ship now takes three days, your team can run more experiments in the same quarter, reduce the cost of a bad bet, and respond to customer feedback before it becomes a competitive problem.
Change failure rate: incident cost reduction
Industry estimates for P1 incident cost range widely, from tens of thousands to hundreds of thousands of dollars per hour, depending on revenue, customer concentration, and incident duration. The more defensible number is your own, calculated with your actual inputs. The Incident Cost Calculator pulls from Gartner, IBM, and PagerDuty research and takes about two minutes. The point is directional: reducing change failure rate from 15% to 8% on 50 monthly deployments eliminates roughly 3 to 4 incidents per month. Attach your actual cost-per-incident to that and you have a number worth putting in a board deck.
Recovery time: reliability posture
Faster recovery directly reduces downtime cost. The formula: (incident duration in hours) x (revenue per hour) x (blast radius as a percentage of customers affected). A team that recovers in 30 minutes instead of four hours on a monthly incident saves a quantifiable amount. Calculate it for your business and use it in your next budget conversation.
How AI changes what DORA metrics mean
The 2025 DORA State of AI-assisted Software Development report, based on nearly 5,000 respondents and over 100 hours of qualitative interviews, has a few findings that should change how you think about DORA right now.
First, the headline: 90% of technology professionals now use AI at work, a 14.1% increase from 2024. AI adoption is no longer a leading indicator. It’s the baseline. The question isn’t whether your team uses AI, but whether the system around them can handle what AI produces.
Second, a meaningful reversal from 2024: AI adoption now positively correlates with software delivery throughput. Teams are adapting. But AI adoption still increases delivery instability. That pattern has not reversed.
The report is direct about why: “AI tends to turn up at the keyboard, which can help explain why code quality and productivity benefit, but friction, burnout, and instability may not. They may reside beyond the individual’s purview and be tied more directly to how the organization is wired.”
AI helps individuals write code faster. It does not fix your deployment pipeline, your incident process, or your “human required” review backlog. And it amplifies whatever is already true about your organization, for better or worse.
The 2025 data confirms throughput has recovered as teams have learned to work with AI. But instability persists. The 2024 data put a specific number on it: an estimated 1.5% reduction in throughput and a 7.2% increase in instability for every 25% increase in AI adoption.
What this means practically for your DORA implementation
Don’t celebrate DORA improvements in isolation
Track the relationship between frequency, lead time, and failure rate together. If frequency is rising and change failure rate is rising proportionally, you have a quality problem obscured by a throughput win.
Deployment rework rate matters more in an AI-assisted development context
More AI-generated code means more unexpected behavior in production. Tracking the percentage of deployments requiring rollback or emergency remediation gives you a leading indicator of quality drift that the original four metrics can miss.
Treat code-first visibility as the ground truth
What your DORA dashboard shows you is downstream of what’s actually happening in the codebase: commit patterns, churn rates, complexity growth, and PR dynamics. If your metrics look healthy but your engineers are telling you something feels wrong, trust the code.
When DORA metrics are the wrong tool
DORA metrics are not universally applicable. Here’s where they’ll mislead you.
Embedded systems and hardware-dependent software
Deployment frequency is largely meaningless when your release cadence is constrained by physical hardware cycles or firmware update processes. Lead time and change failure rate may still be useful, but don’t benchmark against software-native orgs.
Heavily regulated industries (medical devices, financial systems)
Regulatory approval gates make high-frequency deployment impossible by design. Change failure rate and recovery time are more relevant, and your benchmarks should come from within your regulatory category.
Very early-stage teams (under 10 engineers)
The measurement overhead isn’t worth it yet. At this stage, the feedback loops are short enough that a VP can maintain direct visibility without instrumentation. Start DORA tracking when you’re losing direct line-of-sight, typically around 25–30 engineers.
Teams in the middle of major architectural transitions
If you’re mid-migration from monolith to services, or in the middle of a major infrastructure re-platform, your DORA metrics will look anomalous for legitimate reasons. Establish a new baseline after the transition stabilizes. Comparing across an architectural inflection point will only confuse you.
The implementation checklist
Before you start:
- Create written definitions for what counts as a deployment, when lead time starts, and what constitutes a failed change
- Select one pilot team and one pilot service
- Align stakeholders on using metrics for system improvement
Phase 1 (weeks 1–4):
- Use a manual tracking spreadsheet for deployment frequency and lead time
- Collect 30 days of baseline data
- Document edge cases and update definitions as needed
Phase 2 (weeks 5–8):
- Automate deployment events via CI/CD pipeline
- Automate lead time calculation from version control data
- Make dashboard or report visible to engineering leadership
Phase 3 (weeks 9–12):
- Connect change failure rate tracking to incident management process
- Calculate weekly change failure rate and review in engineering leadership sync
- Set improvement target based on 30-day baseline
Phase 4 (ongoing):
- Track recovery time with timestamped incident data
- Review all five metrics in a monthly leadership cadence
- Use trend lines for all decisions
Frequently asked questions
What’s the difference between MTTR and failed deployment recovery time?
DORA renamed Mean Time to Recovery to failed deployment recovery time to be more precise: it specifically measures recovery from deployment-caused failures. The calculation is the same (resolution time minus detection time), but the scope is narrower.
Should hotfixes be tracked separately?
Yes, but don’t exclude them. Hotfixes typically have much shorter lead times than planned features, which will skew your averages if mixed together. Track them in the same system with a hotfix flag, and report percentile distributions rather than averages. The 90th percentile lead time tells you more than the mean when your distribution is bimodal.
How do you prevent teams from gaming the metrics?
The most effective deterrent is structural: define metrics at the system level. Celebrate improvement trajectories. The numbers matter less than the direction. Don’t use DORA as a performance review input for individual engineers or teams. Make the definitions public and unchangeable mid-measurement period. Name the gaming patterns explicitly with your team before they emerge. Awareness is a meaningful deterrent.
What’s the right tool for a 50–100 person engineering org?
Start with no tool. Manual tracking first. When you’re ready to automate, DORA’s official metrics guide links to both source-available and commercial options.
How long before DORA metrics become actionable?
Expect 60–90 days before you have a baseline worth acting on. The first month’s data will surface definition problems. The second month normalizes. By the third month, you’ll have enough signal to identify your top bottleneck and make one focused improvement.
What comes after DORA
DORA metrics tell you how fast and how reliably your team is shipping. They don’t tell you what your team is actually working on, whether the work matches your strategic priorities, or where engineering time is disappearing into shadow work that never makes it into a ticket.
For engineering leaders managing 50+ engineers, the leadership edge is in that second layer of visibility: what’s actually happening in the codebase, not what was planned and reported.
That’s a different problem than DORA solves, and a different kind of data than your CI/CD pipeline produces.
DORA metrics tell you what’s happening in your delivery pipeline. Flux shows you why, straight from the codebase. Want to see for yourself? Request a demo.
Originally published September 11, 2025. Rewritten and updated to reflect new information.