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. il che significa che è progettato per fornire rapidamente piccole cose che possono trasformarsi in qualcosa di più grande nel tempo.
Ogni iterazione, nota come Sprint, dura solo un paio di settimane. Il team che è responsabile dell'effettiva esecuzione del lavoro può decidere quanto si impegnerà a portare a termine lo Sprint e nessuno dovrebbe cambiare o ridefinire la priorità del proprio carico di lavoro una volta assunto tale impegno.
Scrum enfatizza i rilasci rapidi per imparare cosa funziona. L'utilizzo delle iterazioni tramite Scrum ci consente di farlo più velocemente e con meno rischi rispetto alle tradizionali metodologie di gestione dei progetti che richiedono un'enorme quantità di pianificazione anticipata.
Uno degli ideatori di Scrum, Jeff Sutherland, descrive l'approccio in questo modo:
"Alla sua radice, Scrum si basa su un'idea semplice: ogni volta che avvii un progetto, perché non effettuare regolarmente il check-in, per vedere se quello che stai facendo sta andando nella giusta direzione e se è effettivamente ciò che le persone vogliono?"
Il concetto alla base di Scrum, come la maggior parte della gestione dei progetti Agile, è semplice, ma nel corso di molti anni e innumerevoli implementazioni è diventato più complesso. Potrebbero esserci molte parti in gioco, ma non lasciare che la complessità di Scrum ne mascheri il potere. Puoi fare di più in meno tempo con questo sistema, a condizione che tu lo faccia (per lo più) bene.
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.
La struttura del framework è molto semplice ed è composta da:
Una caratteristica primaria della metodologia Scrum sono ruoli chiaramente definiti che aiutano a stabilire aspettative chiare e consentono al team Scrum di operare in modo più efficiente, quindi ha al suo interno tutte le competenze per rilasciare un incremento di software senza dipendere da team esterni o da persone esterne al team.
Questi ruoli Scrum includono lo Scrum Master, il Product Owner e Developer.
Scrum Master: In generale sono le persone che hanno la responsabilità di aiutare un team Scrum a rimanere fedele ai principi e alle pratiche della metodologia Scrum. Gli Scrum Master facilitano le riunioni, rimuovono gli ostacoli che impediscono alle persone di essere produttive e guidano i membri del team verso una comprensione più profonda di Scrum.
Product Owner: Il ruolo di Product Owner ha preso il nome dal Developer, perché quei team creano veri e propri prodotti software. Se lo Scrum Master è responsabile del processo, il Product Owner è responsabile di assicurarsi che il processo venga applicato al lavoro giusto al momento giusto. Un buon Product Owner comprende il "chi" e il "perché" dietro il lavoro che il team sta facendo.
Developer: Lo Scrum Master e il Product Owner sono, tradizionalmente, gli unici ruoli differenziati in uno Scrum team. Ogni altro membro del team condivide lo stesso titolo: Developer.
Idealmente, ogni membro del team dovrebbe essere interfunzionale, il che significa che ha un ampio set di competenze che consente loro di contribuire a tutte le fasi di un progetto.
Per artefatti si intende le modalità con cui Scrum visualizza il lavoro e il “valore”. Questi artefatti sono: Product Backlog, Sprint Backlog e Increment.
Product Backlog: è un elenco di tutte le richieste del prodotto. È il documento finale a cui fa riferimento il team di Scrum per qualsiasi cosa relativa al prodotto. È un elenco ordinato di articoli di proprietà del Product Owner (PO)
Sprint Backlog: il team di Scrum identifica gli elementi dal backlog del prodotto creato dal PO, che intende consegnare come parte della successiva iterazione. Gli elementi su cui il team sceglie di lavorare diventano parte dello sprint backlog.
Increment: un Incremento è la somma di tutti i Elementi del Product Backlog completato durante uno Sprint e il valore degli incrementi di tutti gli Sprint precedenti. Ricordiamo che Scrum è un processo iterativo.
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 interazione aggiunge valore al prodotto
-Definition of Done, che descrive quando un Increment (ovvero un incremento di software) raggiunge uno standard qualitativo adeguato a consentire il rilascio all’utente finale
Ogni cerimonia Scrum ha un ruolo speciale nell'aiutare a guidare il lavoro Scrum e ogni membro del team ha delle responsabilità nelle quattro cerimonie seguenti:
Sprint Planning: Durante l'inizio di ogni Sprint, l'intero team si riunisce per decidere quello che può ottenere. Danno un'occhiata al backlog, un elenco di lavoro costantemente prioritario che il Product Owner e le parti interessate esterne hanno concordato che il team dovrebbe affrontare, e estraggono gli elementi dalla cima dell'elenco.
Una volta che il team ha scelto il carico di lavoro per le prossime due settimane, i progetti vengono suddivisi in attività e ciascuna attività viene assegnata a un membro del team. Come puoi immaginare, la pianificazione dello Sprint può richiedere del tempo. Pianifica di dedicare almeno un'ora per ogni settimana del tuo Sprint, il che significa che uno Sprint di due settimane richiede una riunione di pianificazione di due ore.
Daily stand-up: un evento giornaliero di circa 15 minuti in cui gli sviluppatori aggiustano i loro piani per il raggiungimento dello Sprint Goal. Ogni membro del team condivide solo tre cose:
- Quello che ha fatto ieri.
- Cosa ha in programma di fare oggi.
- Eventuali difficoltà incontrate durante il percorso di sviluppo
Sprint Review: concluso lo Sprint questo è il momento in cui mostri agli stakeholder, e a tutte le altre parti interessate, ciò che hai realizzato.
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. Qui si riflette su cosa è andato bene e cosa è andato storto durante lo Sprint, con l'obiettivo di migliorare il proprio team e il flusso di lavoro Agile per il prossimo Sprint.
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.
Se ti senti totalmente sopraffatto da tutte queste informazioni, non sei solo. Affrontare un'implementazione di Scrum può essere scoraggiante, motivo per cui così tante persone si affidano a coach e consulenti Scrum per aiutarli.
Le persone che praticano Scrum da anni trovano ancora modi per migliorare e adattarsi, quindi non stressarti per sapere tutto prima di iniziare.
Non preoccuparti se la policy di Scrum ti farà notare se hai sbagliato un passaggio o dimenticato una cerimonia. Fai il primo passo e fai del tuo meglio per migliorare sempre di più le successive iterazioni. Alcuni team hanno anche riscontrato successo combinando il meglio di Scrum con altre metodologie. Ciò che conta di più è che la tua metodologia funzioni per il tuo team.