Lo Scrum: come rendere “agile” il processo di sviluppo

In Code Architects sviluppiamo software usando metodologie Agili. Una delle più utilizzate è lo Scrum, che secondo noi si adatta meglio alla gestione di progetti innovativi, permettendo di avere il controllo dello stato di avanzamento di un progetto e minimizzando i rischi.
Lo Scrum, che prende il nome della mischia rugbystica in quanto è uno sforzo di gruppo verso un obiettivo comune, prevede la divisione del progetto di sviluppo (descritto da una lista di requisiti, detta product backlog, espressi in forma di user story) in una serie di blocchi di lavoro di breve durata, solitamente dalle due alle quattro settimane. Questi periodi di lavoro, gli sprint, hanno come scopo la realizzazione di una porzione funzionante del prodotto, ossia di un sottoinsieme degli elementi del product backlog, grazie all’apporto di tutto il team di sviluppatori, coordinato dallo Scrum Master e tramite un continuo dialogo col committente.
Gli eventi fondamentali di uno sprint sono quattro: lo sprint planning meeting, prima di ogni nuovo sprint, il daily scrum, che ha cadenza cadenza quotidiana, la sprint review (o retrospettiva), dopo ogni sprint, e la sprint demo.
Nello sprint planning il team pianifica il lavoro da svolgere nel corso dello sprint, identificandolo in un sottoinsieme delle user story del product backlog, detto sprint backlog. Le user story devono essere comprensibili anche ai non-tecnici, fornendo una descrizione precisa delle feature che implementano, esplicitando un soggetto, una caratteristica ed il relativo valore aggiunto. È proprio grazie alle user story (alle quali viene attribuito un punteggio che ne indica la difficoltà) che è possibile raccogliere i feedback. Le user story, annotate su dei post it, vengono poi applicate generalmente su una board (come quella della foto qui di seguito) divisa in colonne che descrivono lo stato di avanzamento del lavoro. Le colonne sono to do, doing, e done, ma possono esserne aggiunte altre.Scrum board

Ogni giorno nel daily scrum è previsto lo standup meeting, un breve incontro fissato sempre alla stessa ora durante il quale il team si riunisce e analizza brevemente lo stato dell’arte rispondendo a tre domande: “cosa ho fatto ieri?”, “cosa farò oggi?” e “quali problemi ho incontrato?”. Dopo di che i componenti del team sottraggono dei punti alle user story in base a ciò che è stato effettivamente realizzato e si aggiorna di conseguenza il burndown chart (un grafico che, avendo sulle ascisse i giorni e sulle ordinate i punti totali dello sprint, permette di capire a colpo d’occhio come sta procedendo il lavoro). Giorno dopo giorno la linea che unisce il primo giorno dello sprint con lo zero, ossia con la conclusione stimata del lavoro, assume una pendenza direttamente proporzionale alla velocità del lavoro stesso. L’obiettivo dello standup meeting è quello di far emergere rapidamente i problemi che saranno poi esaminati in separata sede.
Al termine di ogni sprint è prevista una review che, dopo aver analizzato le necessità e le richieste del committente, serve a capire cosa è andato bene e cosa c’è da migliorare nel lavoro svolto. Nella sprint demo, infine, si illustra il lavoro svolto ad un team allargato, ottenendo altri importanti feedback.
In sintesi, lo Scrum assegna più responsabilità a tutti i componenti del team e permette allo stesso tempo una collaborazione più proficua con il committente, che è in grado di poter esprimere i propri feedback su rilasci continui del prodotto. In questo modo si intercettano immediatamente errori o equivoci sulle feature, già durante il processo di sviluppo, permettendo perciò misure correttive rapide ed efficaci. Allo stesso modo, con lo Scrum è molto più facile apportare modifiche in corsa alle funzionalità del progetto, consentendo di adattarsi rapidamente alle nuove esigenze di un mercato in continua evoluzione.

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Fornisci il tuo contributo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *