I principi che collegano i valori alle pratiche: il 'perché' dietro il 'cosa'.
I valori ti dicono cosa è importante. Le pratiche ti dicono cosa fare. Ma come li colleghi? È qui che entrano in gioco i principi.
I principi sono il ponte. Sono più concreti dei valori ma più astratti delle pratiche. Quando devi decidere se adottare una pratica o modificarla per il tuo contesto, i principi ti guidano.
XP ha molti principi, ma ci concentreremo su quelli più importanti.
Il software è fatto da persone, per le persone.
Questo principio ci ricorda che gli sviluppatori non sono risorse intercambiabili. Le persone hanno bisogni:
Le pratiche XP dovrebbero soddisfare questi bisogni. Il pair programming soddisfa i bisogni di appartenenza e intimità. Lo sviluppo guidato dai test soddisfa i bisogni di realizzazione e sicurezza. Il ritmo sostenibile protegge la salute fisica e mentale.
Quando una pratica non ti convince, chiediti: "Sta violando i bisogni umani?"
Se le tue pratiche 'agili' stanno esaurendo le persone, non sono agili. Il ritmo sostenibile non è opzionale: è centrale in XP.
Il denaro conta. Il tempo ha valore. Le opzioni hanno valore.
XP prende sul serio l'economia:
Questo principio supporta i rilasci piccoli (consegnare valore presto), il design incrementale (non investire troppo in anticipo) e la pianificazione iterativa (rispondere a ciò che impari).
Supporta anche il ritmo sostenibile: gli sviluppatori esausti commettono errori costosi.
Ogni pratica dovrebbe beneficiare tutti i coinvolti.
Le migliori pratiche XP sono vantaggiose per tutti:
Evita pratiche che aiutano un gruppo a spese di un altro. La documentazione scritta solo per conformità, mai letta dagli sviluppatori, non rispetta il beneficio reciproco. Anche il codice scritto per essere ingegnoso piuttosto che chiaro lo viola.
Se una pratica crea risentimento, probabilmente viola il beneficio reciproco.
I pattern che funzionano a una scala spesso funzionano anche ad altre.
XP applica gli stessi pattern a scale diverse:
Quando trovi qualcosa che funziona, provalo a scale diverse. Il planning game funziona per la pianificazione del rilascio e la pianificazione dell'iterazione. I principi della revisione del codice funzionano per la revisione del design e la revisione dell'architettura.
Parti da dove sei e migliora continuamente.
XP non richiede la perfezione dal primo giorno. Richiede movimento. Inizia con ciò che puoi fare oggi e migliora da lì.
L'obiettivo non è "fare XP". L'obiettivo è migliorare. XP è una direzione, non una destinazione.
Questo principio supporta anche il fallire in sicurezza. Gli esperimenti che non funzionano sono opportunità di apprendimento, non fallimenti.
Consegna valore continuamente, non in grandi lotti.
Questo principio allinea XP con il pensiero lean e Kanban. I grandi lotti nascondono i problemi. I piccoli lotti li fanno emergere rapidamente.
Il flusso riduce il lavoro in corso, che riduce il cambio di contesto, che migliora la concentrazione e la qualità. Inoltre, fornisce valore ai clienti prima e feedback più velocemente.
Se non rilasci almeno una volta al mese, chiediti perché. Gli ostacoli che scopri indicheranno problemi reali.
La qualità non è negoziabile.
Sembra ovvio, ma le implicazioni sono profonde. XP dice che puoi scambiare ambito o tempi, ma mai la qualità.
Questo significa:
Perché? Perché la qualità è il fondamento della velocità. La scarsa qualità crea bug che ti rallentano. La scarsa qualità crea codice difficile da modificare. La scarsa qualità crea sistemi costosi da mantenere.
La qualità è il modo più veloce per andare veloci.
Fai il passo più piccolo che faccia progredire.
I grandi cambiamenti sono rischiosi. I piccoli cambiamenti sono sicuri. XP preferisce sempre i piccoli passi:
I piccoli passi non significano progresso lento. Mille piccoli passi possono coprire più terreno di dieci grandi salti—e con meno possibilità di cadere.
Quando sei bloccato, chiediti: "Qual è la cosa più piccola che posso fare adesso che faccia progredire?"