Cos'è SCRUM e come può esserti utile

SCRUM spiegato semplice con esempi presi dalla vita reale. Non è la soluzione a tutti i mali: prima di adottarlo, devi comprenderlo fino in fondo.

Hey Gianluca, cos’è Scrum? Ma dobbiamo adottarlo anche noi?

Più e più aziende mi hanno rivolto questa domanda.

Se non hai mai sentito questo nome, sappi che non sto parlando di un trattamento per il viso.

Magari sei uno sportivo e ti fa – giustamente – pensare al rugby.

Cos'è Scrum? Sapevi che il nome scrum deriva dal rugby?

Se è così, perché ne parlo in un contesto di sviluppo software?

Sai una cosa?

Mia madre non ha idea di cosa sia Scrum ed ha vissuto benissimo fino ad ora.

A lei non è servito, ma a te potrebbe servire.

Premessa.

Ti sto parlando del percorso necessario per creare un prodotto o un servizio software. (anche se puoi applicare questo metodo anche ad ambiti differenti)

Per spiegarti – finalmente – cos’è SCRUM, voglio farti degli esempi tagibili fuori dal mondo software.

Sei con me? Allora, iniziamo!


Cos’è Scrum?

Immagina la costruzione di un palazzo.

Lo so, faccio una semplificazione, ma grosso modo l’ingegneria classica ci insegna che i passi per la costruzione di un edificio sono i seguenti:

  • raccogli le informazioni dal committente
  • redigi il progetto del palazzo
  • sviluppa il progetto
  • collaudo
  • inaugurazione con relativi festeggiamenti prolungati (non crederai di saltare questo step, vero?!?)
  • manutenzione

Tutto in rigoroso ordine sequenziale. Prima concludo una fase, poi passo a quella successiva.

Questo modello in ingegneria del software si chiama modello waterfall, a cascata.

il modello waterfall è da sempre in contapposizione con scrum

Il nome rende bene l’idea.

Praticamente è una metodologia di lavoro nata con lo sviluppo software.

E’ un modello che si può applicare sempre?

Ti voglio rispondere con un esempio.

Proviamo ad applicare il modello waterfall in un caso di vita reale.

Immagina di vivere a Bologna e di dover prendere l’aereo per andare in vacanza a Bali.

Il tuo piano è questo: prendi la macchina, fai benzina e guidi fino all’aeroporto di Milano Malpensa.

E così fai. Purtroppo però all’altezza di Piacenza, ricevi la telefonata che rischia di rovinarti la vacanza.

Dall’altra parte c’è la compagnia aerea.

Siamo spiacenti di comunicarle che Il suo volo è stato spostato da Milano a Genova causa nebbia.

Come reagisci davanti ad un imprevisto?

Tu a questo punto cosa fai?

E’ ovvio: giri la macchina per l’A21 e ti dirigi verso Genova.

Sai una cosa?

Quando applichi il modello Waterfall non funziona così.

Se il tuo progetto ti dice di andare fino a Milano, allora il piano non si cambia. Bisogna andare avanti fino alla fine dei programmi.

Si hai capito bene. Con il modello a cascata sarai costretto a:

  • proseguire
  • guidare fino all’aeroporto di Malpensa (la tua meta)
  • parcheggiare (la tua consegna)

Hai rispettato i piani, purtroppo però di quel risultato non te ne fai nulla.

l'operazione è andata benissimo, il paziente è morto

Il bello però, arriva ora.

Sai come gestiscono le aziende di software questa situazione?

Con uno splendido strumento chiamato “evolutiva“.

Grazie all’evolutiva, dal parcheggio dell’aeroporto sbagliato, puoi ora pianificare un viaggio da Milano a Bologna.

Comprendi bene che non esiste un folle al mondo che si comporterebbe nello stesso modo.

All’altezza di Piacenza, dopo quella telefonata, imbocchi la A7 e cambi i tuoi piani.

Eppure nello sviluppo software succede proprio così, tutti i giorni.

Capisci dove voglio arrivare?

Il modello Waterfall è un modello (molto) rigido.

Ecco la necessità di (anche) un modo diverso di organizzare un progetto.

Un metodo che accolga e sfrutti il cambiamento come una opportunità, non come un fastidio.

Questo è il motivo per cui sono nati modelli incrementali definiti “Agili”.

Scrum è uno di questi.

Mi piace molto la definizione del co-autore di Scrum, Jeff Sutherland.

