Skip to content
All posts

Scrum: un metodo semplice per la gestione di progetti complessi

La parola Scrum deriva da un termine inglese usato nel gioco del rugby che significa “mischia”, ovvero il momento in cui tutti i giocatori sono concentrati sulla palla con l’unico obiettivo di portarla alla meta.

Questa è una metafora che ben rappresenta il lavoro di team che deve avere un obiettivo comune da raggiungere e deve collaborare in qualsiasi fase di sviluppo di un progetto.

 

scrum

 

Che cos’è Scrum?

È una metodologia, una tecnica, ideata da Ken Schwaber e Mike Beedle che fa parte del metodo AGILE. La più indicata e utilizzata per progetti complessi ed innovativi e in particolare per lo sviluppo di software; quindi stiamo parlando di IT, o meglio di Lean IT.

I due ideatori lo descrivono così: “Scrum è un framework in cui le persone possono affrontare i problemi adattivi complessi, consegnando allo stesso tempo in maniera produttiva e adattiva prodotti con il valore più alto possibile.”

È un modello di processo utilizzato per produrre software con lo scopo di ottenere il massimo valore nel minor tempo. Dà la possibilità al committente/cliente di ispezionare rapidamente e costantemente (ogni 3-4 settimane) le versioni funzionanti del software in fase di sviluppo.

E’ basato su quello che viene chiamato Sprint, ovvero uno sforzo mirato a raggiungere determinati obiettivi entro 30 giorni, al termine dei quali il team di sviluppo è in grado di fornire un valore e una funzionalità immediatamente testabili da parte del cliente.
Questo è fondamentale quando si parla di implementazione di software, perché il ciclo di vita del prodotto in questo caso è molto ridotto. Cosa significa questo?
Generalmente quando si parla di ciclo di vita di un prodotto, si parla di diversi mesi o diversi anni, nel caso di programmi e software si parla di pochi mesi, perché i sistemi di base cambiano continuamente e molto velocemente. Quindi, se come committente, metto a disposizione un tempo di 8/10 mesi per lo sviluppo di un software, vuol dire che questo prodotto dovrà rientrare molto rapidamente in termini di profitto e sarà davvero difficile ottenere un risultato vincente anche se il prodotto è stato progettato molto bene, proprio per via della natura stessa del ciclo di vita di questi prodotti.
Per questo motivo, soprattutto in questo ambito, c’è bisogno di una metodologia che crei valore immediato, non solo quando il progetto è terminato.

 

scrum-process

 

 

Si basa su 3 principi elementari:

  • trasparenza;
  • ispezione;
  • adattamento.

Il concetto di base è quello del Divide et impera, ovvero, è possibile affrontare un problema articolato e complesso, semplicemente frammentandolo in problemi più piccoli. Quindi vengono raccolte tutte le informazioni di un progetto e poi si frazionano dati e tempi.

 

Quali sono i ruoli principali in Scrum?

Sono fondamentalmente 3:

Il Product Owner: rappresenta il cliente o gli stakeholders ed ha lo scopo di massimizzare il ritorno del prodotto in termini di business. È il responsabile del prodotto, e colui che:

  • definisce le caratteristiche,
  • decide le tempistiche (date e contenuti),
  • per ogni sprint rivede la lista delle caratteristiche e le loro priorità,
  • accetta o rifiuta i risultati ottenuti mediante la definizione di “Fatto”.
Lo Scrum Master: è colui che ha la responsabilità di coordinare e facilitare le diverse attività e la corretta esecuzione del processo ed eliminarne gli ostacoli. Svolge il ruolo di coach e problem solver. Si incontra brevemente ogni giorno con il team e gli incontri vengono chiamati Daily Scrums. La sua priorità è quella di fornire al team le migliori condizioni possibili per realizzare gli obiettivi prefissati. Dopo ogni Sprint, lo Scrum Master tiene una riunione di valutazione con il team, chiamata Sprint Retrospective, durante la quale si discute sui progressi e si traggono conclusioni. Lo scopo è quello di aumentare il livello di conoscenza del team e accrescere la motivazione interna.

Il team Scrum: solitamente è formato da non più di 10 persone. Hanno completa autonomia su come organizzare il lavoro e come distribuire le mansioni. Non ci sono ruoli fissi, ogni membro deve essere in grado di scambiarsi i task con un altro membro perché devono essere tutti degli esperti con capacità alla pari. Sono dunque dei team cross-funzionali.

 

Il processo dello Scrum

Le fasi principali che lo compongono sono:

Creazione di un Backlog Item.

Il Product Owner deve compilare una lista (il Product Backlog) di tutte le specifiche che sono alla base del prodotto, per esempio nuove funzioni o correzioni ecc. Dopo che gli obiettivi sono stati fissati, l’intero backlog viene diviso in tanti release, ognuno dei quali dovrà creare un valore di business ed essere in parte sub-deliverable, cioè identificare una nuova funzionalità.
Contemporaneamente la lista deve essere ordinata per priorità, e come abbiamo visto prima, è il Product Owner stesso a prendere queste decisioni.

La fase dello Sprint.

Ogni Sprint, abbiamo detto, ha una durata massima di 30 giorni, di questi, i primi sono usati per creare lo Sprint Backlog, e una volta determinati i task e il tempo richiesto, lo Scrum Team sarà responsabile del proprio lavoro e dovrà auto-organizzarsi.

Il Daily Scrum.

Ogni giorno, alla stessa ora, lo Scrum Master e il team fanno una breve riunione (15-20 minuti), con l’obiettivo di eliminare gli ostacoli che potrebbero rallentare il lavoro. Tre sono le domande alle quali ogni membro del team deve rispondere:

  • Che cosa hai fatto dall’ultima riunione?
  • Che cosa farai adesso fino alla prossima riunione?
  • C’è qualcosa che ti impedisce di fare quello che hai pianificato?

Le prime due domande permettono ai partecipanti del team di avere una visione generale ma allo stesso tempo dettagliata di come sta procedendo il progetto, la terza invece fornisce una base per risolvere eventuali problemi.

Valutazione.

Ogni Sprint termina con una dimostrazione, a cui partecipano anche gli utenti/committenti e i rappresentanti del management aziendale, durante la quale viene presentato il software/progetto. Lo scopo della riunione è quello di creare un punto di partenza per il prossimo Sprint.

 

In cosa si differenzia dagli altri metodi?

In questo caso anziché richiedere la descrizione dettagliata dei requisiti e come dovrebbe essere il prodotto finale fin dall'inizio, vengono delineate delle linee guida (ovvero delle caratteristiche fondamentali che il prodotto dovrà avere) e viene lasciata la massima libertà al team di sviluppo di decidere come sviluppare queste features. Il cliente o committente (che nella maggior parte dei casi corrispondono), interagisce costantemente e integra periodicamente i requisiti alla soluzione provvisoria ipotizzata dallo sviluppatore. E in cambio gli sviluppatori si impegnano a fornire valore costantemente durante ogni fase del processo di produzione non solo alla fine.
E’ una metodologia molto smart e interattiva che è in grado di dare risposte immediate e generare valore lungo tutto il processo di creazione e sviluppo di un prodotto, mentre negli altri casi lo si riesce a percepire solo a progetto terminato.

Vi consigliamo di vedere questo video che fa capire chiaramente perché la metodologia Agile è molto efficace per i progetti di sviluppo software.

 

 

 

 

Se non vuoi perderti le prossime news sul mondo della Lean management, iscriviti subito alla nostra newsletter!

Se invece sei interessato ad approfondire questo e ad altri argomenti della Lean, non esitare a contattarci!

 

Newsletter-Make-Itl-ean