La metodologia Scrum accelera il processo di sviluppo software, grazie a un approccio iterativo e incrementale, che vede la stretta collaborazione tra sviluppatori e stakeholders.
Il business digitalizzato richiede all’IT una capacità di risposta senza precedenti in termini di velocità ed efficacia. L’adozione di metodologie Agile come Scrum permette di accelerare le attività di progettazione applicativa, migliorando contestualmente la qualità del software. Ma di che cosa si tratta esattamente e quali benefici porta alle aziende?
Metodologia Scrum, che cos’è e com’è nata
Secondo la concezione degli ideatori Ken Schwaber e Jeff Sutherland, Scrum è un framework che permette di gestire il ciclo di sviluppo del software in modo iterativo e incrementale, sfruttando un insieme di tecniche e processi.
Il metodo è stato ufficialmente presentato al pubblico nel 1995, ma trae origine dall’approccio cosiddetto “olistico” o “rugby”, già sperimentato nell’industria automobilistica e dai produttori di stampanti per la realizzazione di manufatti commerciali. L’intero processo viene eseguito da un gruppo interdisciplinare di risorse, che lavorano in più fasi a un progetto collettivo, passandosi continuamente la palla e agendo come un’unica entità. Il termine “Scrum”, infatti, è mutuato dal rugby e indica la “mischia” come metafora della squadra di developers che avanza sinergicamente verso la meta, trascinando gli altri attori coinvolti.
Come funziona la logica Scrum
Come anticipato, il framework prescrive un approccio allo sviluppo iterativo e incrementale, ovvero: il risultato viene raggiunto attraverso la ripetizione continua di una sequenza di operazioni, che permettono di avvicinarsi all’obiettivo passo dopo passo. In sostanza, si procede per gradi e attraverso una serie di controlli empirici (basati sulla certezza derivante dall’esperienza pratica). Ogni modifica al software viene quindi testata prima di salire allo step successivo, così da individuare subito eventuali failure e cambiare rotta rapidamente in caso di errore.
Da qui derivano i principi fondamentali che regolano la metodologia Scrum:
- trasparenza (l’andamento del progetto deve essere chiaro e verificabile dai responsabili, quindi è opportuno definire una terminologia e delle metriche di valutazione comuni);
- ispezione (ogni progresso deve essere monitorato e controllato perché sia in linea con gli obiettivi predefiniti);
- adattamento (in caso di difformità dai requisiti, bisogna intervenire rapidamente per aggiustare il tiro).
Sintetizzando, il framework suggerisce di dividere il processo di sviluppo applicativo in sprint, ovvero blocchi di attività molto brevi (da una a quattro settimane) e additivi (solo al termine di un ciclo si passa al successivo), intervallati da incontri frequenti tra i membri del team.
I meeting sono organizzati allo scopo di svolgere le dovute ispezioni e discutere eventuali adattamenti; si rivelano fondamentali per ricevere feedback a seguito delle prove empiriche, così da avere sempre evidenza del gap tra risultati ottenuti e attesi.
I ruoli all’interno di un progetto Scrum
Le figure coinvolte all’interno di un progetto Scrum sono diverse, dividendosi tra membri del team e ruoli esterni che a vario titolo vengono coinvolti.
Nella squadra di lavoro vera e proprio, che opera in modo totalmente autonomo all’interno del contesto aziendale, rientrano: il Product Owner (depositario degli interessi del cliente, con la responsabilità di definire i requisiti di prodotto e controllare l’allineamento agli obiettivi); il team di sviluppo (composto tipicamente da 3-9 persone con skill interdisciplinari, che si occupano dell’esecuzione del progetto); lo ScrumMaster (una sorta di facilitatore, che si preoccupa di rimuovere barriere e criticità che impediscono il conseguimento dei risultati).
Attorno al nucleo, ruotano soggetti con funzioni ausiliarie (ovvero che svolgono attività necessarie al progetto, senza avere tuttavia un ruolo formale all’interno del team) e gli stakeholders (i destinatari del prodotto, che viene realizzato proprio per soddisfare i loro interessi).
I vantaggi della metodologia Scrum
Nel contesto imprenditoriale odierno, estremamente dinamico e competitivo, la velocità di risposta alle richieste del business e del mercato rappresenta un fattore critico di successo.
- Time-to-market applicativo
La metodologia Scrum permette di accelerare il time-to-market applicativo grazie alla suddivisione del processo in sprint e alla chiarezza di obiettivi sul breve periodo. Un team altamente focalizzato su un traguardo condiviso e raggiungibile in poco tempo è certamente più motivato e produttivo. I metodi di sviluppo tradizionali a cascata, che prevedono un’unica sequenza per passare dall’ideazione allo sviluppo al collaudo alla maintenance, portano a tempi di realizzazione molto lunghi, con un rischio di errore decisamente troppo alto. Basti pensare ai danni economici derivanti da progetti che, dopo mesi di intenso lavoro e grandi investimenti, si sono rivelati infine del tutto fallimentari. Con il metodo Scrum, invece, la possibilità di verifiche periodiche riduce l’eventualità di perseguire nell’errore e ottenere un prodotto allineato ai requisiti prefissati.
- Abbassa il rischio di fallimento
La collaborazione tra i team di sviluppo e gli stakeholders è un altro fattore che limita il pericolo di fallimento: poiché ogni progresso del software viene direttamente testato, è possibile raccogliere i feedback dagli utenti interessati, identificando subito eventuali falle.
- Architettura modulare facilita i micro interventi incrementali
La metodologia Scrum, infine, si presta per tutte le moderne tecniche di sviluppo applicativo basate su microservizi, che rappresentano la tendenza più rilevante per il futuro. Con le nuove architetture, infatti, le applicazioni vengono concepite come un insieme modulare di unità funzionali indipendenti: agendo su una funzionalità, non si rischia di influenzare il comportamento dell’intera soluzione. Pertanto, è possibile agire proprio per piccoli interventi incrementali, che toccano solo alcuni aspetti del software, in base alle richieste e ai feedback degli utilizzatori. Ovviamente questo presuppone ancora una volta la stretta e sinergica cooperazione tra sviluppatori e utenti aziendali, come prescrive appunto l’approccio Scrum.