Scrum: cos’è, come funziona e com’è strutturato

Che cos’è Scrum? Scrum è un framework agile, incrementale e iterativo, per lo sviluppo di prodotti, applicazioni e servizi. Non è una vera e propria metodologia, un processo, o una tecnica. Scrum è un vero e proprio framework, ovvero una modalità strutturata e pianificata, su cui è possibile costruire soluzioni complesse.

Inoltre Scrum si basa sull’empirismo, ovvero sul concetto che la conoscenza derivi dall’esperienza e che le decisioni vadano prese alla luce di ciò che si conosce. I tre pilastri che sostengono l’empirismo sono: trasparenza, ispezione e adattamento.

Vediamo insieme come funziona Scrum a grandi linee, avremo tempo per scendere in dettagli più avanti.

Visione di insieme sul framework

La struttura del framework è molto semplice ed è composta da:

Responsabilità o ruoli

All’interno di Scrum esistono tre responsabilità distinte: Product Owner, Scrum Master e Developer. Tutti insieme formano lo Scrum Team, che ha la caratteristica di essere autogestito e cross-funzionale, vale a dire che ha al suo interno tutte le competenze per rilasciare un incremento di software senza dipendere da team esterni o da persone esterne al team.

Artefatti

Per artefatti si intende le modalità con cui Scrum visualizza il lavoro e il “valore”. Questi artefatti sono: Product Backlog, Sprint Backlog e Increment.

Ogni artefatto include un “commitment”, con il fine di migliorare la trasparenza e attraverso il quale è possibile misurare i progressi del team. Questi commitment sono:

  • Product Goal, che fa parte del Product Backlog e descrive uno stato futuro del prodotto. Il Product Goal serve come obiettivo a lungo termine
  • Sprint Goal, che è parte dello Sprint Backlog; descrive un obiettivo più a breve termine e il motivo per cui un’iterazione aggiunge valore al prodotto
  • Definiton of Done, che descrive quando un Increment (ovvero un incremento di software) raggiunge uno standard qualitativo adeguato a consentire il rilascio all’utente finale

Eventi o cerimonie

Gli eventi o cerimonie, in Scrum sono i seguenti:

  • Sprint Planning, che avviene all’inizio dello Sprint (o iterazione). Come dice la parola stessa, è un evento di pianificazione
  • Daily Scrum, un evento giornaliero di 15 minuti in cui gli sviluppatori aggiustano i loro piani per il raggiungimento dello Sprint Goal
  • Sprint Review, che chiude uno Sprint e dà l’occasione di ispezionare il lavoro svolto
  • Sprint Retrospective, l’ultimo dei meeting all’interno dello Sprint e che ha la funzione di ispezionare i processi, le pratiche e altri aspetti legati alla collaborazione

Un discorso a parte merita il Backlog Refinement, che secondo la guida di Scrum non è un evento timeboxed ma consiste nell’atto di aggiungere dettagli ai Product Backlog Item, ovvero gli elementi che compongono il Product Backlog. Il Refinement si svolge generalmente sotto forma di meeting o di workshop.

Se non hai ancora le idee chiare non preoccuparti, nei prossimi paragrafi e nei prossimi articoli dedicati a Scrum cercherò di fare un po’ di chiarezza.

I 5 valori di Scrum

Secondo la guida ufficiale di Scrum, il vero successo nell’utilizzo del framework avviene nel momento in cui le persone fanno propri i seguenti 5 valori:

  • Commitment (traducibile con impegno)
  • Focus (concentrazione)
  • Apertura
  • Rispetto
  • Coraggio

Lo Scrum Team si impegna al raggiungimento dei propri obiettivi, rimanendo concentrato sul risultato finale ma aperto alle sfide che si presentano quotidianamente. Inoltre ciascun membro del team deve rispettarsi e supportarsi a vicenda, avendo il coraggio di fare cosa è giusto anche di fronte ai problemi più complessi.

Questi valori danno quindi una direzione allo Scrum Team per quanto riguarda il modo di lavorare, le azioni e il comportamento.

Il gruppo di lavoro – Scrum Team

Nel framework Scrum, così come in tutti i metodi agili, l’intero team è auto organizzato e il team di sviluppo è cross funzionale. Tuttavia in Scrum si preferisce utilizzare il termine “autogestito” piuttosto che “auto organizzato”, per sottolineare e per rendere ancora più esplicito che un team in Scrum è responsabile di tutti gli aspetti e non soltanto del proprio modo di organizzarsi.

Inoltre, in seguito a un recente aggiornamento della guida di Scrum, il termine “team di sviluppo” è stato sostituito dal termine “Developer”, che in italiano manterrò sempre al singolare, anche se indica un insieme di persone. La scelta di adottare il nuovo nome è stata dettata dalla necessità di rimarcare che in Scrum esiste un solo team – e non esistono gerarchie o altri team all’interno del team.

A differenza dei modi di lavorare tradizionali non esiste la figura del Project Manager che ha autorità su tutto e decide tutto. Non fraintendermi, non sto dicendo che i Project Manager sono da rottamare! I manager, che in Scrum hanno altri nomi, hanno un ruolo fondamentale quando si tratta di rimuovere ostacoli e impedimenti che esulano dai compiti del team; hanno inoltre la facoltà di influenzare e cambiare i piani qualora si rendesse necessario.

Una leadership condivisa

Quello che voglio dire è che secondo le metodologie agili e Scrum, se hai un team di persone in gamba e preparate, allora ha senso utilizzare il pieno potenziale di ognuno, condividendo le responsabilità anziché dirigere questo gruppo dall’esterno. Il vantaggio è notevole se pensi che questo approccio è efficace per rimuovere il potenziale collo di bottiglia di avere una sola persona chiamata a visionare e prendere decisioni su tutti gli aspetti del progetto.

