Le basi di Scrum
Come promesso, rieccoci con una nuova puntata a tema Dev&Design in cui parleremo di Scrum!
Intro
Il termine scrum, per chi conosce il mondo del rugby, potrebbe rimandare subito a una mischia, giocatori che si prendono a spallate, si buttano l’uno addosso all’altro passandosi una palla..
Nulla di tutto questo in realtà!
Infatti parliamo di Scrum non riferendoci ad una disciplina sportiva, ma in quanto implementazione della metodologia Agile di cui abbiamo parlato nel precedente articolo.
Ma quando è nata questa tecnica?
Facciamo un piccolo passo indietro e parliamo del modello RUP (Rational Unified Process) che già prima della nascita di Scrum si avvicinava molto a quella che è una caratteristica fondamentale della metodologia Agile, ossia l’approccio iterativo-incrementale.
Questa era infatti suddivisa in quattro fasi:
- Fase iniziale, o anche inception phase
- Fase di elaborazione, detta anche elaboration phase
- Fase di costruzione, ossia construction phase
- Fase di transizione, definita transition phase.
Ogni fase ha un certo insieme di obiettivi e si conclude con la realizzazione di un deliverable (chiamato anche prodotto) di qualche genere.
Le fasi sono ulteriormente scomposte in iterazioni, ognuna delle quali associata a periodi temporali aventi scadenze precise.
Ufficialmente nel 2001 nacque Scrum, dalla collaborazione di Ken Schwaber e Jeff Sutherland, i quali seguono da sempre il suo uso all’interno di un mondo sempre più complesso.
Cos’è
Arriviamo al sodo, e iniziamo a parlare concretamente di cosa sia Scrum.
Prima di tutto, è un framework, inteso come un insieme di principi, valori ed elementi da seguire e applicare per consentire a persone, team e organizzazioni di generare valore attraverso soluzioni adattive per problemi complessi.
In parole povere non è prescrittivo, non esiste un unico modo di applicare Scrum ma per far sì che abbia successo in una grande organizzazione è assolutamente necessario seguire le regole del gioco, sta poi al team che ne fa uso, scegliere come sfruttarle al meglio in base alle esigenze; ciò che conta è non modificare nessuno dei suoi componenti.
Immaginate ad esempio di utilizzare Angular come framework per il front-end. Potete sfruttarlo per sviluppare in mille e più modi differenti il vostro applicativo?
Assolutamente SI. Potete modificarne la struttura e le regole interne? Decisamente no! Non sarebbe più lo stesso e perderebbe la sua essenza.
Empirismo e pensiero Lean sono alla base di questo framework.
L’empirismo afferma che la conoscenza derivi dall’esperienza e dal prendere decisioni basate su ciò che si è osservato.
Il pensiero Lean riduce gli sprechi e si focalizza su ciò che davvero è essenziale e di valore.
Non meno importante: Scrum si basa sulla intelligenza delle persone che ne fanno uso, mettendo al centro di tutto le persone stesse, intese come individui di valore e con tutte le capacità necessarie a portare a termine gli obiettivi, collaborando come un vero e indissolubile team di professionisti.
Pilastri
Ma quali sono i pilastri empirici di Scrum? Diamogli un’occhiata più da vicino!
Trasparenza
A quanti di voi è capitato di dover lavorare in una condizione di non chiarezza su ciò che fosse necessario fare?
Immagino non pochi!
Scrum fornisce una soluzione a situazioni di questo tipo grazie proprio al primo dei suoi tre pilastri fondamentali, ossia la trasparenza; grazie a questa, il processo ed il lavoro emergenti devono essere chiari e visibili sia a tutti coloro che svolgono il lavoro che a quelli che ne beneficiano.
Applicare Scrum significa infatti che le decisioni importanti sono basate sulla PERCEZIONE dello stato dei suoi artefatti formali (hakuna matata, parleremo in un articolo dedicato anche di questo) e più in generale del lavoro svolto e futuro.
Un basso livello di trasparenza può portare a decisioni che riducono il valore e aumentano pericolosamente i rischi.
Elemento chiave della trasparenza è la comunicazione tra tutte le parti interessate.
Chiunque sia coinvolto nelle varie attività di realizzazione di un prodotto, che sia il business, il cliente finale o il team di sviluppo, deve comunicare chiaramente quali sono gli obiettivi raggiunti e da raggiungere.
Solo in questo modo sarà possibile raggiungere quel livello di coordinazione tale da poter garantire il successo.
La trasparenza permette l’ispezione. L’ispezione senza trasparenza è fuorviante e genera spreco.
Ispezione
In questo contesto non parliamo di un’ispezione da parte di un ispettore o di un auditor, ma un’ispezione da parte di tutti i membri dello Scrum Team.
L’ispezione può essere eseguita per il prodotto, i processi, gli aspetti delle persone, le pratiche e i miglioramenti continui.
Ad esempio, il team mostra il prodotto al cliente in modo aperto e trasparente alla fine di ogni Sprint per raccogliere feedback preziosi.
Se il cliente modifica i requisiti durante l’ispezione, il team prontamente si adegua, sfruttando questa opportunità per collaborare con il cliente per chiarire i requisiti e testare la nuova ipotesi.
Parlando proprio di questa reazione del team a eventuali cambiamenti di rotta, veniamo a quello che è il terzo pilastro..
Adattamento
L’adattamento riguarda il miglioramento continuo, la capacità di adattamento in base ai risultati dell’ispezione.
Tutti nell’organizzazione devono porsi regolarmente questa domanda: stiamo meglio di ieri?
E se la risposta è no, chiunque deve impegnarsi attivamente e in collaborazione con il resto del team a far sì che gli sviluppi seguano la giusta direzione.
Se qualunque aspetto di un processo devia al di fuori dei limiti accettabili o se il prodotto risultante non rispetta il desiderata, il processo e il valore prodotto devono essere adattati il più velocemente possibile per ridurre al minimo ulteriori deviazioni, ricordando sempre che più l’esperienza di un team aumenta su un dominio, maggiore sarà la fiducia generata e la capacità di adattamento di ogni singolo componente del team stesso.
In questo articolo abbiamo parlato brevemente di cosa sia Scrum e dei pilastri empirici; la realtà è che ci sarebbe tanto da dire, ma ci arriveremo… e di quali siano i suoi **valori,**ne parleremo nella prossima puntata!