Trascrizione Problemi comuni: mini-cascate all'interno di Agile
Un modello disfunzionale che spesso sabota i vantaggi dell'agilità è la comparsa di "mini-cascate" all'interno di un framework apparentemente agile (come Scrum o Kanban).
Ciò si verifica quando, invece di fornire valore funzionale in modo incrementale e verticale (attraverso tutti i livelli tecnici), il lavoro per una singola funzionalità viene suddiviso orizzontalmente in fasi tecniche (progettazione, API, backend, frontend, test) e ogni fase viene completata in modo sequenziale, spesso coprendo più iterazioni o sprint.
Sebbene il team possa svolgere cerimonie agili, questo approccio sequenziale reintroduce la rigidità, i ritardi nel feedback e i rischi inerenti al modello a cascata, solo su scala minore e ripetitiva.
Identificare e correggere questo modello è fondamentale per ottenere una vera agilità.
Identificare il modello (consegne lente per fasi sequenziali)
Il modello mini-cascata si manifesta quando una caratteristica, invece di essere suddivisa in storie utente funzionali più piccole, viene scomposta in livelli tecnici o fasi che vengono eseguiti uno dopo l'altro.
Ad esempio, per aggiungere un semplice widget:
- Iterazione 1: Il designer UX crea il design.
- Iterazione 2: Il team di backend sviluppa l'API necessaria.
- Iterazione 3: Il team frontend costruisce l'interfaccia utente.
- Iterazione 4: Il team QA esegue i test.
- Iterazione 5: Infine, la funzionalità viene rilasciata al cliente.
Anche se si utilizzano gli sprint, il valore reale per l'utente non viene consegnato fino alla fine dell'intero processo, che può richiedere molte settimane.
È caratterizzato da passaggi tra specialisti e dalla consegna tardiva della funzionalità completa.
Conseguenze (ritardi, sprechi, mancanza di feedback tempestivo)
I mini-waterfall hanno conseguenze negative significative, annullando molti dei vantaggi dell'agilità:
Ritardo nella consegna del valore: il valore reale per il cliente viene ritardato fino al completamento di tutte le fasi sequenziali (ad esempio, 5 settimane nell'esempio precedente).
Mancanza di feedback tempestivo: il feedback sulla funzionalità completa viene ottenuto solo in una fase molto avanzata del processo.
Se le ipotesi iniziali erano errate o al cliente non piace la funzionalità, tutto lo sforzo investito nelle fasi precedenti può essere sprecato.
Rischio maggiore: i problemi di integrazione o i malintesi tra le fasi vengono scoperti solo alla fine, rendendo la loro correzione più costosa e complessa.
Inefficienza: genera colli di bottiglia e tempi di attesa tra le diverse fasi o specialisti.
Accumulo di lavoro in corso (WIP): più caratteristiche possono trovarsi contemporaneamente in fasi diverse della mini-cascata, aumentando il WIP complessivo e rallentando ulteriormente la consegna di qualsiasi valore.
Soluzioni (limitare il WIP, team interfunzionali, divisione verticale, prototipazione/MVP)
Per rompere lo schema delle mini-cascate, è possibile applicare diverse strategie agili fondamentali:
Team multifunzionali (cross-funzionali): promuovere team in cui i membri possiedono competenze diverse (o sono disposti ad acquisirle) per poter affrontare tutti i livelli di una user story in modo collaborativo, riducendo i passaggi di consegne.
Dividere il lavoro verticalmente: invece di dividere per livelli tecnici (orizzontale), scomporre le caratteristiche in storie utente piccole e funzionali che attraversano tutti i livelli necessari (verticale). Ogni storia fornisce un incremento di valore utilizzabile.
Limitare il lavoro in corso (WIP): stabilire limiti WIP espliciti per evitare che il
problemi comuni mini cascate allinterno di agile