What Scrum does is bring teams together to create great things, and that requires everyone not only to see the end goal, but to deliver incrementally toward that goal

Scrum: The Art of Doing Twice the Work in Half the Time – Jeff Sutherland

Scrum è un modello incrementale

Bella la storiella, ma io vivo nel mondo reale. Come fa Scrum ad avvantaggiarsi del cambiamento invece di subirlo?

Tra un attimo ci arriviamo.

Prima ti racconto a grandi linee la ricetta generale da seguire. Se vuoi un caso reale, ti rimando alla mia guida sul Project Management.

  • Fissa un periodo di tempo, non meno di due 2 settimane, non più di 4.
    Questo periodo si chiama iterazione, sprint in Scrum.
  • Poniti un obiettivo di business e scegli le funzionalità da sviluppare per riuscire a raggiungerlo.
    Scegli l’obiettivo che ti consentirà di aumentare maggiormente il valore del tuo prodotto o servizio.
    Quante funzionalità scelgo?
    Il maggior numero possibile che puoi analizzare, progettare, sviluppare e rilasciare in produzione entro la fine dell’iterazione.
    Si, hai capito bene: tutto quello che faresti nel modello waterfall, lo fai in una iterazione.
    E si, non è un errore. Ciò che hai prodotto dovrai rilasciarlo in produzione, come se avessi concluso il progetto.
    La differenza è che non applichi questo processo per tutte le funzionalità, ma solo per il subset che hai scelto per centrare il tuo obiettivo.
  • Alla conclusione dell’iterazione inizia il processo di retrospettiva.
  • Analizza ciò che è andato bene e ciò che è andato male, fai test e raccogli feedback sul prodotto rilasciato.

Ora sei pronto per far partire un’altra iterazione, basandoti sui dati che hai raccolto e soprattutto sui cambiamenti accaduti.

Nuove leggi (mai sentito parlare di GDPR?), cambi di mercato (avete notato l’esplosione di Instagram nell’ultimo anno?), cambi di strategia di marketing, pandemie…

L’inizio dell’iterazione è il momento giusto per considerare i cambiamenti.

Fai ciò che ti ho raccontato ed iterazione dopo iterazione aumenterai in modo costante il valore del tuo prodotto.

Questo è il motivo per cui è definito processo incrementale.

Sai qual è la parte che più mi piace di Scrum? (e piace soprattutto a chi finanzia i progetti)

Il tuo prodotto e servizio può essere messo sul mercato sin da una fase iniziale.

Anticipare il mercato (time to market) ti porta due enormi vantaggi:

raccogliere feedback dai tuoi clienti è la chiave per il successo di un progetto software

  • puoi raccogliere feedback dai tuoi clienti ed applicare i consigli nelle iterazioni successive. (ricordi? Sfruttiamo il cambiamento)
  • inizi a monetizzare molto presto. Potrai finanziarti gli sviluppi successivi ed iniziative di marketing diminuendo l’esposizione finanziaria del tuo investimento

Ora possiamo riprendere in considerazione la domanda iniziale.

Scrum può esserti utile?

Se il prodotto o servizio ben si presta ad essere modificato facilmente ed in modo incrementale, la risposta è si.

Diversamente, te lo sconsiglio.

Fai attenzione!

Voglio darti il consiglio più importante.

Valuta sempre bene il contesto del tuo progetto e decidi se e quali pratiche di questa metodologia possono portare un valore aggiunto.

Non sei costretto a seguire le pratiche Scrum alla lettera, ma conoscerle può portarti enormi vantaggi.

Sappi che non ti ho raccontato tutto.

Ad esempio, non ti ho parlato di come Scrum aiuta la crescita e la motivazione del team e quali enormi benefici è capace di portare alle persone che ne fanno parte.

Oppure di come questa metodologia possa aiutarti a mantenere il tuo progetto sempre sotto controllo dal punto di vista del budget e dei tempi.

Di questi argomenti ti ho parlato in modo approfondito nella mia guida definitiva al Project Management, Come ho rivoluzionato il processo di sviluppo di una multinazionale.
Se sei interessato a questo tema ti consiglio di leggerla.

Mamma, tutto chiaro?

PS: se questo articolo ti è piaciuto e pensi che possa essere utile a qualche tua amico, condividilo. A te non costa niente, per me è un feedback molto importante! Grazie di cuore.

Se vuoi contattarmi, scrivimi

Tieni botta,
Gianluca