DORA & SPACE — Mühendislik Performansı Metrikleri#
"Ölçmediğin şeyi iyileştiremezsin; ama yanlış ölçtüğün şey ekibini boğar."
İki çerçeve, biri delivery performance odaklı (DORA), diğeri bütünsel (SPACE). Birlikte kullanılır.
📊 DORA — 4 Anahtar Metrik#
Google'ın "Accelerate State of DevOps Report"undan. Delivery performance ölçer — yani ekip nasıl kod gönderiyor.
1. Deployment Frequency#
Production'a ne sıklıkta deploy?
| Seviye | Frekans |
|---|---|
| Elite | Gün içinde N kez (on-demand) |
| High | Günde-haftada |
| Medium | Haftada-ayda |
| Low | Ayda-yılda |
Nasıl ölçülür:
2. Lead Time for Changes#
İlk commit → production'a kaç süre?
| Seviye | Süre |
|---|---|
| Elite | < 1 saat |
| High | 1 gün – 1 hafta |
| Medium | 1 hafta – 1 ay |
| Low | 1 – 6 ay |
Nasıl ölçülür:
p50, p95 takibi (averajlar yalan söyler).
3. Change Failure Rate (CFR)#
Deploy'ların kaçı rollback veya hotfix gerektirdi?
| Seviye | Oran |
|---|---|
| Elite | %0-15 |
| High | %16-30 |
| Medium | %16-30 |
| Low | %46-60 |
Nasıl ölçülür:
"Failed deploy" tanımı: - Rollback gerektiren - Hotfix PR mergelenenan saatler içinde - Customer-facing incident sebep olan
4. Mean Time to Restore (MTTR)#
Incident başladıktan sonra ne kadar sürede çözülüyor?
| Seviye | Süre |
|---|---|
| Elite | < 1 saat |
| High | < 1 gün |
| Medium | 1 gün – 1 hafta |
| Low | 1 hafta – 1 ay |
Nasıl ölçülür:
p50 + p95.
🎯 DORA seviyeleri arası geçiş — pratik#
Low → Medium#
Ana darboğazlar: - Manuel deploy, manuel test - Branch'ler aylarca yaşıyor - "Deploy günü" ekstra sıkıntı
Çözümler: - Otomatize CI/CD (basic) - Trunk-based development geçişi - Otomatize unit + integration test - Staging environment
Medium → High#
Ana darboğazlar: - Manuel approval bottleneck'leri - Test suite yavaş - Rollback manuel ve uzun
Çözümler: - Feature flag (deploy ≠ release) - Otomatik deploy (dev → staging) - Hızlı CI (paralel + cache) - Otomatik rollback
High → Elite#
Ana darboğazlar: - Production deploy hâlâ "event" - E2E test 30+ dk - Incident response manuel
Çözümler: - Continuous Deployment to prod (her commit) - Progressive delivery (canary, feature flag) - Otomatik incident response (runbook automation) - SLO-driven deploy (error budget bitince freeze)
🌟 SPACE Çerçevesi — Bütünsel Productivity#
DORA "delivery" odaklı; SPACE bütünsel:
| Harf | Açılım | Örnek metrik |
|---|---|---|
| S | atisfaction & well-being | Survey: "İşinden ne kadar memnunsun?", burnout index |
| P | erformance | Defect rate, customer satisfaction (NPS), eval skor |
| A | ctivity | Commit, PR, deploy sayısı |
| C | ommunication & collaboration | Code review süresi, doc PR, mentoring saat |
| E | fficiency & flow | Kesintisiz iş süresi, context switch, focus zaman |
Niye SPACE?#
DORA tek başına eksik: - Activity yüksek = produktivite değil ("daha çok commit" → küçük anlamsız commit'ler) - Lead time kısa = burnout sinyali olabilir - CFR düşük = ekip risk almıyor (no innovation)
SPACE'in 5 boyutuyla dengeli bir resim alırsın.
Önemli prensip: tek metrikle değerlendirme#
🚫 Yapma: "Bu ekip haftada sadece 5 commit attı, kötü performans"
✅ Yap: "Activity düştü; survey'de 'doc engelli' yüzdesi arttı, review sürelerini ölçelim — flow problemi olabilir"
Tek metrik → manipüle edilebilir; çoklu metrikler gerçek pattern'i gösterir.
📈 Ekip seviyesinde nasıl track ederim?#
Tooling#
- DORA metric otomatik: GitHub'da
dora-team/four-keys(Google), Sleuth, LinearB, Faros - SPACE survey: quarterly 5-min anket; Culture Amp, Lattice, custom Google Form
Dashboard#
┌────────────── Engineering Performance ──────────────┐
│ │
│ Q1 2026 prev Q current Q trend │
│ │
│ Deployment frequency 8/day 12/day ↑ │
│ Lead time (p50) 4h 2h ↑ │
│ CFR 14% 11% ↑ │
│ MTTR (p50) 45min 38min ↑ │
│ │
│ ─── SPACE survey (n=42) ─── │
│ Satisfaction 7.8/10 7.2/10 ↓ ⚠️ │
│ Communication score 8.1/10 8.0/10 ─ │
│ Focus time/day 4.2h 3.5h ↓ ⚠️ │
│ │
└──────────────────────────────────────────────────────┘
⚠️ Anti-pattern: sadece DORA'ya bakıp "her şey iyi" demek. Burada satisfaction ve focus düşüş trendinde — DORA'nın iyileşmesi sürdürülebilir değil olabilir.
🚫 DORA/SPACE anti-pattern'leri#
"Vanity metrics"#
- ✅ "Deploy frequency 12/day" — anlamlı
- ❌ "Total commits 5,234 this quarter" — anlamsız
"Gaming the metrics"#
- Birim test ekleyerek deploy frequency yapay artırma
- Hot-fix'leri "incident" saymama → CFR yapay düşük
"Comparison across teams"#
- ❌ "Payments team günde 8 deploy, growth team 2 deploy — payments daha iyi"
- ✅ Farklı bağlamlar (regulatory, scale) — her ekip kendi trend'iyle
"Manager-only dashboard"#
- Ekip görmüyorsa veriye sahip değildir
- Sadece üst yönetim görüyorsa: "üzerimizde gözetim" hissi
"Quarterly review only"#
- Ay başında bakılıp ay sonu unutulan dashboard değer üretmiyor
- Haftalık trend → küçük düzeltmeler
🎓 İlk DORA dashboard'unu kur (1 hafta)#
Gün 1-2: GitHub Actions / GitLab CI'dan deploy event'lerini collect et
(her successful deploy'da bir webhook → BigQuery / DataDog)
Gün 3: Lead time için: PR'ın ilk commit timestamp'ı + deploy timestamp
Gün 4: Incident kaynağı belirle (PagerDuty webhook → DB)
CFR için: deploy → incident correlation
Gün 5: Grafana dashboard 4 panel
- Deploy frequency (per day)
- Lead time p50/p95 (rolling 7d)
- CFR (rolling 30d)
- MTTR p50/p95
Gün 6: Ekip ile review — anlamlı mı? Eksik var mı?
Gün 7: Dashboard'u team channel'da haftalık otomatik post yap
📚 Devamı#
- DORA — State of DevOps Report (yıllık)
- SPACE Framework paper — Microsoft Research
- Accelerate — Forsgren, Humble, Kim (DORA'nın bilimsel temeli)
- Four Keys project (Google) — açık kaynak DORA dashboard