Scrum: di cosa si tratta?

    Indice

Scrum: di cosa si tratta?

Scrum è il framework più famoso e diffuso nel mondo del software ed è la più nota tra le più di 100 metodologie, strumenti e pratiche sotto il cappello di Lean Agile.

Il project management tradizionale con il suo approccio waterfall ragiona in termini lineari, seguendo un piano e difficilmente è in grado di adattare lo sviluppo del software al mutare delle esigenze del cliente e ai cambiamenti di mercato.

Scrum nasce a metà degli anni novanta per far fronte alla crescente complessità e al fatto che lo sviluppo del software è un processo creativo. 

ll project management ha il compito di far rispettare il piano, i tempi e costi previsti, mentre scrum si basa su cicli di iterazioni brevi dove il valore portato al cliente è subito visibile e misurabile e il feedback del cliente guida le modifiche da inserire nella successiva iterazione di sviluppo.

Il successo di un team Scrum dipende dalla capacità di generare valore ad ogni iterazione in modo da ottenere un ritorno sul tempo e sul budget investito.

Dopo aver sottolineato la differenza tra l’approccio convenzionale di project management e scrum vediamone le caratteristiche.

Inizia ora il tuo primo video corso Scrum

Diventare agili con Scrum-1

Scrum: i pilastri e valori

Scrum è un framework, ovvero un insieme di regole, ruoli, artefatti ed eventi che ci permettono di costruire una metodologia che funziona in maniera iterativa e incrementale seguendo l’approccio empirico che si fonda sul controllo empirico del processo, ovvero svolgere frequenti ispezioni di verifica e la conseguente modifica.
 
Per fare un esempio, se dovessi tarare la temperatura di una stanza con un approccio convenzionale andremmo ad analizzare tutte le variabili (areazione, numero di persone, dispersione, finestre, esposizione al sole, se viene introdotto del cibo, temperatura del cibo, temperatura media delle persone e via dicendo) per decidere il valore ottimale e impostare il termostato una volta per tutte. Ma le variabili cambiano. Il controllo empirico prevede frequenti ispezioni, ovvero a turni stabiliti, ogni componente della stanza va a controllare il termostato e lo aggiusta di volta in volta. Questo è quello che accade in scrum durante lo sviluppo del software. Si decide un periodo, che varia da una a quattro settimane e chiamato sprint, alla fine del quale viene prodotto qualcosa di usabile. Il cliente lo prova e il suo feedback determina l’adattamento.
 
L’approccio empirico si basa su tre pilastri:
 
  1. Trasparenza: significa che tutti coloro che partecipano ad un progetto sanno quale è lo scopo (trasparenza verticale) e sanno che cosa fanno gli altri (trasparenza orizzontale). Trasparenza implica anche che il lavoro e le misure delle loro performance siano visibili a tutti a qualsiasi livello organizzativo.
  2. Ispezione: basato sul concetto di controllo empirico di processo significa che ogni iterazione ed incremento vengono verificati in base alle metriche di misurazione decise per apportare modifiche alle iterazioni successive rendendo estremamente adattabile l’andamento del processo. Naturalmente occorre non superare la soglia di tolleranza del processo all’ispezione per non vanificarne la validità.
  3. Adattamento: è la conseguenza dell’ispezione e significa che al posto di seguire un piano preordinato il team di sviluppo ripianifica in base ai risultati dell’ispezione per apportare il maggior valore al cliente finale orientato al miglioramento continuo delle proprie performance.

Oltre ai pilastri fondanti di Scrum esistono anche dei valori che l’organizzazione e il team devono rispettare:

  • Commitment: il valore dell'impegno è essenziale per costruire una cultura agile. I team di scrum lavorano insieme come un'unità. Si tratta dell’impegno che ogni componente del team prende verso gli altri nel momento in cui si è assegnato i compiti che vuole portare a termine. Va ricordato che il team non ha un leader che decide chi fa cosa, ognuno su base volontaria durante lo sprint planning decide di assegnarsi delle attività. Questo approccio dà autonomia al team che in questo modo si autoregola a auto-misura le proprie performance.
  • Openess: con questo valore si intende apertura alla sperimentazione, alle idee, all’ascolto e all’errore. Scrum nasce in contesti complessi dove è richiesta agilità che richiede necessariamente apertura mentale. Per rispondere a questa complessità i team Scrum cercano costantemente nuove idee e opportunità per imparare. I team sono anche aperti a chiedere aiuto quando ne hanno bisogno. Apertura significa non solo accogliere con curiosità le idee degli altri, ma essere aperti ai feedback e a darne.
  • Focus: significa non solo dirigere l’attenzione su qualcosa di specifico e non disperderla in mille attività, significa finire e non solo iniziare, significa limitare la quantità di task in lavorazione per essere sicuri di portare a termine quelli iniziati. Anche per questo durante lo sprint goal nessuno può intervenire a cambiare priorità o task a persone e al team scrum, con la sola eccezione che il lavoro sia diventato inutile per il cliente. Lo sprint corrisponde quindi ad un vero e proprio periodo di congelamento in cui non viene più messo in discussione quanto deciso almeno fino alla sprint review in cui si valuta il risultato dello sprint.
  • Respect: i membri del team Scrum sanno che si tratta di un lavoro di squadra e che senza lavoro di squadra scrum non esiste. Il team Scrum è l’unità fondamentale di Scrum e il team Scrum dimostra rispetto l'uno verso l'altro, verso il product owner, verso le parti interessate e verso lo Scrum Master. Questo implica anche rispettare il cliente consegnando ad ogni sprint incrementi di prodotto che siano di valore e in linea con le sue aspettative. I team sanno che la loro forza sta nel modo in cui collaborano, che ognuno ha un contributo distinto da dare per completare il lavoro dello sprint e che tutti sono responsabili del risultato finale. Ogni membro del team rispetta le idee degli altri e riconoscono i risultati degli altri.
  • Courage:  coraggio significa innanzitutto abbracciare l’incertezza, avere la consapevolezza  che la conoscenza  scaturisce dall’esperienza e che le nostre supposizioni non sono sicure e dobbiamo verificarle. Ci vuole coraggio a fare e rischiare di fallire. Ci vuole coraggio a dire di no. Ci vuole coraggio a sostenere le proprie idee. Ci vuole coraggio a sfidare lo status quo senza avere una soluzione certa.