Ma il risultato più importante di questo modo di lavorare è un maggior coinvolgimento e una maggior partecipazione di tutti i membri del team, che porta indubbiamente a un aumento della produttività e del benessere di ognuno.

Si può quindi dire che in un team Scrum esiste una leadership condivisa e essere leader vuol anche dire trovare il problema e mettere insieme le persone giuste per risolverlo. Chiunque nel team abbia la capacità di vedere un problema in anticipo, ha anche la possibilità di avere un ruolo da leader per la risoluzione.

Se vuoi capire come è composto un team Scrum ti consiglio di leggere l’articolo: Il team Scrum e i ruoli.

Clicca sull’immagine per ingrandire

Il ciclo di sviluppo – Sprint

Scrum è strutturato in cicli chiamati Sprint che durano da una a quattro settimane. Entro il termine di ogni iterazione, il team rilascia uno o più incrementi (Increment) che includono funzionalità potenzialmente rilasciabili. I cicli sono timeboxed, il che significa che hanno durata fissa nel tempo, non possono essere estesi e terminano anche se il lavoro non è stato ultimato.

Pianificazione in Scrum

All’inizio di ogni Sprint, durante un evento chiamato Sprint Planning, il team seleziona i propri task da una lista di attività ordinate (Product Backlog) e si impegna a completare, entro il termine dello Sprint, tutte le attività che contribuiscono al raggiungimento dello Sprint Goal.

Il fine ultimo non è quindi completare il maggior numero di attività possibile, ma produrre incrementi di software completamente funzionanti e utilizzabili, attraverso il raggiungimento dello Sprint Goal – ovvero l’obiettivo a breve termine che si desidera ottenere durante l’iterazione. Questo obiettivo è concordato all’interno di tutto lo Scrum Team e non è stabilito a priori dal Product Owner.

È importante sottolineare come tutto ciò che viene pianificato all’inizio dell’iterazione può essere cambiato man mano che il team apprende nuove nozioni in fase di svolgimento. Le uniche condizioni sono che i cambiamenti non vadano a influire negativamente sui livelli di qualità del prodotto o sullo Sprint Goal – che è fisso per tutta la durata del ciclo.

Esecuzione in Scrum

Il team si confronta quotidianamente mediante Daily Scrum Meeting (noto anche come il Daily Stand-up), uno dei momenti più sottovalutati ma a mio avviso fondamentale al fine di ottenere una piena condivisione degli obiettivi e dei risultati, attraverso una mini pianificazione giornaliera.

Capita spesso che durante il daily standup vengano fuori idee, problemi e possibili dipendenze verso altri team (o fornitori). Se eseguita correttamente, questa cerimonia dura un massimo di quindici minuti; tutte le discussioni, come la soluzione degli eventuali problemi o impedimenti riscontrati va rimandata ad altre sedi.

Entro il termine dello Sprint il team rilascia un Increment, che deve sempre essere completo (Done) e potenzialmente rilasciabile all’utente finale. Per esempio, nel caso di una normale applicazione software potrebbe voler dire una funzionalità interamente integrata, funzionante e testata. Per determinare esattamente che cosa è stato effettivamente completato, il team si serve della Definition of Done.

È importante notare che in Scrum può esserci più di un Increment per Sprint. Ovvero non bisogna necessariamente aspettare il termine dello Sprint per poter rilasciare.

Conclusione di uno Sprint

Lo Sprint si conclude con due cerimonie fondamentali: lo Sprint Review e il Retrospective Meeting.

Lo Sprint Review è un meeting informale in cui il team ispeziona il lavoro svolto insieme al Product Owner e a eventuali stakeholder chiave. Il Retrospective Meeting, che in genere è svolto al termine del Review, serve al team per riflettere sullo Sprint appena concluso ed è un “luogo sicuro” dove ognuno può esprimere le proprie opinioni (in maniera costruttiva).

Entrambe queste cerimonie giocano un ruolo fondamentale e sono strettamente connesse a tutti e tre i pilastri dell’empirismo, in quanto promuovono trasparenza sul processo e sul lavoro svolto; ma anche ispezione e adattamento, attraverso un’analisi critica di ciò che ha funzionato durante l’iterazione appena conclusa e ciò che invece richiede miglioramenti.

Nei prossimi articoli andremo a vedere più in dettaglio tutti gli artefatti e le cerimonie di questo framework agile. Clicca qui per accedere alla categoria dedicata a Scrum.

Immagine di copertina rilasciata via Creative Commons da Enrique Fernández su Flick.

È FINALMENTE DISPONIBILE IL VIDEOCORSO DI AGILE WAY!

videocorso agile way su scrum e sulle metodologie agili

CORSO APPROFONDITO SU SCRUM E SULLE METODOLOGIE AGILI

3,5 ore di video lezioni su Scrum, ideale per prepararsi a un esame di certificazione PSM-I e per comprendere i valori, i principi e le pratiche dei metodi Agili. In questo corso imparerai:

  • Origine, nascita e significato delle metodologie Agili
  • Differenze tra Scrum e i modelli tradizionali
  • Tutte le componenti del framework Scrum, i valori, le pratiche e le metriche
  • Come gestire al meglio un progetto e un prodotto con Scrum
  • Come mantenere un’attenzione continua al valore generato e al cliente
  • Simulatore di esame di certificazione (80 domande)
  • Tanto altro…

* Prezzo del corso €109,99 – iscriviti adesso e risparmia l’82%. Offerta limitata nel tempo.

Subscribe
Notificami
guest
0 Commenti
Inline Feedbacks
View all comments