Files
magnus919_agent-skills/release-engineering/assets/dora-metrics-reference.md
T
usernameandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 2b906565d4 fix(release-engineering): address review findings in DORA asset, cadence, link, metrics script
- Correct the DORA 2024 thresholds table (Elite/High/Medium/Low) and the
  2025 caveat (seven archetypes, report rename; DRR added in 2024) in
  assets/dora-metrics-reference.md to match references/metrics-and-dora.md
- Fix Firefox cadence to the 2-week train and align GitLab's release day
  with the third-Thursday fact in references/release-process-models.md and
  references/release-operations-and-triage.md
- Fix the dead versioning-decision-table.md link in templates/release-plan.md
  to point at ../assets/versioning-decision-table.md
- Scope the deployment-frequency observation window to the selected
  environment, clamp negative change lead time at 0, and require a recovery
  deployment to start at or after the failed deployment finished in
  scripts/dora_metrics.py
- Make the metrics-and-dora.md worked example internally consistent
  (21 total deploys, DRR = 3/21 = 14.3%)
- Reword the version_bump.py docstring to describe the implemented
  pre-release behavior instead of unimplemented graduation
- Add tests for environment-scoped window, CLT clamp, and recovery
  candidate ordering (114 tests pass under pytest and unittest)

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-08-01 23:07:49 -04:00

44 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DORA Metrics Quick Reference
> The five research-backed software delivery metrics, how to compute them, and the classic thresholds. Use for measuring, dashboarding, and reporting delivery performance. The metrics measure system outcomes, not individual performance — do not use them for personal evaluation.
## The Five Metrics
| Metric | What it measures | Formula / unit | Data source |
|--------|------------------|----------------|-------------|
| Deployment frequency (DF) | How often code reaches a production environment | Successful production deployments per day (or per week) | Deploy logs / CI-CD platform / GitOps sync records |
| Change lead time (CLT) | Time from commit to running in production | Median of (deploy finished_at commit created_at) over deployed commits; unit: hours/days | Version-control commit timestamps + deploy records |
| Change failure rate (CFR) | Share of deployments that cause degraded service | Failed or remediated deploys ÷ total deploys × 100 (%) | Deploy ↔ incident correlation (rollbacks, hotfixes, incident tickets tied to a deploy) |
| Failed deployment recovery time | Time to restore service after a failed deploy | Median time from failed deploy start to next successful deploy; unit: minutes/hours | Incident + deploy timeline |
| Deployment rework rate | Share of deployments needing rework (rollback, hotfix, forward fix) | Unplanned rework deployments ÷ total deployments × 100 (%) | Deploy records flagged as unplanned |
## Classic 2024 Thresholds (the last four-tier table)
| Tier | Deployment frequency | Change lead time | Change failure rate | Failed deployment recovery time |
|------|----------------------|------------------|---------------------|-------------------------------|
| Elite | On-demand (multiple deploys/day) | Less than one day | 5% | Less than one hour |
| High | Daily to weekly | One day to one week | 20% | Less than one day |
| Medium | Weekly to monthly | One week to one month | 10% | Less than one day |
| Low | Monthly to biannual | One to six months | 40% | One week to one month |
Note the 2024 **inversion**: High shows a higher change failure rate (20%) than Medium (10%) — clusters are descriptive groupings, not a monotonic scorecard.
> **2025 change caveat —** the DORA team **retired the Elite/High/Medium/Low tiers entirely** in the 2025 report (renamed "State of AI-assisted Software Development"), replacing them with seven qualitative archetypes built on eight measures. 2025 publishes metric *distributions*, not tiers. **Deployment rework rate** was added in 2024 as the fifth metric, not in 2025. Do not hard-code the 2024 threshold table into dashboards; treat it as a historical reference point anchored to the 2024 report.
## Top Pitfalls
- **PRs ≠ deploys.** Count deployments of code to production, not merged pull requests or commits.
- **Mean vs. median.** Use the median for lead time and recovery time — the mean is skewed by rare long outliers.
- **Repo vs. service.** Measure per deployable service, not per repository (a monorepo may contain many services).
- **Ignoring rollbacks.** A rolled-back deploy is a failure — excluding it inflates both DF and CFR.
- **Time-source mismatch.** Commit and deploy timestamps must be comparable (UTC, NTP-synced) or lead time is meaningless.
- **Manual counting.** Spreadsheets drift; derive the metrics from pipelines and GitOps records automatically.
- **Gaming the metric.** Raising DF without improving CFR or lead time just amplifies bad change.
## Sources and Further Reading
- DORA — research and metric definitions: https://dora.dev/
- Accelerate (Forsgren, Humble, Kim, 2018): https://itrevolution.com/product/accelerate/
- DORA metrics measurement guidance: https://dora.dev/research/measurement/
- Google Cloud DORA blog (2025 tier retirement): https://cloud.google.com/blog/products/devops-sre