Introduzione a Scrum 1 1 1
Stiamo perdendo la staffetta... Hirotaka Takeuchi and Ikujiro Nonaka, “The New Product Development Game”, Harvard Business Review, January 1986. “l'approccio a 'staffetta' nello sviluppo di un prodotto... potrebbe entrare in conflitto con l'obiettivo di massimizzare flessibilità & velocità. Al contrario, un approccio “olistico” (a mischia stile rugby), dove una squadra cerca di avanzare un passo alla volta, potrebbe essere più funzionale per centrare i requisiti di competitività.” would be nice to include a quote from Wicked Problems here 2 2 2
Caratteristiche fondamentali Team auto-organizzati e auto-gestiti Sviluppo del prodotto suddiviso in “scatti” mensili (sprint) Requisiti selezionati “autonomamente” dal Team da un contenitore di oggetti (product backlog) relativi al prodotto in sviluppo Attività, necessarie nello Sprint per realizzare i requisiti selezionati, elencate in uno “Sprint backlog” Piena libertà nella scelta delle pratiche ingegneristiche Uso di un “generatore di regole” necessario alla creazione di un ambiente “agile”
Visione complessiva 24 ore Sprint 2-4 settimane Obiettivo sprint Fatto Attività Sprint Backlog Requisiti accumulati Product Backlog 4 4 4
Gli sprint I progetti si evolvono in una serie di “sprint” Durata tipica da due a quattro settimane La costanza di questo periodo influisce positivamente sul ritmo Progettazione, sviluppo e testing L'analisi e la scelta (obiettivi) dei requisiti viene svolta prima dello “sprint”
Atomicità dello sprint Le attività contenute nello “Sprint backlog” non possono essere modificate durante lo sprint stesso Modifica
Scrum framework Ruoli Riunioni Documenti Product Owner Scrum Master Team Ruoli Pianificazione Sprint Revisione Sprint Analisi Sprint Riunione quotidiana Riunioni Product Backlog Sprint Backlog Release/Sprint Burndown Documenti 7 7 7
I RUOLI 8 8 8
Product Owner Definisce i requisiti del prodotto Continua interazione con il committente Decide le date di rilascio ed i contenuti E' responsabile del valore del prodotto Stabilisce le priorità dei requisiti nello sviluppo In accordo alle necessità di mercato Accetta o rigetta i risultati del lavoro
Scrum Master È il Team Leader Interfaccia il management con il team E' responsabile nell'implementare la cultura Scrum nel Team Rimuove eventuali impedimenti Assicura la produttività al team Lo protegge da interferenze esterne Permette la cooperazione tra i ruoli e le funzioni
Il team Ristretto Cross-funzionale Focalizzato sull'obiettivo Formato tipicamente da 5-9 unità Cross-funzionale Per esempio, nello sviluppo SW, programmatori, disegnatori, tester, progettisti di interfacce, etc. Focalizzato sull'obiettivo Tutti i membri sono a tempo pieno Però si ammettono eccezioni
Il team (cont) Auto-organizzato Coerente Nessuna denominazione specifica Componenti liberi da ogni vincolo organizzativo Coerente La composizione può cambiare soltanto tra uno sprint e il successivo Il team si forma prima di ogni nuova iterazione ma tendenzialmente dovrebbe essere stabile
LE RIUNIONI 13 13 13
Pianificazione sprint Capacità della squadra Analisi (4 ore) Analizzare e valutare i requisiti di prodotto Selezionare obiettivo dello sprint Obiettivo Lista requisiti Condizioni economiche Progettazione (4 ore) Decidere come raggiungere l'obiettivo Creare lista di azioni da intraprendere in base ai requisiti Stimare la durata (in ore) delle azioni che vanno intraprese Prodotto corrente Azioni Tecnologia 14 14 14
Pianificazione sprint (cont) Il team seleziona le funzionalità che è in grado di realizzare nello sprint Viene creata la lista di azioni da intraprendere (sprint backlog) Ciascuna attività viene identificata e temporalmente stimata (durata max attività 16 ore) Lavoro collaborativo Codifica del middle tier (8 ore) Codifica dell'interfaccia utente (4) Scrittura configurazioni di test (4) Codifica della classe “paperino” (6) Aggiornamento dei test di performance (4) Esempio: in un'applicazione (SW) per pianificare vacanze, vorrei vedere le foto degli alberghi.
Riunione giornaliera Caratteristiche Quotidiana 15 minuti In piedi Non deve risolvere i problemi ma evidenziarli Aperta agli esterni Solo i membri del team, lo scrum master ed il product owner hanno diritto di parola È l’unico tipo di riunioni ammesso durante lo sprint
Riunione giornaliera (cont) Ciascun membro del team si pone le tre seguenti domande: Cosa hai fatto ieri? Cosa farai oggi? Problemi incontrati / incontrabili? Queste risposte non servono per “controllo” ma per stimolare il confronto fra Idee Sono semplici resoconti fatti alla platea
Scrum-Ban Applicazione della tecnica Kanban nel ambito del Framework Scrum (Scrum non limita gli item per stato in quanto ha un numero totale di item limitato, limita il tempo) Rappresentazione visiva delle operazioni: Da svolgere In svolgimento Concluse
Revisione dello sprint Il team presenta i risultati ottenuti durante lo sprint Ad esempio in ambito SW, una demo di nuove funzionalità o un’ innovazione architetturale, .. Informale Durata di circa due ore Senza diapositive Partecipazione di tutti i membri del team Aperta agli esterni
Analisi dello sprint Periodico controllo di verifica Cosa funziona e cosa ancora no Durata di circa 15 / 30 minuti Eseguito dopo ogni sprint, prima del successivo Partecipazione di tutte le persone coinvolte Product owner Scrum master Team Etc.
Analisi dello sprint (cont) Confronto tra i partecipanti sulle attività da: Intraprendere Abbandonare Continuare Esistono tanti modi per eseguire l'analisi dello sprint
I DOCUMENTI (Artefatti) 22 22
Questa è la rappresentazione Product Backlog Contenitore di “requisiti”, funzionali e non, che rappresentano un valore per il committente Aggiornato in modo continuo Priorità stabilite dal product owner Prima di ogni sprint Analisi dei requisiti da soddisfare effettuata prima di ogni sprint Produce la lista delle attività da eseguire Questa è la rappresentazione
Sprint Backlog Contenitore delle attività necessarie ad implementare i requisiti del product backlog selezionati Sono stabilite durante la pianificazione dello sprint Ciascun membro del team Sceglie il lavoro da fare e ne è responsabile I compiti non devono mai essere assegnati Stima quotidianamente quanto lavoro rimane
Questa è la rappresentazione Sprint Backlog La durata dello sprint può essere eventualmente allungata Questa è la rappresentazione
Sprint Burndown Rappresentazione grafica delle ore necessarie al team per ogni giorno della settimana
Scalabilità Un progetto può essere sviluppato da molteplici “scrum” team in “gerarchia” Fattori di scalabilità Tipologia di applicazione Dimensione dei team Dispersione dei team Durata del progetto Esistono esempi di progetti che hanno coinvolto più di 500 persone
Scrum degli scrum 28 28 28
Scrum degli scrum (cont) 29 29 29