"매 software delivery performance 의 매 4 numbers": deployment frequency, lead time for changes, change failure rate, mean time to restore (MTTR). 매 Forsgren/Humble/Kim "Accelerate" (2018) + 매 yearly DORA report 가 매 source-of-truth. 2026 의 매 5번째 metric (reliability) 의 official.
매 핵심
매 the 4 (now 5)
Deployment Frequency (DF) — production deploys per period. Elite: on-demand (multiple/day).
Lead Time for Changes (LT) — commit → production. Elite: < 1 day.
High — weekly–monthly, 1 day–1 week, 0–10%, < 1 day.
Medium — monthly–6m, 1 week–1 month, 0–15%, < 1 week.
Low — < 6m, > 6m, > 64%, > 1 week.
매 accelerators (capabilities)
Trunk-based development.
Continuous integration.
Test automation.
Loosely coupled architecture.
Generative culture (Westrum).
Database change automation.
Empowered teams.
💻 패턴
Lead time SQL (GitHub + production deploy events)
-- 매 first commit in PR → production deploy 의 measure
WITHdeploysAS(SELECTservice,deploy_id,deployed_at,shaFROMdeploymentsWHEREenvironment='production'),commitsAS(SELECTpr.merge_commit_shaASsha,MIN(c.committed_at)ASfirst_commit_atFROMpull_requestsprJOINcommitscONc.pr_id=pr.idGROUPBYpr.merge_commit_sha)SELECTd.service,PERCENTILE_CONT(0.5)WITHINGROUP(ORDERBYEXTRACT(EPOCHFROMd.deployed_at-c.first_commit_at))ASlt_p50_seconds,PERCENTILE_CONT(0.95)WITHINGROUP(ORDERBYEXTRACT(EPOCHFROMd.deployed_at-c.first_commit_at))ASlt_p95_secondsFROMdeploysdJOINcommitscUSING(sha)WHEREd.deployed_at>NOW()-INTERVAL'90 days'GROUPBYd.service;
asyncfunctionchangeFailureRate(service: string,days=30){constdeploys=awaitdb.deployments.count({service,since: daysAgo(days)});constfailedDeploys=awaitdb.deployments.count({service,since: daysAgo(days),correlatedIncidentWithin:'4h',// 매 incident 가 deploy 후 4h 내 의 fail count
});returnfailedDeploys/deploys;}
-- 매 https://github.com/dora-team/fourkeys 의 reference
SELECTCOUNTIF(event_type='deployment')ASdeploys,AVG(TIMESTAMP_DIFF(deploy_time,first_commit_time,MINUTE))ASlt_minutes,COUNTIF(failed)/NULLIF(COUNTIF(event_type='deployment'),0)AScfr,AVG(TIMESTAMP_DIFF(resolved_time,incident_time,MINUTE))ASmttr_minutesFROM`project.four_keys.events_raw`WHEREdeploy_time>TIMESTAMP_SUB(CURRENT_TIMESTAMP(),INTERVAL30DAY);
Grafana dashboard panel (PromQL-style)
# Deployment frequency (deploys per day per service)sumby(service)(rate(deployments_total{env="production"}[7d]))*86400# Change failure ratesumby(service)(deployments_failed_total[30d])/sumby(service)(deployments_total[30d])# Lead time p50histogram_quantile(0.5,sumby(le,service)(rate(deploy_lead_time_seconds_bucket[30d])))
Reliability (SLO-aligned 5th metric)
// 매 service 의 SLO 의 meeting-or-exceeding 의 % of measurement windows
constreliability=awaitprom.query(`
(sum_over_time(slo_compliance{service="$svc"}[30d]) /
count_over_time(slo_compliance{service="$svc"}[30d])) * 100
`);
Anti-gaming guardrails
// 매 metric 의 isolated 의 game 가 가능 — pair 의 always 의 read
constelite=(df>1/day)&&(lt<1*day)&&(cfr<0.05)&&(mttr<1*hour);// 매 elite 가 X 만 high cfr 의 hide 의 X.
매 결정 기준
상황
Approach
Greenfield team
Adopt Four Keys (open source) on BigQuery
GitHub-centric
dora-team/fourkeys + Cloud Run pipelines
Multi-tool
LinearB / Sleuth / Faros AI / Jellyfish (SaaS)
Self-host
Apache DevLake (LF AI)
Enterprise governance
Faros + custom dashboards
기본값: Apache DevLake (open source) or Four Keys reference impl; weekly review with team; show all 4 (5) together — never single metric.
언제: 매 metric definition explanation, 매 SQL/PromQL query authoring, 매 trend interpretation, 매 retrospective talking points generation.
언제 X: 매 individual performance evaluation (DORA 의 team-level metric — never individual). 매 metric tuning to look good (gaming).
❌ 안티패턴
Single metric optimization: 매 deploy frequency 의 increase 만 → CFR explodes. 매 4 의 always 의 together 보기.
Individual performance ranking: 매 explicitly anti-pattern in DORA research. 매 team-level만.
Vanity deploys: 매 empty commits / config-only changes 의 count → meaningless.
MTTR from "ticket close": 매 customer-impact end 의 measure, 매 ticket admin 가 X.
Comparing teams in different domains: 매 fintech vs internal tool 의 baselines 가 different.
No deployment instrumentation: 매 manual spreadsheet 가 X. 매 auto-emit deploy event.
🧪 검증 / 중복
Verified (Forsgren/Humble/Kim "Accelerate" 2018, Google DORA 2024 State of DevOps report, dora-team/fourkeys, Apache DevLake).
신뢰도 A.
🕓 Changelog
날짜
변경
2026-05-08
Phase 1
2026-05-10
Manual cleanup — DORA 4(5) metrics, queries, anti-patterns