Scrum è un framework Agile ampiamente utilizzato per lo sviluppo di prodotti complessi, specialmente nel contesto del software. Questo framework si basa su principi di trasparenza, ispezione e adattamento e promuove il lavoro collaborativo in team multidisciplinari e auto-organizzanti. Ecco alcuni concetti chiave e ruoli di Scrum:
-
Product Owner:
- Rappresenta gli interessi degli stakeholder e definisce le caratteristiche del prodotto.
- Responsabile di prioritizzare il backlog del prodotto e di assicurare che il team stia sviluppando valore aziendale.
-
Scrum Master:
- Facilita il processo Scrum, rimuove gli ostacoli e aiuta il team a seguire le pratiche Scrum.
- Si occupa della gestione dell'ambiente di lavoro in modo che il team possa operare in modo efficiente.
-
Team di Sviluppo:
- Il team multidisciplinare e auto-organizzante responsabile dello sviluppo del prodotto.
- Coinvolto nella pianificazione, nella progettazione, nella codifica, nei test e nella consegna delle funzionalità.
-
Product Backlog:
- Un elenco prioritizzato di tutte le funzionalità, miglioramenti e correzioni di bug che compongono il lavoro da fare sul prodotto.
- Gestito dal Product Owner e soggetto a modifiche in base alle necessità.
-
Sprint Backlog:
- Un insieme di attività specifiche selezionate dal Product Backlog per essere sviluppate durante uno sprint.
- Gestito dal team di sviluppo.
-
Incremento:
- La somma di tutte le attività completate durante uno sprint, che costituisce una versione incrementale del prodotto.
- L'obiettivo è produrre un incremento di valore al termine di ogni sprint.
-
Sprint Planning:
- Riunione all'inizio di ogni sprint in cui il team di sviluppo e il Product Owner collaborano per selezionare gli elementi del Product Backlog da sviluppare durante lo sprint.
-
Daily Scrum:
- Riunione quotidiana di breve durata in cui il team di sviluppo si coordina e affronta gli ostacoli.
- Facilita la comunicazione e la collaborazione all'interno del team.
-
Sprint Review:
- Riunione alla fine di ogni sprint in cui il team di sviluppo dimostra l'incremento di lavoro completato.
- Coinvolge anche una sessione di feedback e pianificazione per il prossimo sprint.
-
Sprint Retrospective:
- Riunione alla fine di ogni sprint in cui il team riflette sulle pratiche e identifica opportunità di miglioramento.
- Aiuta il team a imparare dagli sprint precedenti e a continuare a migliorare.
Scrum è noto per la sua flessibilità e adattabilità, il che lo rende adatto a progetti in evoluzione e dinamici. Promuove la trasparenza e la responsabilità, incoraggiando il team a risolvere problemi e ad adattarsi rapidamente alle mutevoli esigenze del progetto.
AGILE != waterfall
- individui + che processi
- software funzionante
- collaborazione
- rispondere al cambiamento più che seguire un piano
- controllo empirico dei processi
- trasparenza: mostrare tutti gli aspetti del lavoro
- ispezione: frequente controllo del prodotto
- adattamento: capacità di rispondere tempestivamente alla mutate condizioni
Scrum team
- Scrum Master: responsabile del processo (servant leader), favorisce il lavoro del team rimuovendo gli ostacoli
- Product owner: conosce tutti i requisiti del prodotto, organizza ordine lavori. Definisce il lavoro
- Team di sviluppo: gruppo cross-funzionale auto-organizzato, da 3 a 9 persone, Coloro che concretamente portano a termine gli Sprint. Ogni membro è responsabile dell'intero sviluppo
- Product backlog: lista di tutti i requisiti, elementi che servono nel prodotto
- Sprint backlog: lista dei task di ciascuno sprint
- Incremento: somma degli elementi completati
- Sprint planning: PO con tutto lo Scrum team descrive gli item principali
- Daily SCRUM: breve confronto giornaliero tra TS e SM(15min, in piedi)
- Sprint review: revisione per valutare raggiungimento obiettivo
- Sprint retrospective: cosa continuare a fare e cosa smettere di fare...
- velocità di esecuzione
- minore dispersione di risorse
- migliore relazione con i clienti
- migliore soddisfazione finale
- responsabilizzazione
- visibilità del lavoro fatto da ciascuno
- pianificazione migliore
- allineamento con il business
- soluzione problemi migliore
- User story: le singole voci del PB, brevi e semplici descrizioni di una funzionalità (dal punto di vista dell'utente/cliente)
In qualità di <tipo>, voglio <obiettivo>, in modo da <motivo>
- Epic: User story particolarmente complessa e generica
- Sprint goal: si definisce l'obiettivo dello sprint
- cioè il lavoro che deve essere fatto
- in continua evoluzione
- ogni giorno si tiene traccia del lavoro svolto e di quello che si deve ancora fare
- aggiungere o eliminare task
- la somma di tutte le funzionalità completate in uno sprint
- Definition of done: definire cosa si intende per 'fatto' (done)
- durata 2/4 settimane per realizzare un mini progetto che rappresenta un incremento
- durata fissa: si conclude anche se non ho portato a termine tutti gli obiettivi
- eventi
- sprint planning
- daily scrum
- sprint review
- sprint retrospective