Storia di Scrum
Dalla pubblicazione del rapporto "Managing the Development of Large Software Systems" di Winston Royce nel 1970, molti hanno cercato di trovare una metodologia che potesse eliminare gli svantaggi del modello di sviluppo Waterfall. Un'alternativa alla "cascata" era il metodo Scrum, di cui parleremo ora.
Scrum ha preso il nome nel 1986 dal lavoro di Takeuchi e Nonaki The New Rules for New Product Development. Questo documento sostiene che il modo più efficace per raggiungere l'obiettivo è fornire agli sviluppatori un chiaro piano d'azione.
Nel 1995 apparve un'altra guida, "Software Development with Scrum", di Sutherland e Schweiber. Da allora questa pubblicazione è stata aggiornata più volte. Ora è considerata la guida principale per lo sviluppo di questo metodo. L'attuale versione della Scrum Guide contiene informazioni aggiornate nel 2020.
Le principali disposizioni della Scrum Guide suggeriscono che il modello di gestione del progetto dovrebbe essere basato sul fatto che gli sviluppatori consegnano il prodotto finito entro il periodo di tempo concordato: gli sprint. Per la corretta implementazione di Scrum, si consiglia di utilizzare una struttura composta da diversi elementi: ruoli, eventi, regole e artefatti.
Ruoli in Scrum
Ci sono tre ruoli in Scrum, ognuno dei quali forma un team Scrum:
Il cliente del prodotto software è la persona più importante nel progetto, perché solo lui ne comprende appieno il valore per l'azienda. Il cliente spiega agli sviluppatori le esigenze degli utenti del prodotto futuro, ma non è responsabile della parte tecnica del processo di sviluppo. Il cliente determina anche la priorità durante la creazione di determinati elementi o funzioni nel prodotto.
Agli sviluppatori è affidata l'implementazione di compiti tecnici, la cui interfunzionalità dipende dall'ambito di applicazione. Gli sviluppatori sono impegnati a creare lo sprint backlog, a scrivere il codice, ad adattare il progetto all'obiettivo dello sprint e ad altre attività.
Lo Scrum Master è il facilitatore del team Scrum. Fornisce assistenza al cliente e agli sviluppatori. In poche parole, lo Scrum Master è impegnato a comunicare tra coloro che non sono coinvolti nel progetto e le persone che scrivono il codice. A volte diversi team di programmatori nella stessa grande azienda comunicano e si coordinano nelle riunioni generali degli scrum master di questi team.
Eventi in Scrum
Esistono 5 tipi di eventi di mischia:
Lo Sprint è la parte più significativa di Scrum. Include la pianificazione dello sprint, i daily stand-up (daily scrum), la revisione e la retrospettiva dello sprint.
Pianificazione dello sprint. Tutti i membri del team Scrum partecipano alla stesura di un piano per lo sprint futuro. È qui che viene presentata l'idea del prodotto e ogni membro del team può esprimere la sua opinione, cosa ne pensa. Quindi, durante la riunione, vengono determinate le priorità e vengono annunciate le scadenze.
Daily Scrum è un evento giornaliero di short scrum, della durata massima di 15 minuti. Di solito è fatto per pianificare il lavoro degli encoder per oggi o domani. Al Daily Scrum puoi discutere di questioni attuali. Tutti gli sviluppatori coinvolti nel progetto sono tenuti a partecipare a tale workshop. La presenza di uno Scrum Master è consentita, ma non obbligatoria.
Sprint Review (Demo) - Mostra i risultati creati durante lo sprint. Di solito questo evento si svolge nella fase finale. Vi prendono parte tutte le persone interessate.
Sprint Retrospective - discussione dei risultati dello sprint. I membri del team condividono la loro opinione su come hanno affrontato i compiti loro assegnati e su come migliorare i risultati del lavoro in futuro.
Inoltre, a volte viene eseguito il perfezionamento del backlog: perfezionamento del backlog. Discute gli elementi del backlog, la preparazione per il prossimo sprint e l'assegnazione delle priorità alle attività correnti.
Artefatti
Gli artefatti di Scrum sono il lavoro che avviene alla fine di un progetto o di uno sprint. Esistono tre artefatti: il product backlog, lo sprint backlog e l'incremento. Ciascuno di essi è necessario per la consegna tempestiva del software agli utenti. Ci sono anche artefatti ausiliari (carte bruciate e altro).
Componenti inclusi negli artefatti dello sprint:
Product backlog: interfaccia e funzionalità di backend.
Uno sprint backlog è un elenco di attività che devono essere eseguite durante un'iterazione. Sono concordati prima dell'inizio dello sprint.
Incremento: il numero totale di elementi del backlog software creati durante lo sprint e il valore degli incrementi effettuati prima di esso. Il nuovo incremento finito deve essere mostrato prima della fine dello sprint. Ciò significa che hai una versione funzionante che soddisfa i requisiti del team di mischia.
Elemento del backlog del prodotto: deve essere completato durante l'iterazione dello sprint. Di norma, l'elemento è suddiviso in diversi piccoli compiti.
L'obiettivo dello sprint sono le attività che devono essere completate (creare un elemento del backlog o un'altra attività).
Uno sprint burndown è il lavoro rimasto prima della fine dello sprint. Il grafico di burn down è ascendente o discendente. Tutto dipende dalle difficoltà che i membri del team devono affrontare durante il lavoro. Non è un indicatore di progresso, ma solo un modo per risolvere i problemi e uno stimolo.
Product Release/Product Burn-Down Chart è un grafico disegnato dallo Scrum Master prima della fine dello sprint successivo. L'asse orizzontale è lo sprint, l'asse verticale è la quantità di lavoro rimanente.
Regole del framework Scrum
Ruoli, eventi e artefatti sono alla base di Scrum, ma ci sono altre regole oltre a questa. Tutti migliorano l'efficienza del processo di lavoro. Ecco un elenco di tali regole:
- Il team di scrum include il cliente del software, lo scrum master e gli sviluppatori.
- Tutti gli sprint dovrebbero essere della stessa lunghezza.
- Dopo aver completato uno sprint, inizia immediatamente il lavoro su uno nuovo.
- Uno sprint inizia sempre con un piano.
- I membri del team hanno una mischia mattutina all'inizio della loro giornata lavorativa.
- Ogni sprint viene rivisto durante ogni sprint. Ciò migliora la comunicazione tra il team e le parti interessate.
- Non è consigliabile modificare lo sprint backlog durante lo sprint.
Limitazioni in Scrum
Insieme agli ovvi vantaggi, Scrum presenta anche degli svantaggi:
- Scrum porta spesso a una diminuzione della quantità di lavoro svolto a causa della mancanza di una scadenza comune.
- Con uno scarso coinvolgimento o mancanza di volontà di cooperare tra i partecipanti al progetto, ci sono notevoli possibilità di fallire il risultato.
- La struttura Scrum è difficile da usare in team di grandi dimensioni, ma è comunque possibile. Esistono framework di ridimensionamento per questo: LeSS, SAFe, Nexus e altri.
- La partenza di uno o più membri del team nel bel mezzo del progetto non influisce molto bene sul progetto.
GO TO FULL VERSION