SCRUM MASTER: il leader al servizio dei team agili
COS’È SCRUM ?
SCRUM per definizione è descritto come “una strategia di sviluppo flessibile basata su un approccio di tipo olistico, in cui l’intero processo viene eseguito da un team interfunzionale su più fasi che si sovrappongono, e il team di sviluppo lavora per raggiungere un obiettivo comune”
Scrum è un framework particolarmente indicato per progetti complessi e innovativi. Nonostante sia molto utilizzato, soprattutto negli ultimi anni, la sua storia non è così recente.
Il termine fu coniato nel 1986 da Hirotaka Takeuchi (professore alla Harvard Business School) e dallo studioso Ikujiro Nonaka. All’inizio il concetto di Scrum era orientato alla produzione, e il suo obiettivo originario era di accelerare il processo di sviluppo del prodotto con un nuovo approccio al lavoro, in grado di sviluppare con più facilità e con risultati migliori i prodotti commerciali.
Il nome Scrum è mutuato dal gioco del Rugby dove indica quella particolare azione in cui la squadra compone un gruppo compatto che insieme spinge nella stessa direzione. La metafora del rugby descrive perfettamente le modalità di sviluppo in cui la squadra “cerca di raggiungere l’obiettivo come unità, passando “la palla avanti e indietro” (Hirotaka Takeuchi, Nonaka, Ikujiro, The New Product Development Game, in Harvard Business Review, 1986.)
Fu solo nel 1993 che Jeff Sutherland della Easel Corporation utilizzò per la prima volta il concetto Scrum nell’ambito dello sviluppo software.
Nel 1995, Takeuchi e Nonaka presentano il metodo Scrum al grande pubblico, riportando i successi ottenuti grazie alla sua applicazione in numerosi progetti.
COME FUNZIONA IL METODO SCRUM?
Scrum fa parte della metodologia “Agile” e si basa sull’approccio empirico, ovvero ogni decisione viene presa in base ad un’esperienza.
Il metodo Scrum si fonda su tre principi:
– Trasparenza: in ogni momento i responsabili possono vedere (e quindi valutare) tutti gli aspetti del progetto.
– Ispezione: il prodotto viene ispezionato di frequente in tutte le sue fasi.
– Adattamento: immediato adattamento del prodotto alle nuove esigenze che si verificano.
In Scrum ogni progetto è diviso in Sprint, una breve iterazione di circa un mese. Lo scopo è di sviluppare quanto più possibile software di qualità entro ciascun Sprint. Ad ogni sprint corrisponde una nuova funzionalità che viene mostrata al cliente per verificarne la soddisfazione del lavoro svolto. In questo modo il cliente può valutare la bontà del prodotto fin dalle prime fasi del progetto. Un sistema iterativo (ed interattivo) che consente di apportare modifiche al progetto, di abbattere i costi di produzione ed evitare effort inutili. Grazie alla divisione del lavoro in Sprint è possibile apportare piccole e frequenti modifiche migliorative alle funzionalità del progetto ed evitare, come spesso accade, di doverlo stravolgere nelle fasi avanzate.
I RUOLI IN SCRUM
In Scrum ci sono tre ruoli fondamentali: i membri del team di sviluppo, il Product Owner e lo SCRUM MASTER
Il Team di sviluppo o Development Team, Feature Team o semplicemente Team, costruisce il prodotto e le funzionalità indicate dal Product Owner. Il team ha un alto livello di autonomia e di responsabilità e include, in genere, vari professionisti quali: sviluppatori, progettisti, tester, debugger ecc.
Tutti i membri del team comunicano con lo Scrum Master e il Product Owner non solo per ricevere da questi quanti più input preziosi possibili, ma anche per fornire indicazioni e suggerimenti al Product Owner al fine di migliorare il prodotto e renderlo ottimale.
In Scrum si ottengono i risultati migliori quando il team si dedica ad una attività alla volta. Pertanto sarebbe meglio evitare, nel limite del possibile, il multitasking e persone allocate su diversi progetti in quanto queste pratiche riducono l’efficienza del team nel suo complesso e conducono molto spesso a risultati finali di qualità inferiore.
Compito del Product Owner è rendere chiaro ciò che dovrà essere il prodotto finale. Il Product Owner ha un ruolo molto importante nei progetti basati su una metodologia agile e in particolare nello sviluppo software con l’approccio Scrum. Il Product Owner deve essere in grado di definire la visione del prodotto dal punto di vista del committente e dal punto di vista di business della propria organizzazione. Pertanto si comporta un po’ come un intermediario: deve garantire che il committente/cliente ottenga quello che vuole e al contempo fare in modo che i membri del team sappiano cosa fare. Il Product Owner riceve input da entrambe le parti e sceglie con attenzione ciò che viene aggiunto alla lista ordinata per priorità da usare per lo sviluppo del prodotto.
Il ruolo dello Scrum Master è molto probabilmente il più importante nel processo di sviluppo del software, è colui che deve garantire che la metodologia Scrum venga compresa ed eseguita con successo. Lo Scrum Master deve assicurarsi che ognuno svolga il proprio lavoro in modo corretto e che nessuno stia rimanendo indietro, deve quindi accertarsi che il team lavori in maniera coerente con lo sviluppo del progetto, deve eliminare eventuali ostacoli esterni al Team che possono avere un impatto negativo sulla produttività e, deve, inoltre, organizzare e facilitare i meeting di confronto.
Un buon Scrum Master deve dunque educare e guidare l’intero team all’uso di Scrum e fare in modo che chiunque, incluso il Product Owner e il management dell’azienda, ne comprendano e ne seguano i principi e le pratiche, deve inoltre impegnarsi nella risoluzione degli impedimenti che possono compromettere la riuscita di uno Sprint o di un intero progetto.
Anche se può verificarsi che una persona svolga sia il ruolo di Scrum Master che di Product Owner è opportuno che ciò non avvenga poiché, come succede, il Product Owner potrebbe assegnare al team un carico eccessivo di lavoro, causando un ritardo nella consegna del prodotto, ed è compito dello Scrum Master negoziare i cambiamenti che potrebbero causare rischi sull’esito del progetto. Questo non accade se il Product Owner e lo Scrum Master sono la stessa persona.
Contrariamente a quanto si pensi lo Scrum Master non è un Project Manager, a differenza dei responsabili di progetto lo Scrum Master non dice alle persone cosa fare e, non è autorizzato a controllare in modo pignolo i membri del team, la sua funzione è di facilitare il processo di sviluppo aiutando il team ad autogestirsi e organizzarsi.
Ogni team dovrebbe avere uno Scrum Master a tempo pieno, ma in team più piccoli il ruolo può essere assunto da uno dei membri del gruppo che dedica così parte del suo tempo all’attività.
Si deduce che SCRUM può essere adottato in qualsiasi tipo di azienda, senza trasformazioni profonde di assetti organizzativi o di politiche di gestione del personale. Inoltre la partecipazione che si stabilisce attraverso la sua adozione promuove i rapporti tra tutti i membri del team, la conoscenza da parte di tutti dello stato del progetto, la comunicazione tra committente e sviluppatori limitando in questo modo i fraintendimenti sui requisiti del sistema e il costo causato dai cambiamenti.
SCRUM MASTER: il leader al servizio dei team agili
Banner vector created by katemangostar – www.freepik.com
__________________________________________
SCRUM MASTER
DI QUESTI ARGOMENTI NE PARLEREMO NEL PROSSIMO CORSO
SCRUM MASTER
SCRUM MASTER
Per maggiori informazioni contattaci, o guarda il corso su
UIDOO.