Usare il framework di Scrum con le pratiche ingegneristiche di XP—l'ibrido comune.
Scrum fornisce struttura organizzativa. XP fornisce pratiche ingegneristiche. Insieme, affrontano lacune diverse:
Scrum ti dà:
XP ti dà:
Scrum non dice nulla su come gli sviluppatori dovrebbero effettivamente programmare. XP colma questa lacuna.
La maggior parte dei "team Scrum" di successo sta in realtà facendo Scrum + pratiche ingegneristiche XP, che lo chiamino così o no.
Scrum senza pratiche ingegneristiche si degrada nel tempo—la velocity cala, i bug si accumulano, il morale soffre. Le pratiche XP prevengono questo decadimento.
Sprint = Iterazioni Lo sprint di Scrum è l'iterazione di XP. Timeboxed, focalizzato, consegna software funzionante.
Product Backlog = Piano di Rilascio La pianificazione di rilascio di XP crea il lavoro; il Product Backlog di Scrum lo organizza.
Sprint Planning = Pianificazione dell'Iterazione Stessa attività: decidere cosa costruire in questa iterazione, scomporlo in task.
Daily Scrum = Standup Giornaliero Stesso intento: sincronizzare il team, far emergere i blocchi.
Retrospettiva Sprint = Retrospettiva XP non prescrive le retrospettive in modo così rigido, ma la pratica è la stessa.
User Story Funzionano in entrambi gli approcci. Scrum non prescrive il formato; il formato story di XP funziona bene.
Sprint Review = Demo Le demo di iterazione di XP sono essenzialmente Sprint Review.
La terminologia differisce; le pratiche si allineano.
I team Scrum che adottano le pratiche XP tipicamente vedono:
Migliore qualità del codice: il TDD cattura i bug presto. Il refactoring mantiene il design pulito. L'ownership collettivo diffonde la conoscenza.
Velocity più prevedibile: quando la qualità è alta, la velocity si stabilizza. Nessun rallentamento a sorpresa dovuto alla correzione di bug.
Ritmo sostenibile: XP lo nomina e protegge esplicitamente. Scrum può diventare uno "sprint" nel senso sbagliato—sempre sotto pressione.
Collaborazione migliorata: il pair programming costruisce relazioni. L'ownership collettivo abbatte i silos.
Miglioramento continuo: il principio di miglioramento di XP più le retrospettive di Scrum creano una combinazione potente.
Pattern comune: i team iniziano con Scrum perché è organizzativo. Aggiungono pratiche XP man mano che maturano. La combinazione è più potente di ciascuno da solo.
Un team usa sprint di due settimane (Scrum), TDD e pair programming (XP), ed esegue retrospettive per migliorare continuamente. Il Product Owner stabilisce le priorità; gli sviluppatori possiedono come viene fatto il lavoro. La qualità è alta; la consegna è prevedibile.
Un team ha sprint, standup e un Product Owner. Ma non testano efficacemente, non fanno mai refactoring e la qualità del codice declina. Ogni sprint sembra più difficile del precedente. 'Agile non funziona.'
Sebbene XP e Scrum funzionino bene insieme, esistono alcune tensioni:
Scrum Master vs. Auto-Organizzazione di XP XP presume che il team si auto-organizzi profondamente. Scrum aggiunge un ruolo (Scrum Master) per facilitare. Questi possono coesistere, ma se lo Scrum Master diventa una struttura di comando, l'auto-organizzazione di XP soffre.
Impegno Sprint vs. Flessibilità di XP Scrum enfatizza l'impegno dello sprint. XP enfatizza il rispondere al cambiamento. Se l'impegno diventa rigido, l'adattabilità di XP si perde.
Definition of Done vs. Qualità Continua La "Definition of Done" di Scrum può diventare una checklist. Le pratiche di qualità di XP sono continue. Assicurati che la DoD rifletta la qualità XP, non solo "i test passano."
Velocity come Metrica Scrum spesso traccia la velocity. XP avverte contro la velocity come obiettivo (viene manipolata). Usa la velocity per la pianificazione, non per la misurazione delle prestazioni.
Queste tensioni sono gestibili. La chiave è mantenere vivi i principi di XP mentre si usa la struttura di Scrum.
Rischio Cargo Cult
Alcuni team 'fanno Scrum' (le cerimonie) senza adottare le pratiche XP. Hanno sprint ma non TDD, standup ma non pairing. Questa è forma senza sostanza—e non fornisce i benefici agile.
Per combinare Scrum e XP efficacemente:
Usa la struttura di Scrum:
Aggiungi le pratiche di XP:
Mantieni i principi di XP:
Molti team scoprono questa combinazione naturalmente. Iniziano con Scrum, si rendono conto di aver bisogno di pratiche ingegneristiche e aggiungono XP. Il risultato è spesso chiamato "agile fatto bene."