I valori in sé non dicono nulla se non vengono applicati nella pratica e se non diventano comportamenti quotidiani e non si inseriscono nel framework Scrum che prevede tre fattori.

Scrum: eventi, ruoli e artefatti

Partiamo col vedere quelli che sono i principali ruoli all’interno di Scrum:

  • Il Product Owner: tiene la visione del prodotto e dà la priorità al backlog del prodotto. È il portavoce del cliente ed è responsabile di stabilire le priorità, di aggiornare costantemente il backlog (grooming) e di massimizzazione del valore del prodotto.
  • Il Team Scrum: composto da sviluppatori, tecnici e qualsiasi persona con le competenze necessarie per lo sviluppo di un prodotto. Il team Scrum è il responsabile ultimo della consegna del valore e della qualità del lavoro sviluppato durante lo sprint.
  • Lo Scrum Master: facilita il team scrum, lo aiuta ad utilizzare al meglio Scrum per costruire il prodotto e lo supporta nella comprensione/diffusione dei principi e dei valori all’interno del team e dell’organizzazione.

Dopo aver visto i 3 ruoli di Scrum, passiamo ora a vedere i 3 principali artefatti:

  • Product Backlog: è la lista emergente e ordinata delle attività necessarie a realizzare il prodotto. È molto più ampia dello Sprint Backlog poiché contiene la visione a lungo del prodotto e viene costantemente aggiornata ad ogni sprint grazie ai feedback del cliente.
  • Sprint Backlog: è costituito dagli items che il team decide di inserire nello sprint e che si impegna di portare a compimento, forti anche della definition of done, che dà loro l’idea di che cosa si intende per realizzato.
  • Increment: un incremento è tutto ciò che è stato realizzato durante uno sprint secondo la definizione di FATTO che ha stabilito il team. Ogni incremento è una versione riconoscibile, visibilmente migliorata e funzionante del prodotto.

Infine vediamo quali sono i 4 eventi di Scrum che si collocano prima, dopo e durante gli sprint ognuno con una funzione differente:

  • Sprint Planning:  il team Scrum si riunisce per decidere in modo collaborativo il lavoro da fare all’interno dello sprint, l'obiettivo dello sprint e come il lavoro scelto sarà completato.
  • Daily Stand-up: avviene ogni giorno, dura la massimo 15 minuti, viene fatto possibilmente alla stesa ora, nello stesso luogo e vi partecipa lo Scrum team. Durante questo evento lo Scrum team verifica e mette a punto la pianificazione della giornata.
  • Sprint Review: l'intero Scrum team ispeziona il risultato dello sprint con gli stakeholder e determina gli adattamenti futuri. Gli stakeholder sono invitati a fornire un feedback sull’incremento.
  • Retrospective Meeting: lo Scrum team ispeziona come è andato l'ultimo sprint per quanto riguarda gli individui, le interazioni, i processi, gli strumenti e la definizione di fatto. Il team crea un piano per miglioramenti da attuare durante il prossimo Sprint.

Conclusione

In questo articolo abbiamo visto l’approccio alla base di Scrum, dei suoi valori e dei suoi principi. Scrum è un’ottimo framework e porta dei miglioramenti significativi ai team, ma è importante ricordarsi che per sfruttare il suo reale valore e applicarla al meglio è fondamentale apprendere prima di tutto il Mindset Agile.

Inizia ora il tuo primo video corso Scrum

Diventare agili con Scrum-1

Se ti interessa leggere altri articoli su Scrum:

Pubblicato da Luca Siniscalco il

Ultimi articoli