Home
DORA-3: Tasso di Fallimento delle Modifiche
Descrizione
Il tasso di fallimento delle modifiche (Change Failure Rate) è la percentuale di deployment che causano un fallimento in produzione. Misura la stabilità e la qualità dei rilasci.
Guida
Perché è importante
Il tasso di fallimento bilanciato con il tempo di ripristino indica:
- Qualità del processo: Testing, code review, e pratiche di qualità
- Gestione del rischio: Capacità di rilasciare in modo sicuro
- Maturità del team: Team maturi hanno tassi bassi ma non necessariamente zero
Filosofia importante
Alcuni fallimenti sono attesi e accettabili. L’obiettivo non è:
- ❌ Zero fallimenti (porta a over-engineering e rilasci lenti)
- ✅ Basso tasso di fallimento + rapido recupero
I team DOVREBBERO (SHOULD) concentrarsi sul miglioramento del tempo di recupero piuttosto che eliminare completamente i fallimenti.
Cosa conta come fallimento
Un fallimento potrebbe includere:
- Bug che colpiscono gli utenti in produzione
- Degradazione delle prestazioni
- Necessità di rollback o hotfix
- Violazioni di sicurezza
- Interruzioni del servizio
Target raccomandati
I team DOVREBBERO (SHOULD) puntare a:
- Elite: < 5%
- Alta: 5-10%
- Media: 10-20%
- Bassa: > 20%
Come migliorare
Per ridurre il tasso di fallimento:
- Migliorare i test automatizzati: Unit, integration, end-to-end
- Implementare code review rigorose: Peer review con checklist
- Usare analisi statica: Linting, type checking, security scanning
- Implementare canary deployment: Rilasciare gradualmente a un subset di utenti
- Monitorare proattivamente: Rilevare problemi prima che impattino gli utenti
- Post-mortem senza colpa: Imparare da ogni fallimento
- Feature flag: Disabilitare funzionalità problematiche senza rollback
Misurazione
| Stato |
Criteri |
| 🟢 VERDE |
Tasso di fallimento < 10% |
| 🟡 AMBRA |
Tasso di fallimento 10-20% |
| 🔴 ROSSO |
Tasso di fallimento > 20% |
Come misurare
Tracciare:
- Numero totale di deployment in produzione
- Numero di deployment che hanno causato fallimenti
- Percentuale: (fallimenti / totale deployment) × 100
- Categorizzazione dei fallimenti (bug, performance, security, etc.)
Definire cosa conta come “fallimento”:
- Rollback richiesto?
- Hotfix necessario?
- Incident ticket creato?
- Impatto utente riportato?
Riferimenti