Scrum
Lo scrum è il pacchetto di mischia che si forma all’inizio di un’azione nel gioco del rugby, dove i giocatori costituiscono un mucchio da cui sbucherà la palla dando inizio all’azione. La palla sbucherà sicuramente, ma non si sa da dove né in quale momento.
Con questa metafora ci si riferisce al metodo di progettazione agile più diffuso, particolarmente indicato per progetti complessi ed innovativi. Il processo di gestione di un progetto si divide in blocchi detti sprint, che hanno lo scopo di coordinare il processo di sviluppo del prodotto con le esigenze del committente/cliente. Si va avanti con un processo iterativo in cui gli sprint durano da due a quattro settimane.
Lo sprint parte dallo sprint backlog, il piano di lavoro che definisce l’obiettivo (sprint goal), il product backlog, ossia la lista di ciò che serve per migliorare il prodotto, e il piano d’azione per ottenere i miglioramenti. Alla fine del ciclo deve uscire la nuova funzionalità che concretizza il miglioramento del prodotto. Ogni giorno si fanno riunioni di 15’ in cui il team dice che cosa ha fatto nella riunione precedente, che ostacoli ha incontrato, che farà prima della prossima riunione che avverrà dopo 24 ore.
I cicli giornalieri assicurano una continua flessibilità del progetto, e garantiscono il risultato finale dello sprint. Concepire il progetto come una successione di cicli limitati favorisce il controllo empirico dei processi, dove la conoscenza deriva dall’esperienza e le decisioni si basano su ciò che si conosce. Il processo iterativo con un approccio incrementale ottimizza, passo dopo passo (e sprint dopo sprint), la prevedibilità ed il controllo del rischio. Il metodo si basa sui principi della trasparenza, dell’ispezione e dell’adattamento.
Durante il ciclo lo scrum team non può essere disturbato da nessuno: product owner e stakeholder possono partecipare solo alle riunioni, ma poi devono lasciar lavorare in pace senza interferenze. Lo scrum master è responsabile di ciò che esce fuori alla fine dello sprint, ma non deve rendere conto di come sia stato fatto. Ciò richiede una notevole capacità di delega e fiducia da parte del management.
La successione degli sprint può avvenire con cicli separati l’uno dall’altro, leggermente soprapposti (prima di finire uno sprint si pianifica e si inizia il successivo) o sovrapposti, quando si devono portare avanti più progetti nello stesso periodo di tempo.
Un progetto scrum è fatto di ruoli, artefatti ed eventi.
I ruoli delle persone all’interno del progetto sono tre e lavorano in stretta connessione con un continuo e veloce flusso di informazioni.
- Lo scrum master è il responsabile e garante del processo. Facilita il lavoro del team proteggendolo da disturbi esterni e aspetta i risultati senza intervenire all’interno del team.
- Il product owner conosce tutti i requisiti del prodotto e difende gli interessi di tutti gli stakeholder facendo in modo che il team rispetti i requisiti di prodotto e le esigenze del business e dei clienti.
- Il team di sviluppo o scrum team è un gruppo costituito da cinque a nove professionisti che ricoprono varie funzioni e sanno organizzarsi da soli per provvedere allo sviluppo del prodotto e al collaudo delle funzionalità, secondo priorità da completare per portare a termine quel determinato sprint.
Gli artefatti sono tre, e servono a massimizzare la trasparenza delle informazioni chiave.
- Il product backlog, gestito dal product owner, descrive i requisiti necessari per la realizzazione del progetto, dalle caratteristiche alle priorità (cose da fare nel progetto).
- Lo sprint backlog, a cura del team di sviluppo, definisce tutti i task da completare nei singoli sprint (cose da fare nello sprint).
- L’incremento è la somma di tutti gli elementi del product backlog completati durante uno sprint e durante gli sprint precedenti (cose fatte finora).
Sono quattro gli eventi che servono a sincronizzare le attività e ridurre al minimo la necessità di incontri non definiti.
- Nella riunione di sprint planning il product owner descrive le cose da fare nel nuovo sprint.
- Il daily scrum è un confronto giornaliero di un quarto d’ora in cui lo scrum master riassume le cose fatte nel giorno precedente e presenta le cose da fare nelle prossime 24 ore.
- La sprint review, alla fine di ogni sprint, valuta il raggiungimento di obiettivi e risultati dello sprint, mostrandoli al cliente.
- Con la sprint retrospective tutto il team di progetto valuta che cosa continuare a fare o smettere di fare, e che cosa migliorare nello sprint successivo.
Il metodo è nato in ambiente informatico ma si adatta a qualsiasi altro settore produttivo, perché si basa su individui e interazioni più che su processi e strumenti. Con esso si produce valore per il cliente fin dai primi passi del progetto, con responsabilità collettiva e comunicazioni trasparenti.
Il project management tradizionale è caratterizzato da una pianificazione anticipata del progetto in tutti i suoi dettagli, con particolare attenzione a fissare ambito, costi e tempi, e a gestirne il rispetto. Lo scrum incoraggia decisioni da prendere ogni volta sui dati, prese solo per consegnare prodotti che soddisfino i requisiti del cliente. Una caratteristica importante dello scrum è l’auto-organizzazione, che permette a coloro che stanno concretamente portando avanti il lavoro di stimare le attività che devono eseguire e di assumersene la paternità, rendendo conto solo di ciò che hanno fatto e non di come lo stanno facendo.