SCRUM e SPRINT: cosa sono e perché sono essenziali nel software development
Con l’espressione SCRUM si inquadra una metodologia agile di natura incrementale e iterativa. La sua finalità principale è lo sviluppo di progetti e applicazioni. A livello tecnico si tratta di un framework, ossia di una modalità strutturata che può essere utilizzata come punto di partenza per costruire un sistema.
Il suo sviluppo è caratterizzato da una struttura basata su cicli, i cosiddetti SPRINT. Questi ultimi, possono durare dalle due alle quattro settimane. Una volta terminati gli SPRINT, il team di sviluppo è pronto a rilasciare funzionalità che possono essere testate immediatamente.
Altra peculiarità importante dei cicli è il loro essere timeboxed, ossia con una durata fissa nel tempo. Ciò significa che non è possibile estenderli e che terminano anche se lo sviluppatore non ha concluso il suo lavoro.
Lo SCRUM Team
Quando si parla di metodologia SCRUM, è necessario fare cenno al gruppo di lavoro e ricordare che è sia cross funzionale, sia auto organizzato. La principale differenza rispetto alle modalità di lavoro tradizionali riguarda la mancanza della figura del project manager.
Si ragiona infatti considerando le potenzialità di ogni singolo membro del team e muovendosi in ottica di condivisione delle responsabilità. Il vantaggio concreto di questo approccio riguarda la rimozione di quei colli di bottiglia che si creano quando spetta a una sola persona il compito di prendere le decisioni finali su un progetto e di visionarne i progressi.
Nei team SCRUM la leadership è quindi condivisa. Ciò permette, una volta individuato il problema, di mettere assieme i professionisti giusti per arrivare a una risoluzione. In poche parole, se qualcuno nel team è in grado di individuare una problematica in anticipo, è in grado di assumere un ruolo di leadership nel processo di risoluzione.
All’interno dei singoli team, è comunque possibile individuare determinati ruoli. Ecco l’elenco completo.
- l SCRUM master, ossia il responsabile del processo. Il suo compito è quello di garantire che la metodologia venga facilmente compresa da tutti. Deve inoltre accertarsi che il team proceda in maniera coerente allo sviluppo del progetto.
- l Product owner, ossia il professionista che conosce i requisiti del prodotto e che ha il compito di portare avanti gli interessi di tutti gli stakeholder. Spetta a lui l’onere di massimizzare il più possibile il lavoro del team di sviluppo.
I cicli di sviluppo
Come già ricordato, i cicli di sviluppo della metodologia SCRUM sono noti come SPRINT. Nell’ambito di ciascuno di essi, il team di lavoro seleziona i task scegliendo da un elenco di attività con priorità.
Fondamentale è ricordare che gli aspetti pianificati all’inizio del processo di iterazione possono essere considerati alla medesima stregua di un contratto. Alla luce di questo aspetto, non è possibile modificarli in corso d’opera.
Una volta iniziato il lavoro, il team di sviluppatori si confronta quotidianamente nel corso del Daily Stand-Up, conosciuto anche come Daily Scrum Meeting. Si tratta di un momento molto importante per concretizzare una condivisione di obiettivi e risultati. In linea di massima, i Daily vengono portati avanti per circa 15 minuti.
Tornando alla gestione dei cicli, si ricorda che al termine dello SPRINT il team rilascia quanto del lavoro è stato portato a conclusione (done). Il suddetto output deve rispettare dei requisiti specifici (definition of done). Prendendo come esempio una classica applicazione software, i requisiti in questione possono comprendere una funzionalità integrata, testata e pronta per essere rilasciata.
La metodologia SCRUM prevede che alla fine di ogni ciclo il team si riunisca per la cosiddetta SPRINT review. Il principale scopo è quello di valutare il raggiungimento dell’obiettivo prefissato. Si procede anche a mostrare al committente tutto il lavoro concluso fino a quello SPRINT. Degna di nota è infine la SPRINT retrospective, durante la quale si valutano i miglioramenti da applicare al ciclo successivo.
