3. We’re losing the relay race
“L’approccio ‘a staffetta’ allo sviluppo dei
prodotti ...può entrare in conflitto con gli
obettivi di massima velocità e flessibilità.
Invece, un approccio olistico o ‘rugbystico’ -
in cui un team cerca di coprire la distanza
come un’unità, passandosi la palla a vicenda -
puà servire meglio gli odierni requisiti di
competitività.” Hirotaka Takeuchi e Ikujiro Nonaka, “The
New New Product Development Game”,
Harvard Business Review, January 1986.
Mountain Goat Software, LLC
4. Scrum in 100 parole
• Scrum è un processo agile che ci permette di
concentrarci sulla consegna del maggior valore
business nel più breve tempo.
• Ci permette di ispezionare software funzionante
rapidamente e ripetutamente (ogni due settimane o
ogni mese)
• Il business stabilisce le priorità. I team si organizzano
per scegliere la strada migliore per consegnare le
funzionalità a priorità più alta.
• Ogni due settimane o ogni mese, chiunque può vedere
il software funzionante e decidere se rilasciarlo così
com’è o continuare a migliorarlo per un altro sprint.
Mountain Goat Software, LLC
5. Origini di Scrum
• Jeff Sutherland
• Primi scrum presso Easel Corp nel 1993
• IDX e 500+ persone applicano Scrum
• Ken Schwaber
• ADM
• Presenta Scrum a OOPSLA 96 insieme a
Sutherland
• Autore di tre libri su Scrum
• Mike Beedle
• Scrum patterns in PLOPD4
• Ken Schwaber and Mike Cohn
• Fondano la Scrum Alliance nel 2002, inizialmente
all’interno dell’Agile Alliance
Mountain Goat Software, LLC
6. Scrum è stato usato da:
• Microsoft • Nielsen Media
• Yahoo • First American Real Estate
• Google • BMC Software
• Electronic Arts • Ipswitch
• IBM • John Deere
• Lockheed Martin • Lexis Nexis
• Philips • Sabre
• Siemens • Salesforce.com
• Nokia • Time Warner
• Capital One • Turner Broadcasting
• BBC • Oce
• Intuit
Mountain Goat Software, LLC
7. Scrum è stato usato per:
• Software commerciale • Sviluppo di videogames
• Sviluppo software in-house • Sistemi life-critical approvati
dall’FDA (Food & Drug
• Sviluppo per conto terzt Administration)
• Progetti “a corpo”
• Software di controllo satellitare
• Applicazioni finanziarie
• Siti web
• Applicazioni certificate ISO
• Software per dispositivi
9001 handheld
• Sistemi embedded
• Telefoni cellulari
• Sistemi 24x7 con requisiti di
• Applicazioni di Network
99.999% switching
Finire
• Il Joint Strike Fighter
• Applicazioni di produttori di
software indipendenti
Mountain Goat Software, LLC
8. Caratteristiche
• Team che si organizzano da soli
• Progressi del prodotto in una serie di “sprint”
lunghi 2 settimane - 1 mese
• I requisiti sono catturati come voci in un elenco:
“product backlog”
• Non sono prescritte pratiche ingegneristiche
specifiche.
• Usa regole generative per creare un ambiente agile
che produca progetti
Mountain Goat Software, LLC
9. The Agile Manifesto – una
dichiarazione di valori
Individui ed interazioni più che Processi e strumenti
Fonte: www.agilemanifesto.org
Mountain Goat Software, LLC
10. The Agile Manifesto – una
dichiarazione di valori
Individui ed interazioni più che Processi e strumenti
Documentazione
Software funzionante più che
esaustiva
Fonte: www.agilemanifesto.org
Mountain Goat Software, LLC
11. The Agile Manifesto – una
dichiarazione di valori
Individui ed interazioni più che Processi e strumenti
Documentazione
Software funzionante più che
esaustiva
Collaborazione con il Negoziazione dei
più che
cliente contratti
Fonte: www.agilemanifesto.org
Mountain Goat Software, LLC
12. The Agile Manifesto – una
dichiarazione di valori
Individui ed interazioni più che Processi e strumenti
Documentazione
Software funzionante più che
esaustiva
Collaborazione con il Negoziazione dei
più che
cliente contratti
Rispondere al più che Seguire un piano
cambiamento
Fonte: www.agilemanifesto.org
Mountain Goat Software, LLC
13. Livello di rumore del progetto
Lontani da un accordo
Anarchia
Complessi
requisiti
Co
m
pli
ca Fonte: Strategic Management and
ti Organizational Dynamics by Ralph Stacey in
Agile Software Development with Scrum by
Semplici Ken Schwaber and Mike Beedle.
Vicini ad un accordo
Tecnologia
Consolidata
Incerta
Mountain Goat Software, LLC
18. Scrum
Sprint
2-4 settimane
Sprint goal
Return
Sprint Incremento del prodotto
backlog potenzialmente rilasciabile
Gift wrap
Cancel
Product
backlog
Mountain Goat Software, LLC
19. Scrum
Sprint
2-4 settimane
Sprint goal
Return
Sprint Incremento del prodotto
backlog potenzialmente rilasciabile
Gift wrap
Cancel Coupons
Product
backlog
Mountain Goat Software, LLC
20. Scrum
Sprint
2-4 settimane
Sprint goal
Return
Sprint Incremento del prodotto
Cancel backlog potenzialmente rilasciabile
Coupons
Gift wrap
Product
backlog
Mountain Goat Software, LLC
21. Scrum 24 ore
Sprint
2-4 settimane
Sprint goal
Return
Sprint Incremento del prodotto
Cancel backlog potenzialmente rilasciabile
Coupons
Gift wrap
Product
backlog
Mountain Goat Software, LLC
22. Putting it all together
Immagine
disponibile presso
www.mountaingoatsoftware.com/scrum
Mountain Goat Software, LLC
23. Sprints
• I progetti Scrum fanno progressi in una serie di
“sprint”
• Analoghi alle iterazioni di Extreme Programming
• La durata tipica è in genere di 2–4 settimane o un
mese di calendario.
• Una durata costante, permette una migliore
cadenza
• Il prodotto è progettato, realizzato e testato
durante lo sprint
Mountain Goat Software, LLC
24. Sviluppo sequenziale o
sovrapposto?
Requisiti Design Codice Test
Anziché fare una cosa
sola alla volta...
...gli Scrum team fanno un
po’ di tutto, tutto il tempo
Fonte: “The New New Product Development Game” by Takeuchi
and Nonaka. Harvard Business Review, January 1986.
Mountain Goat Software, LLC
25. Non si cambia durante lo sprint
Cambiamenti
• Stabiliamo la durata degli sprint sulla base di
quanto possiamo mantenere i cambiamenti
all’esterno di un singolo sprint.
Mountain Goat Software, LLC
28. Product owner
• Define the features of the product
• Decide on release date and content
• Be responsible for the profitability of the
product (ROI)
• Prioritize features according to market value
• Adjust features and priority every iteration, as
needed
• Accept or reject work results
Mountain Goat Software, LLC
29. The ScrumMaster
• Represents management to the project
• Responsible for enacting Scrum values and
practices
• Removes impediments
• Ensure that the team is fully functional and
productive
• Enable close cooperation across all roles and
functions
• Shield the team from external interferences
Mountain Goat Software, LLC
30. The team
• Typically 5-9 people
• Cross-functional:
• Programmers, testers, user experience designers, etc.
• Members should be full-time
• May be exceptions (e.g., database administrator)
• Teams are self-organizing
• Ideally, no titles but rarely a possibility
• Membership should change only between sprints
Mountain Goat Software, LLC
32. Sprint planning meeting
Capacità
del team
Product
backlog
Condizioni
Business
Prodotto
attuale
Tecnologia
Mountain Goat Software, LLC
33. Sprint planning meeting
Capacità
del team Prioritizzazione Sprint
• Analizzare e valutare il product
Product backlog
backlog • Selezionare gli obiettivi dello
sprint
Condizioni
Business
Prodotto
attuale
Tecnologia
Mountain Goat Software, LLC
34. Sprint planning meeting
Capacità
del team Prioritizzazione Sprint
• Analizzare e valutare il product Sprint
Product backlog
backlog • Selezionare gli obiettivi dello goal
sprint
Condizioni
Business
Prodotto
attuale
Tecnologia
Mountain Goat Software, LLC
35. Sprint planning meeting
Capacità
del team Prioritizzazione Sprint
• Analizzare e valutare il product Sprint
Product backlog
backlog • Selezionare gli obiettivi dello goal
sprint
Condizioni
Pianificazione Sprint
Business
• Decidere come raggiungere gli
Prodotto obiettivi (design)
attuale • Creare lo sprint backlog (tasks)
partendo dagli Item del product
backlog (user stories / features)
Tecnologia • Stimare lo sprint backlog in ore
Mountain Goat Software, LLC
36. Sprint planning meeting
Capacità
del team Prioritizzazione Sprint
• Analizzare e valutare il product Sprint
Product backlog
backlog • Selezionare gli obiettivi dello goal
sprint
Condizioni
Pianificazione Sprint
Business
• Decidere come raggiungere gli
Prodotto obiettivi (design) Sprint
attuale • Creare lo sprint backlog (tasks)
partendo dagli Item del product backlog
backlog (user stories / features)
Tecnologia • Stimare lo sprint backlog in ore
Mountain Goat Software, LLC
37. Sprint planning
• Il Team seleziona dal product backlog gli item che può
impegnarsi a completare
• Viene creato lo Sprint backlog
• Vengono identificati i Tasks, e ciascuno di questi viene stimato
(1-16 ore)
• Collaborativamente, non dallo ScrumMaster in solitudine
• Consideriamo anche il design di alto livello
Scrivere lo strato business (8
Come pianificatore ore)
di vacanze, voglio Scrivere l’interfaccia utente (4)
vedere le foto degli Scrivere le test fixtures (4)
Scrivere la classe pippo(6)
alberghi. Aggiornare i performance tests
(4)
Mountain Goat Software, LLC
38. Il daily scrum (la mischia quotidiana)
• Parametri
• Tutti i giorni
• 15-minuti
• In piedi
• Non è per risolvere i problemi
• Sono tutti invitati
• Solo i membri del team, lo Scrum Master ed il
Product owner hanno diritto di parola.
Mountain Goat Software, LLC
39. Ogni membro del team risponde a 3 domande:
1
Cos’hai fatto ieri?
2
Cosa farai oggi?
C’è qualcosa che ti impedisce di 3
farlo?
• Queste non sono un report per lo ScrumMaster
• Sono impegni presi di fronte ai colleghi
Mountain Goat Software, LLC
40. La sprint review
• Il team presenta i risultati raggiunti durante lo
sprint
• Di solito, il formato è quello di una demo delle
nuove funzionalità o dell’architettura
sottostante.
• Informale
• Regola:2 ore di preparazione
• Niente slides
• Tutto il team partecipa
• Invitate il mondo
Mountain Goat Software, LLC
41. Sprint retrospective
• Periodicamente diamo un occhiata a cosa sta
funzionando e cosa no.
• Tipicamente da15 a 30 minuti
• Fatta al termine di ogni sprint
• Partecipa tutto il team
• ScrumMaster
• Product Owner
• Team
• Possibilmente anche i clienti ed altri ruoli coinvolti
Mountain Goat Software, LLC
42. Start / Stop / Continue
• Tutto il team si raduna e discute cose che
vorrebbero:
Iniziare a fare
Smettere di fare
Questo è solo
uno fra molti Continuare a fare
modi di fare una
retrospettiva
Mountain Goat Software, LLC
44. Product backlog
• I requisiti
• Una lista di tutto il lavoro
richiesto sul progetto
• Idealmente espresso in modo
tale che ogni item abbia valore
per gli utenti o i clienti del
prodotto
• La priorità degli item è stabilita
dal Product Owner
Questo è il
• La priorità è aggiornata
all’inizio di ogni sprint
product backlog
Mountain Goat Software, LLC
45. Esempio di product backlog
Backlog item Stima
Permettere ad un ospite di effettuare una
3
prenotazione
Come ospite, voglio cancellare una prenotazione. 5
Come ospite, voglio cambiare le date di una
3
prenotazione.
Come impiegato dell’hotel, posso lanciare i report
RevPAR (Revenue Per Available Room = Fatturato 8
per camera disponibile)
Migliorare la gestione delle eccezioni 8
... 30
... 50
Mountain Goat Software, LLC
46. Sprint goal
• Una breve indicazione dell’obiettivo principale
dello Sprint
Life Sciences
Supportare le features
Database Application necessarie per gli studi genetici
sulla popolazione
Fare girare l’applicazione anche
su SQL Server oltre che su
Oracle. Financial services
Supportare più indicatori
tecnici di quanto faccia ABC
con dati in tempo reale.
Mountain Goat Software, LLC
47. Gestire lo sprint backlog
• I singoli individui prendono in carico un compito a loro scelta
• Il lavoro non è mai assegnato
• La stima del lavoro rimanente è aggiornata ogni giorno
• Ciascun membro del team può aggiungere, cancellare o
cambiare lo sprint backlog
• Il lavoro necessario per lo sprint emerge
• Se il lavoro non è chiaro, definire un item dello sprint backlog
di dimensione maggiore da scomporre successivamente
• Aggiornare il lavoro rimanente man mano che questo viene
riconosciuto
Mountain Goat Software, LLC
48. Uno sprint backlog
Tasks Lun Mar Mer Gio Ven
Scrivere la UI 8
Scrivere il middle tier 16
Testare il middle tier 8
Scrivere l’help online 12
Scrivere la classe foo 8
Mountain Goat Software, LLC
49. Uno sprint backlog
Tasks Lun Mar Mer Gio Ven
Scrivere la UI 8 4
Scrivere il middle tier 16 12
Testare il middle tier 8 16
Scrivere l’help online 12
Scrivere la classe foo 8 8
Mountain Goat Software, LLC
50. Uno sprint backlog
Tasks Lun Mar Mer Gio Ven
Scrivere la UI 8 4 8
Scrivere il middle tier 16 12 10
Testare il middle tier 8 16 16
Scrivere l’help online 12
Scrivere la classe foo 8 8 8
Logging degli errori 8
Mountain Goat Software, LLC
51. Uno sprint backlog
Tasks Lun Mar Mer Gio Ven
Scrivere la UI 8 4 8
Scrivere il middle tier 16 12 10 4
Testare il middle tier 8 16 16 11
Scrivere l’help online 12
Scrivere la classe foo 8 8 8 8
Logging degli errori 8 4
Mountain Goat Software, LLC
52. Uno sprint backlog
Tasks Lun Mar Mer Gio Ven
Scrivere la UI 8 4 8
Scrivere il middle tier 16 12 10 4
Testare il middle tier 8 16 16 11 8
Scrivere l’help online 12
Scrivere la classe foo 8 8 8 8 8
Logging degli errori 8 4
Mountain Goat Software, LLC
54. Tasks Lun Mar Mer Gio Ven
Scrivere la UI 8
Scrivere il middle tier 16
Testare il middle tier 8
Scrivere l’help online 12
50
40
30
Hours
20
10
0
Lun Mar Mer Gio Ven
Mountain Goat Software, LLC
55. Tasks Lun Mar Mer Gio Ven
Scrivere la UI 8
Scrivere il middle tier 16
Testare il middle tier 8
Scrivere l’help online 12
50
40
30
Hours
20
10
0
Lun Mar Mer Gio Ven
Mountain Goat Software, LLC
56. Tasks Lun Mar Mer Gio Ven
Scrivere la UI 8
Scrivere il middle tier 16
Testare il middle tier 8
Scrivere l’help online 12
50
40
30
Hours
20
10
0
Lun Mar Mer Gio Ven
Mountain Goat Software, LLC
57. Tasks Lun Mar Mer Gio Ven
Scrivere la UI 8 4
Scrivere il middle tier 16 12
Testare il middle tier 8 16
Scrivere l’help online 12
50
40
30
Hours
20
10
0
Lun Mar Mer Gio Ven
Mountain Goat Software, LLC
58. Tasks Lun Mar Mer Gio Ven
Scrivere la UI 8 4
Scrivere il middle tier 16 12
Testare il middle tier 8 16
Scrivere l’help online 12
50
40
30
Hours
20
10
0
Lun Mar Mer Gio Ven
Mountain Goat Software, LLC
59. Tasks Lun Mar Mer Gio Ven
Scrivere la UI 8 4
Scrivere il middle tier 16 12
Testare il middle tier 8 16
Scrivere l’help online 12
50
40
30
Hours
20
10
0
Lun Mar Mer Gio Ven
Mountain Goat Software, LLC
60. Tasks Lun Mar Mer Gio Ven
Scrivere la UI 8 4 8
Scrivere il middle tier 16 12 10 7
Testare il middle tier 8 16 16 11 8
Scrivere l’help online 12
50
40
30
Hours
20
10
0
Lun Mar Mer Gio Ven
Mountain Goat Software, LLC
61. Scalabilità
• Il tipico team è formato da 7 ± 2 persone
• La scalabilità viene ottenuta con team di team
• Fattori chiave per la scalabilità
• Tipo di applicazione
• Dimensione del team
• Dispersione del team
• Durata del progetto
• Scrum è stato usato su diversi progetti
coinvolgenti più di 500 persone
Mountain Goat Software, LLC
68. Letture consigliate:
• Agile and Iterative Development: A Manager’s Guide di Craig Larman
• Agile Estimating and Planning di Mike Cohn
• Agile Project Management with Scrum di Ken Schwaber
• Agile Retrospectives di Esther Derby e Diana Larsen
• Agile Software Development Ecosystems di Jim Highsmith
• Agile Software Development with Scrum di Ken Schwaber e
Mike Beedle
• Scrum and The Enterprise di Ken Schwaber
• User Stories Applied for Agile Software Development di Mike Cohn
• Un sacco di articoli su www.scrumalliance.org
Mountain Goat Software, LLC
69. Copyright notice
Siete liberi:
• di Condividere―di copiare, distribuire e trasmettere il presente
lavoro
• di Riassemblare―di adattare il presente lavoro
Alle seguenti condizioni
• Attribuzione. L’opera deve essere attribuita nel modo specificato
dall’autore o dal detentore della licenza (ma in nessun modo tale
da suggerire che questi approvino voi o l’uso che fate dell’opera).
Nulla in questa licenza indebolisce o impone restrizioni i diritti
morali dell’autore.
Mountain Goat Software, LLC
70. Contatti:
Presentazione di: Mike Cohn
mike@mountaingoatsoftware.com
www.mountaingoatsoftware.com
(720) 890-6110 (office)
Siete liberi di rimuo vere
questa (o una qualsiasi)
slide ma per favore
attribuitene la fonte da
qualche parte nella
vostra presentazione
Mountain Goat Software, LLC
Notas do Editor
Sono presenti due versioni della slide copertina, usate quella che preferite\n
\n
would be nice to include a quote from Wicked Problems here\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Il termine capacità non è relativo agli skills, ma inteso come capacità di contenimento.\n
Il termine capacità non è relativo agli skills, ma inteso come capacità di contenimento.\n
Il termine capacità non è relativo agli skills, ma inteso come capacità di contenimento.\n
Il termine capacità non è relativo agli skills, ma inteso come capacità di contenimento.\n