SlideShare a Scribd company logo
1 of 19
Sistemi Informativi Ges 1 
AgileDay 2006 - Essere agili nel diventare 
agili 
Maranello, Dicembre 2006 
Luca Minudel lminudel@ferrari.it 
Nicola Canalini ncanalini@ferrari.it 
Piergiorgio Grossi pgrossi@ferrari.it
Sistemi Informativi Ges 2 
Contesto: il cliente 
Le attività di sviluppo software hanno come cliente tutti i dipartimenti della 
Gestione Sportiva. 
Ogni dipartimento viene trattato come fosse una piccola azienda servita dai Sistemi 
Ges sia dal punto di vista economico che gestionale. 
In particolare sono ‘attivi’ 50 centri di costo. 
Il numero di dipartimenti/azienda (50) da servire è maggiore del numero di 
developer (20). 
I dipartimenti hanno esigenze molto diversificate e coprono le competenze di n 
business (pianificazione, lifing, telemetria, ERP, Enterprise Application 
Integration, magazzini, simulazione ...). 
Da qui la classificazione in 2 suite dei nostri prodotti software : TrackSuite 
(afferiscono alle attività di pista) e ProductioneSuite (utili alla progettazione, 
costruzione e gestione delle parti della macchina).
Sistemi Informativi Ges 3 
Contesto: le attività e il Team 
Ogni dipartimento richiede n attività suddivise in: 
– nuovi progetti 
– attività di change su progetti attivi (sia esso change evolutivo o change correttivo) 
Il numero di progetti (~ 100) è molto maggiore del numero dei developer (20). 
Il numero di richieste (~ 10 al gg) di change è comparabile con il numero dei 
developer. 
Il Team ha 3 location separate in contatto via intranet, telefono, instant messaging.
Sistemi Informativi Ges 4 
Il metodo: i problemi da affrontare 
La prorompente innovazione tecnologica, la esasperata necessità di time to market e 
le caratteristiche di competitività e variabilità della F1 richiedono che si abbia 
una forte capacità di reazione. 
In un ambiente ideale, il cambiamento è identificato come il male. Lo sforzo è 
concentrato sul definire ex ante le esigenze dell’utente per poter cristallizzare i 
requisiti. Da quel momento in poi (momento spesso controfirmato dal cliente) il 
cambiamento è visto come una turbativa per i progettisti e una cosa ‘che si 
paga’ per il cliente. 
Il nostro contesto è caratterizzato da 
• alta velocità, grandi variabilità, grandi rischi. 
• un altissimo numero di richieste e progetti fortemente integrati tra di loro 
Insomma il cambiamento è la norma !
Sistemi Informativi Ges 5 
Il metodo: gli obiettivi che vogliamo raggiungere 
Noi vogliamo scrivere outstanding software e cioè software di qualità. 
Questo vuol dire scrivere software: 
– estendibile: e cioè aperto alle evoluzioni e modifiche qualunque esse siano 
– integrato: e cioè facente parte del ‘sistema’ Ferrari 
– robusto: e cioè resistente alle sollecitazioni dell’utente e all’ambiente (tipicamente non 
controllato) in cui esso gira
Sistemi Informativi Ges 6 
Standup 
30 minuti ogni mattina alle 9. 
Una volta alla settimana facciamo un weekly meeting che e’ uguale a quello 
giornaliero e si parla dell’intera settimana: 
Rispondiamo a queste domande: 
• Cosa ho fatto ieri ? 
• Sono in anticipo/ritardo ? 
• Qual’è la data di consegna? 
• Cosa farò oggi ? 
• Di cosa ho bisogno ? 
• Comunicazioni (info di interesse generale, assenze, etc.) 
La regola e’ NO FEEDBACK, e solo domande retoriche.
Sistemi Informativi Ges 7 
Collective Ownership (and Coding standards) 
Non per tutti i progetti, solo per quelli ad alta varianza cioe’ per cui abbiamo piu’ di 
due richieste di modifica al mese. 
Per noi significa: 
* Leggibilita’ 
* Pattern comune di approccio alle soluzioni 
* No branch 
* Standard sintattico light (e’ determinante il consenso del team, la scelta 
tecnica e’ secondaria)
Sistemi Informativi Ges 8 
Planning Game 
Non abbiamo formalizzato un momento per questa pratica. 
Lavorando con team virtuali che si aggregano e disgregano ad ogni iterazione su 
progetti diversi il planning game e’ indispensabile all’inizio di ogni iterazione. 
Per team piu’ “stabili” nel tempo c’e’ piu’ regolarita’. 
Durante il planning game non riusciamo a fare design, ma spesso facciamo scelte 
architetturali. 
Scriviamo storie della durata di una iterazione in linguaggio utente 
Cerchiamo di darci un orizzonte di 2 mesi
Sistemi Informativi Ges 9 
Continuous Integration 
Il sistema di Continuous integration e’ basato su uno strumento propietario che in automatico 
ogni notte: 
– build dei sorgenti 
– calcolo delle metriche 
– verifica dei test automatici 
– setup-kit 
– invio di mail e di report 
Check-In 
– del codice rilasciabile 
– frequente 
Progetti raggruppati in solution (compile-time) e in Test Suite (night-build). 
Il team conosce & condivide le conseguenze della una modifica di un componente condiviso. 
Small releases e stiamo sperimentando il time boxing.
Sistemi Informativi Ges 10 
Pair Programming 
1) C’era gia’ 
2) Piace molto al team 
3) Lo facciamo poco e in particolare sulle parti critiche o quando un capita di 
dover lavorare su una storia su cui si ha poca esperienza 
4) Fa veramente la differenza in termini di tempo di sviluppo, la velocita’ e’ molto 
alta perche’ in due si evitano gli sprechi 
5) Serve alla condivisione della conoscenza 
6) Quando le coppie ruotano spinge alla chiarezza del disegno 
7) Permette di programmare senza Ego 
8) Nel pair la diversità è un plus
Sistemi Informativi Ges 11 
Refactoring (Incremental Design) 
A parte i big refactoring che vengono pianificati … 
Siamo pronti a rifattorizzare ogni volta che apriamo un sorgente. 
Nella nostra esperienza ogni scelta di design, anche la piu’ piccola, necessita di 
refactoring. 
Stiamo affrontando il tema del refactoring della suite di test 
L’utente chiede la feature, il team decide quanto e quale refactoring fare 
Il codice di cui si fa il Check-In vogliamo non sia più degradato di quello che 
abbiamo estratto
Sistemi Informativi Ges 12 
Simple design 
• Simple, per noi, significa anche standard 
• L’alternativa e’ il fallimento certo 
• Simple per noi significa anche eliminare complessità inutili e soluzioni parziali 
che lasciano il problema irrisolto e casi speciali da gestire
Sistemi Informativi Ges 13 
Miglioramento continuo 
Ci chiediamo come migliorare. 
E’ un progetto vero e proprio, sviluppiamo attivita’ dedicate al team di sviluppo. Da 
qui nascono principalmente le idee di evoluzione della metodologia. 
Il progetto e’ gestito come tutti gli altri progetti con date di scadenza e storie 
assegnate ai developer. 
Il team e’ il cliente di questo progetto… abbiamo il customer on site 100% ;-) 
Mettiamo alla prova la capacità di auto-organizzarci 
Scegliamo attentamente dove dirigere gli sforzi per avere un beneficio visibile 
subito e maggiore possibile.
Sistemi Informativi Ges 14 
Programmers Test 
Abbiamo una suite di test automatici che gira ad ogni build 
Tutti i software critici hanno la build notturna che lancia la suite di test. Se un test 
fallisce fallisce anche la build 
Monitoriamo il numero di test che scriviamo ad ogni iterazione e seguiamo il trend. 
Questo perche’ l’obiettivo e’ che scrivere test e scrivere codice sfumino nella 
stessa cosa. 
Circa 10.000 Unit Test, 100.000 Assert, 100 nuovi test a settimana.
Sistemi Informativi Ges 15 
Customers Test 
Eseguiamo a mano una lista di SmokeTest che verificano le funzionalita’ di ogni 
software prima di ogni rilascio. 
Stiamo automatizzando questi smoke test. 
Abbiamo alcuni test di accettazione e alcuni test funzionali che lanciamo e che 
mettiamo a disposizione di altri gruppi di Sistemi Informativi che erogano 
supporto ai nostri utenti.
Sistemi Informativi Ges 16 
No overtime 
Non ci capita di fare Overtime se non in periodi legati alla particolarita’ del 
business. 
Ci sono week end in cui a causa del Gran Premio e’ chiesta la presenza di developer 
in ufficio …
Sistemi Informativi Ges 17 
No overtime 
Non ci capita di fare Overtime se non in periodi legati alla particolarita’ del 
business. 
Ci sono week end in cui a causa del Gran Premio e’ chiesta la presenza di developer 
in ufficio o in pista!
Sistemi Informativi Ges 18 
In che modo diventiamo Agili ... Agilmente? 
• Ci facciamo guidare dal valore che consegnamo all’utente 
• Senza fretta (...) e senza sosta procediamo a piccoli passi migliorativi 
• Qualità: subito ci costa meno, mai ci costa troppo 
– quando subito non si può, presto piuttosto che mai 
– quanto è “sufficientemente buono”? 
– il peso delle date di consegna, quando dopo diventa mai 
• Reagiamo senza improvvisare, agiamo prima dell’ultimo momento responsabile, 
lo facciamo con competenza tecnica 
• Scegliamo dove intervenire per avere il massimo beneficio
Sistemi Informativi Ges 19 
Whole Team 
Non riusciamo. 
Questa carenza ci crea diversi problemi: 
- Qualita’ 
- Dobbiamo continuamente distinguere quella interna da quella esterna 
- Testing 
- Alcuni clienti non ne capiscono l’utilita’ 
- Requirements 
- E’ difficile capire veramente cosa vuole l’utente 
- E’ facile cadere nella trappola “so io cosa intende …” 
Come può la community italiana aiutarci ad ottenerlo ? 
Luca Minudel lminudel@ferrari.it 
Nicola Canalini ncanalini@ferrari.it 
Piergiorgio Grossi pgrossi@ferrari.it

More Related Content

What's hot

Scrum? E' come fare il bucato!
Scrum? E' come fare il bucato!Scrum? E' come fare il bucato!
Scrum? E' come fare il bucato!Manuel Scapolan
 
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clientiScrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clientiMarco Da Rin Zanco
 
Introduzione alle metodologie Agili
Introduzione alle metodologie AgiliIntroduzione alle metodologie Agili
Introduzione alle metodologie AgiliAlessandro Astarita
 
Agile project management 1 giornata - board game - v2
Agile project management   1 giornata - board game - v2Agile project management   1 giornata - board game - v2
Agile project management 1 giornata - board game - v2Giulio Roggero
 
Agile Project Management
Agile Project ManagementAgile Project Management
Agile Project ManagementGiulio Roggero
 
Manifesto per lo Sviluppo Agile di Software
Manifesto per lo Sviluppo Agile di SoftwareManifesto per lo Sviluppo Agile di Software
Manifesto per lo Sviluppo Agile di SoftwareAmmLibera AL
 
Agile Project Management - the Board Game workshop
Agile Project Management  - the Board Game workshopAgile Project Management  - the Board Game workshop
Agile Project Management - the Board Game workshopGiulio Roggero
 
Agile requirements - alla ricerca del filo rosso (iad 2013)
Agile requirements - alla ricerca del filo rosso (iad 2013)Agile requirements - alla ricerca del filo rosso (iad 2013)
Agile requirements - alla ricerca del filo rosso (iad 2013)Fabio Armani
 
Rifare da 0 una piattaforma legacy
Rifare da 0 una piattaforma legacyRifare da 0 una piattaforma legacy
Rifare da 0 una piattaforma legacySusanna Ferrario
 
Agile@scale - Agile Day 2013
Agile@scale - Agile Day 2013Agile@scale - Agile Day 2013
Agile@scale - Agile Day 2013Felice Pescatore
 
Le aspettative delle trasformazioni agili
Le aspettative delle trasformazioni agiliLe aspettative delle trasformazioni agili
Le aspettative delle trasformazioni agiliGiulio Roggero
 
Scrum una breve introduzione
Scrum una breve introduzioneScrum una breve introduzione
Scrum una breve introduzionerhubbit
 
ITSMF Conferenza 2014 - L'officina Agile per innovare l'IT Service Management
ITSMF Conferenza 2014 - L'officina Agile per innovare l'IT Service ManagementITSMF Conferenza 2014 - L'officina Agile per innovare l'IT Service Management
ITSMF Conferenza 2014 - L'officina Agile per innovare l'IT Service ManagementSimone Onofri
 
Open Innovation Campus - 05/04/2018 - Agile challenges: essere agili nello sv...
Open Innovation Campus - 05/04/2018 - Agile challenges: essere agili nello sv...Open Innovation Campus - 05/04/2018 - Agile challenges: essere agili nello sv...
Open Innovation Campus - 05/04/2018 - Agile challenges: essere agili nello sv...Vittorio Polizzi
 

What's hot (20)

Scrum? E' come fare il bucato!
Scrum? E' come fare il bucato!Scrum? E' come fare il bucato!
Scrum? E' come fare il bucato!
 
Introduzione a Scrum
Introduzione a ScrumIntroduzione a Scrum
Introduzione a Scrum
 
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clientiScrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
Scrum! Sopravvivere e gestire progetti tra polli, maiali e clienti
 
Introduzione alle metodologie Agili
Introduzione alle metodologie AgiliIntroduzione alle metodologie Agili
Introduzione alle metodologie Agili
 
Agile project management 1 giornata - board game - v2
Agile project management   1 giornata - board game - v2Agile project management   1 giornata - board game - v2
Agile project management 1 giornata - board game - v2
 
Semplicemente Agile
Semplicemente AgileSemplicemente Agile
Semplicemente Agile
 
Agile Project Management
Agile Project ManagementAgile Project Management
Agile Project Management
 
Manifesto per lo Sviluppo Agile di Software
Manifesto per lo Sviluppo Agile di SoftwareManifesto per lo Sviluppo Agile di Software
Manifesto per lo Sviluppo Agile di Software
 
Agile Project Management - the Board Game workshop
Agile Project Management  - the Board Game workshopAgile Project Management  - the Board Game workshop
Agile Project Management - the Board Game workshop
 
Agile requirements - alla ricerca del filo rosso (iad 2013)
Agile requirements - alla ricerca del filo rosso (iad 2013)Agile requirements - alla ricerca del filo rosso (iad 2013)
Agile requirements - alla ricerca del filo rosso (iad 2013)
 
Rifare da 0 una piattaforma legacy
Rifare da 0 una piattaforma legacyRifare da 0 una piattaforma legacy
Rifare da 0 una piattaforma legacy
 
Agile in 45 minuti
Agile in 45 minutiAgile in 45 minuti
Agile in 45 minuti
 
Agile@scale - Agile Day 2013
Agile@scale - Agile Day 2013Agile@scale - Agile Day 2013
Agile@scale - Agile Day 2013
 
Lezione 1: I metodi agili
Lezione 1: I metodi agiliLezione 1: I metodi agili
Lezione 1: I metodi agili
 
Agile@core - Scrum
Agile@core - ScrumAgile@core - Scrum
Agile@core - Scrum
 
La salute del software
La salute del softwareLa salute del software
La salute del software
 
Le aspettative delle trasformazioni agili
Le aspettative delle trasformazioni agiliLe aspettative delle trasformazioni agili
Le aspettative delle trasformazioni agili
 
Scrum una breve introduzione
Scrum una breve introduzioneScrum una breve introduzione
Scrum una breve introduzione
 
ITSMF Conferenza 2014 - L'officina Agile per innovare l'IT Service Management
ITSMF Conferenza 2014 - L'officina Agile per innovare l'IT Service ManagementITSMF Conferenza 2014 - L'officina Agile per innovare l'IT Service Management
ITSMF Conferenza 2014 - L'officina Agile per innovare l'IT Service Management
 
Open Innovation Campus - 05/04/2018 - Agile challenges: essere agili nello sv...
Open Innovation Campus - 05/04/2018 - Agile challenges: essere agili nello sv...Open Innovation Campus - 05/04/2018 - Agile challenges: essere agili nello sv...
Open Innovation Campus - 05/04/2018 - Agile challenges: essere agili nello sv...
 

Viewers also liked

Refactoring legacy code driven by tests - ENG
Refactoring legacy code driven by tests - ENGRefactoring legacy code driven by tests - ENG
Refactoring legacy code driven by tests - ENGLuca Minudel
 
Draft your next training course with ideas from Training from the Back of the...
Draft your next training course with ideas from Training from the Back of the...Draft your next training course with ideas from Training from the Back of the...
Draft your next training course with ideas from Training from the Back of the...Luca Minudel
 
Agility: The scientific definition of how to be(come) Agile
Agility: The scientific definition of how to be(come) AgileAgility: The scientific definition of how to be(come) Agile
Agility: The scientific definition of how to be(come) AgileLuca Minudel
 
New Lean-Agile Coach self-assessment - levels description v3.2
New Lean-Agile Coach self-assessment - levels description v3.2New Lean-Agile Coach self-assessment - levels description v3.2
New Lean-Agile Coach self-assessment - levels description v3.2Luca Minudel
 
New Lean-Agile Coach Self-Assessment - detailed descriptions v3
New Lean-Agile Coach Self-Assessment - detailed descriptions v3New Lean-Agile Coach Self-Assessment - detailed descriptions v3
New Lean-Agile Coach Self-Assessment - detailed descriptions v3Luca Minudel
 
From Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsFrom Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsLuca Minudel
 
New Lean-Agile Coach self-assessment radars v3.2
New Lean-Agile Coach self-assessment radars v3.2New Lean-Agile Coach self-assessment radars v3.2
New Lean-Agile Coach self-assessment radars v3.2Luca Minudel
 

Viewers also liked (7)

Refactoring legacy code driven by tests - ENG
Refactoring legacy code driven by tests - ENGRefactoring legacy code driven by tests - ENG
Refactoring legacy code driven by tests - ENG
 
Draft your next training course with ideas from Training from the Back of the...
Draft your next training course with ideas from Training from the Back of the...Draft your next training course with ideas from Training from the Back of the...
Draft your next training course with ideas from Training from the Back of the...
 
Agility: The scientific definition of how to be(come) Agile
Agility: The scientific definition of how to be(come) AgileAgility: The scientific definition of how to be(come) Agile
Agility: The scientific definition of how to be(come) Agile
 
New Lean-Agile Coach self-assessment - levels description v3.2
New Lean-Agile Coach self-assessment - levels description v3.2New Lean-Agile Coach self-assessment - levels description v3.2
New Lean-Agile Coach self-assessment - levels description v3.2
 
New Lean-Agile Coach Self-Assessment - detailed descriptions v3
New Lean-Agile Coach Self-Assessment - detailed descriptions v3New Lean-Agile Coach Self-Assessment - detailed descriptions v3
New Lean-Agile Coach Self-Assessment - detailed descriptions v3
 
From Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsFrom Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOps
 
New Lean-Agile Coach self-assessment radars v3.2
New Lean-Agile Coach self-assessment radars v3.2New Lean-Agile Coach self-assessment radars v3.2
New Lean-Agile Coach self-assessment radars v3.2
 

Similar to AgileDay 2006 - Essere agili nel diventare agili

Agile APM an heretic's approach to SPE
Agile APM an heretic's approach to SPEAgile APM an heretic's approach to SPE
Agile APM an heretic's approach to SPEK-Tech Formazione
 
Smau Milano2108_CNA
Smau Milano2108_CNASmau Milano2108_CNA
Smau Milano2108_CNASMAU
 
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Commit University
 
C:\documents and settings\inzerillo\desktop\units\software development nel mo...
C:\documents and settings\inzerillo\desktop\units\software development nel mo...C:\documents and settings\inzerillo\desktop\units\software development nel mo...
C:\documents and settings\inzerillo\desktop\units\software development nel mo...guestfe59a4
 
Software development industriale
Software development industrialeSoftware development industriale
Software development industrialeguestfe59a4
 
C:\documents and settings\inzerillo\desktop\units\software development nel mo...
C:\documents and settings\inzerillo\desktop\units\software development nel mo...C:\documents and settings\inzerillo\desktop\units\software development nel mo...
C:\documents and settings\inzerillo\desktop\units\software development nel mo...guestfe59a4
 
Software development nel mondo industriale
Software development nel mondo industrialeSoftware development nel mondo industriale
Software development nel mondo industrialeguesta554cd
 
La governance de iprogetti agili
La governance de iprogetti agiliLa governance de iprogetti agili
La governance de iprogetti agiliinspearit Italy
 
Debito Tecnico Questo Sconosciuto
Debito Tecnico Questo SconosciutoDebito Tecnico Questo Sconosciuto
Debito Tecnico Questo Sconosciutoinspearit Italy
 
Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Gian Maria Ricci
 
Introduzione all'Agile Software Development
Introduzione all'Agile Software DevelopmentIntroduzione all'Agile Software Development
Introduzione all'Agile Software DevelopmentPaolo Sammicheli
 
Introduzione all'Agile Software Development
Introduzione all'Agile Software DevelopmentIntroduzione all'Agile Software Development
Introduzione all'Agile Software DevelopmentPaolo Sammicheli
 
Introduzione alla Metodologia Scrumban
Introduzione alla Metodologia ScrumbanIntroduzione alla Metodologia Scrumban
Introduzione alla Metodologia ScrumbanNextre Engineering
 
Agile raccontato a mia nonna
Agile raccontato a mia nonnaAgile raccontato a mia nonna
Agile raccontato a mia nonnaFelice Pescatore
 
Keep calm and deploy
Keep calm and deployKeep calm and deploy
Keep calm and deployKlab
 
Intoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie AgiliIntoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie AgiliStefano Leli
 

Similar to AgileDay 2006 - Essere agili nel diventare agili (20)

Agile APM an heretic's approach to SPE
Agile APM an heretic's approach to SPEAgile APM an heretic's approach to SPE
Agile APM an heretic's approach to SPE
 
Smau Milano2108_CNA
Smau Milano2108_CNASmau Milano2108_CNA
Smau Milano2108_CNA
 
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
 
Agile software lifecycle
Agile software lifecycleAgile software lifecycle
Agile software lifecycle
 
C:\documents and settings\inzerillo\desktop\units\software development nel mo...
C:\documents and settings\inzerillo\desktop\units\software development nel mo...C:\documents and settings\inzerillo\desktop\units\software development nel mo...
C:\documents and settings\inzerillo\desktop\units\software development nel mo...
 
Software development industriale
Software development industrialeSoftware development industriale
Software development industriale
 
C:\documents and settings\inzerillo\desktop\units\software development nel mo...
C:\documents and settings\inzerillo\desktop\units\software development nel mo...C:\documents and settings\inzerillo\desktop\units\software development nel mo...
C:\documents and settings\inzerillo\desktop\units\software development nel mo...
 
Manuale Agile Stelnet
Manuale Agile StelnetManuale Agile Stelnet
Manuale Agile Stelnet
 
Software development nel mondo industriale
Software development nel mondo industrialeSoftware development nel mondo industriale
Software development nel mondo industriale
 
La governance de iprogetti agili
La governance de iprogetti agiliLa governance de iprogetti agili
La governance de iprogetti agili
 
Debito Tecnico Questo Sconosciuto
Debito Tecnico Questo SconosciutoDebito Tecnico Questo Sconosciuto
Debito Tecnico Questo Sconosciuto
 
Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011
 
Introduzione all'Agile Software Development
Introduzione all'Agile Software DevelopmentIntroduzione all'Agile Software Development
Introduzione all'Agile Software Development
 
Introduzione all'Agile Software Development
Introduzione all'Agile Software DevelopmentIntroduzione all'Agile Software Development
Introduzione all'Agile Software Development
 
Introduzione alla Metodologia Scrumban
Introduzione alla Metodologia ScrumbanIntroduzione alla Metodologia Scrumban
Introduzione alla Metodologia Scrumban
 
Agile raccontato a mia nonna
Agile raccontato a mia nonnaAgile raccontato a mia nonna
Agile raccontato a mia nonna
 
Corso progettazione
Corso progettazioneCorso progettazione
Corso progettazione
 
Keep calm and deploy
Keep calm and deployKeep calm and deploy
Keep calm and deploy
 
Intoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie AgiliIntoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie Agili
 
Produzione software
Produzione softwareProduzione software
Produzione software
 

More from Luca Minudel

It takes two to tango - why tech and business succeed or fail together v4.1 b...
It takes two to tango - why tech and business succeed or fail together v4.1 b...It takes two to tango - why tech and business succeed or fail together v4.1 b...
It takes two to tango - why tech and business succeed or fail together v4.1 b...Luca Minudel
 
Scrum master self-assessment kit v3.2
Scrum master self-assessment kit v3.2Scrum master self-assessment kit v3.2
Scrum master self-assessment kit v3.2Luca Minudel
 
Project management in the age of accelerating change - IT/Tech specific
Project management in the age of accelerating change - IT/Tech specificProject management in the age of accelerating change - IT/Tech specific
Project management in the age of accelerating change - IT/Tech specificLuca Minudel
 
Project management in the age of accelerating change - general non IT specific
Project management in the age of accelerating change - general non IT specificProject management in the age of accelerating change - general non IT specific
Project management in the age of accelerating change - general non IT specificLuca Minudel
 
Scrum master self assessment v2.7
Scrum master self assessment v2.7Scrum master self assessment v2.7
Scrum master self assessment v2.7Luca Minudel
 
Agility - definition and curricula
Agility - definition and curriculaAgility - definition and curricula
Agility - definition and curriculaLuca Minudel
 
Agile Delivery Manager self-assessment radar
Agile Delivery Manager self-assessment radarAgile Delivery Manager self-assessment radar
Agile Delivery Manager self-assessment radarLuca Minudel
 
CTO self-assessment radar
CTO self-assessment radarCTO self-assessment radar
CTO self-assessment radarLuca Minudel
 
Reflections on Kent Beck's 3x Explore, Expand, and Extract
Reflections on Kent Beck's 3x Explore, Expand, and ExtractReflections on Kent Beck's 3x Explore, Expand, and Extract
Reflections on Kent Beck's 3x Explore, Expand, and ExtractLuca Minudel
 
Pratica avanzata del refactoring (2004)
Pratica avanzata del refactoring (2004)Pratica avanzata del refactoring (2004)
Pratica avanzata del refactoring (2004)Luca Minudel
 
Lightning talk: Active Agility, the magic ingredient of Lean and Agile
Lightning talk: Active Agility, the magic ingredient of Lean and AgileLightning talk: Active Agility, the magic ingredient of Lean and Agile
Lightning talk: Active Agility, the magic ingredient of Lean and AgileLuca Minudel
 
Software development in Formula One: challenges, complexity and struggle for ...
Software development in Formula One: challenges, complexity and struggle for ...Software development in Formula One: challenges, complexity and struggle for ...
Software development in Formula One: challenges, complexity and struggle for ...Luca Minudel
 
Refactoring legacy code driven by tests - ITA
Refactoring legacy code driven by tests -  ITARefactoring legacy code driven by tests -  ITA
Refactoring legacy code driven by tests - ITALuca Minudel
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery OverviewLuca Minudel
 

More from Luca Minudel (14)

It takes two to tango - why tech and business succeed or fail together v4.1 b...
It takes two to tango - why tech and business succeed or fail together v4.1 b...It takes two to tango - why tech and business succeed or fail together v4.1 b...
It takes two to tango - why tech and business succeed or fail together v4.1 b...
 
Scrum master self-assessment kit v3.2
Scrum master self-assessment kit v3.2Scrum master self-assessment kit v3.2
Scrum master self-assessment kit v3.2
 
Project management in the age of accelerating change - IT/Tech specific
Project management in the age of accelerating change - IT/Tech specificProject management in the age of accelerating change - IT/Tech specific
Project management in the age of accelerating change - IT/Tech specific
 
Project management in the age of accelerating change - general non IT specific
Project management in the age of accelerating change - general non IT specificProject management in the age of accelerating change - general non IT specific
Project management in the age of accelerating change - general non IT specific
 
Scrum master self assessment v2.7
Scrum master self assessment v2.7Scrum master self assessment v2.7
Scrum master self assessment v2.7
 
Agility - definition and curricula
Agility - definition and curriculaAgility - definition and curricula
Agility - definition and curricula
 
Agile Delivery Manager self-assessment radar
Agile Delivery Manager self-assessment radarAgile Delivery Manager self-assessment radar
Agile Delivery Manager self-assessment radar
 
CTO self-assessment radar
CTO self-assessment radarCTO self-assessment radar
CTO self-assessment radar
 
Reflections on Kent Beck's 3x Explore, Expand, and Extract
Reflections on Kent Beck's 3x Explore, Expand, and ExtractReflections on Kent Beck's 3x Explore, Expand, and Extract
Reflections on Kent Beck's 3x Explore, Expand, and Extract
 
Pratica avanzata del refactoring (2004)
Pratica avanzata del refactoring (2004)Pratica avanzata del refactoring (2004)
Pratica avanzata del refactoring (2004)
 
Lightning talk: Active Agility, the magic ingredient of Lean and Agile
Lightning talk: Active Agility, the magic ingredient of Lean and AgileLightning talk: Active Agility, the magic ingredient of Lean and Agile
Lightning talk: Active Agility, the magic ingredient of Lean and Agile
 
Software development in Formula One: challenges, complexity and struggle for ...
Software development in Formula One: challenges, complexity and struggle for ...Software development in Formula One: challenges, complexity and struggle for ...
Software development in Formula One: challenges, complexity and struggle for ...
 
Refactoring legacy code driven by tests - ITA
Refactoring legacy code driven by tests -  ITARefactoring legacy code driven by tests -  ITA
Refactoring legacy code driven by tests - ITA
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery Overview
 

AgileDay 2006 - Essere agili nel diventare agili

  • 1. Sistemi Informativi Ges 1 AgileDay 2006 - Essere agili nel diventare agili Maranello, Dicembre 2006 Luca Minudel lminudel@ferrari.it Nicola Canalini ncanalini@ferrari.it Piergiorgio Grossi pgrossi@ferrari.it
  • 2. Sistemi Informativi Ges 2 Contesto: il cliente Le attività di sviluppo software hanno come cliente tutti i dipartimenti della Gestione Sportiva. Ogni dipartimento viene trattato come fosse una piccola azienda servita dai Sistemi Ges sia dal punto di vista economico che gestionale. In particolare sono ‘attivi’ 50 centri di costo. Il numero di dipartimenti/azienda (50) da servire è maggiore del numero di developer (20). I dipartimenti hanno esigenze molto diversificate e coprono le competenze di n business (pianificazione, lifing, telemetria, ERP, Enterprise Application Integration, magazzini, simulazione ...). Da qui la classificazione in 2 suite dei nostri prodotti software : TrackSuite (afferiscono alle attività di pista) e ProductioneSuite (utili alla progettazione, costruzione e gestione delle parti della macchina).
  • 3. Sistemi Informativi Ges 3 Contesto: le attività e il Team Ogni dipartimento richiede n attività suddivise in: – nuovi progetti – attività di change su progetti attivi (sia esso change evolutivo o change correttivo) Il numero di progetti (~ 100) è molto maggiore del numero dei developer (20). Il numero di richieste (~ 10 al gg) di change è comparabile con il numero dei developer. Il Team ha 3 location separate in contatto via intranet, telefono, instant messaging.
  • 4. Sistemi Informativi Ges 4 Il metodo: i problemi da affrontare La prorompente innovazione tecnologica, la esasperata necessità di time to market e le caratteristiche di competitività e variabilità della F1 richiedono che si abbia una forte capacità di reazione. In un ambiente ideale, il cambiamento è identificato come il male. Lo sforzo è concentrato sul definire ex ante le esigenze dell’utente per poter cristallizzare i requisiti. Da quel momento in poi (momento spesso controfirmato dal cliente) il cambiamento è visto come una turbativa per i progettisti e una cosa ‘che si paga’ per il cliente. Il nostro contesto è caratterizzato da • alta velocità, grandi variabilità, grandi rischi. • un altissimo numero di richieste e progetti fortemente integrati tra di loro Insomma il cambiamento è la norma !
  • 5. Sistemi Informativi Ges 5 Il metodo: gli obiettivi che vogliamo raggiungere Noi vogliamo scrivere outstanding software e cioè software di qualità. Questo vuol dire scrivere software: – estendibile: e cioè aperto alle evoluzioni e modifiche qualunque esse siano – integrato: e cioè facente parte del ‘sistema’ Ferrari – robusto: e cioè resistente alle sollecitazioni dell’utente e all’ambiente (tipicamente non controllato) in cui esso gira
  • 6. Sistemi Informativi Ges 6 Standup 30 minuti ogni mattina alle 9. Una volta alla settimana facciamo un weekly meeting che e’ uguale a quello giornaliero e si parla dell’intera settimana: Rispondiamo a queste domande: • Cosa ho fatto ieri ? • Sono in anticipo/ritardo ? • Qual’è la data di consegna? • Cosa farò oggi ? • Di cosa ho bisogno ? • Comunicazioni (info di interesse generale, assenze, etc.) La regola e’ NO FEEDBACK, e solo domande retoriche.
  • 7. Sistemi Informativi Ges 7 Collective Ownership (and Coding standards) Non per tutti i progetti, solo per quelli ad alta varianza cioe’ per cui abbiamo piu’ di due richieste di modifica al mese. Per noi significa: * Leggibilita’ * Pattern comune di approccio alle soluzioni * No branch * Standard sintattico light (e’ determinante il consenso del team, la scelta tecnica e’ secondaria)
  • 8. Sistemi Informativi Ges 8 Planning Game Non abbiamo formalizzato un momento per questa pratica. Lavorando con team virtuali che si aggregano e disgregano ad ogni iterazione su progetti diversi il planning game e’ indispensabile all’inizio di ogni iterazione. Per team piu’ “stabili” nel tempo c’e’ piu’ regolarita’. Durante il planning game non riusciamo a fare design, ma spesso facciamo scelte architetturali. Scriviamo storie della durata di una iterazione in linguaggio utente Cerchiamo di darci un orizzonte di 2 mesi
  • 9. Sistemi Informativi Ges 9 Continuous Integration Il sistema di Continuous integration e’ basato su uno strumento propietario che in automatico ogni notte: – build dei sorgenti – calcolo delle metriche – verifica dei test automatici – setup-kit – invio di mail e di report Check-In – del codice rilasciabile – frequente Progetti raggruppati in solution (compile-time) e in Test Suite (night-build). Il team conosce & condivide le conseguenze della una modifica di un componente condiviso. Small releases e stiamo sperimentando il time boxing.
  • 10. Sistemi Informativi Ges 10 Pair Programming 1) C’era gia’ 2) Piace molto al team 3) Lo facciamo poco e in particolare sulle parti critiche o quando un capita di dover lavorare su una storia su cui si ha poca esperienza 4) Fa veramente la differenza in termini di tempo di sviluppo, la velocita’ e’ molto alta perche’ in due si evitano gli sprechi 5) Serve alla condivisione della conoscenza 6) Quando le coppie ruotano spinge alla chiarezza del disegno 7) Permette di programmare senza Ego 8) Nel pair la diversità è un plus
  • 11. Sistemi Informativi Ges 11 Refactoring (Incremental Design) A parte i big refactoring che vengono pianificati … Siamo pronti a rifattorizzare ogni volta che apriamo un sorgente. Nella nostra esperienza ogni scelta di design, anche la piu’ piccola, necessita di refactoring. Stiamo affrontando il tema del refactoring della suite di test L’utente chiede la feature, il team decide quanto e quale refactoring fare Il codice di cui si fa il Check-In vogliamo non sia più degradato di quello che abbiamo estratto
  • 12. Sistemi Informativi Ges 12 Simple design • Simple, per noi, significa anche standard • L’alternativa e’ il fallimento certo • Simple per noi significa anche eliminare complessità inutili e soluzioni parziali che lasciano il problema irrisolto e casi speciali da gestire
  • 13. Sistemi Informativi Ges 13 Miglioramento continuo Ci chiediamo come migliorare. E’ un progetto vero e proprio, sviluppiamo attivita’ dedicate al team di sviluppo. Da qui nascono principalmente le idee di evoluzione della metodologia. Il progetto e’ gestito come tutti gli altri progetti con date di scadenza e storie assegnate ai developer. Il team e’ il cliente di questo progetto… abbiamo il customer on site 100% ;-) Mettiamo alla prova la capacità di auto-organizzarci Scegliamo attentamente dove dirigere gli sforzi per avere un beneficio visibile subito e maggiore possibile.
  • 14. Sistemi Informativi Ges 14 Programmers Test Abbiamo una suite di test automatici che gira ad ogni build Tutti i software critici hanno la build notturna che lancia la suite di test. Se un test fallisce fallisce anche la build Monitoriamo il numero di test che scriviamo ad ogni iterazione e seguiamo il trend. Questo perche’ l’obiettivo e’ che scrivere test e scrivere codice sfumino nella stessa cosa. Circa 10.000 Unit Test, 100.000 Assert, 100 nuovi test a settimana.
  • 15. Sistemi Informativi Ges 15 Customers Test Eseguiamo a mano una lista di SmokeTest che verificano le funzionalita’ di ogni software prima di ogni rilascio. Stiamo automatizzando questi smoke test. Abbiamo alcuni test di accettazione e alcuni test funzionali che lanciamo e che mettiamo a disposizione di altri gruppi di Sistemi Informativi che erogano supporto ai nostri utenti.
  • 16. Sistemi Informativi Ges 16 No overtime Non ci capita di fare Overtime se non in periodi legati alla particolarita’ del business. Ci sono week end in cui a causa del Gran Premio e’ chiesta la presenza di developer in ufficio …
  • 17. Sistemi Informativi Ges 17 No overtime Non ci capita di fare Overtime se non in periodi legati alla particolarita’ del business. Ci sono week end in cui a causa del Gran Premio e’ chiesta la presenza di developer in ufficio o in pista!
  • 18. Sistemi Informativi Ges 18 In che modo diventiamo Agili ... Agilmente? • Ci facciamo guidare dal valore che consegnamo all’utente • Senza fretta (...) e senza sosta procediamo a piccoli passi migliorativi • Qualità: subito ci costa meno, mai ci costa troppo – quando subito non si può, presto piuttosto che mai – quanto è “sufficientemente buono”? – il peso delle date di consegna, quando dopo diventa mai • Reagiamo senza improvvisare, agiamo prima dell’ultimo momento responsabile, lo facciamo con competenza tecnica • Scegliamo dove intervenire per avere il massimo beneficio
  • 19. Sistemi Informativi Ges 19 Whole Team Non riusciamo. Questa carenza ci crea diversi problemi: - Qualita’ - Dobbiamo continuamente distinguere quella interna da quella esterna - Testing - Alcuni clienti non ne capiscono l’utilita’ - Requirements - E’ difficile capire veramente cosa vuole l’utente - E’ facile cadere nella trappola “so io cosa intende …” Come può la community italiana aiutarci ad ottenerlo ? Luca Minudel lminudel@ferrari.it Nicola Canalini ncanalini@ferrari.it Piergiorgio Grossi pgrossi@ferrari.it

Editor's Notes

  1. La persona che consce il progetto è occupata su un altro sw La modifica è difficile e non ci si può confrontare con nessuno Si vuole andare in feriee od occuparsi di altro e non è possibile => - Più persone conoscono uno steso sw- Il team può coprire le spalle al singolo (pair, design review)- E’ possibile andare in ferie e occuparsi di altro senza lasciare scoperta la macchina al GP
  2. Il sw buildato automaticamente è pronto x il rilascio (libreria subito pronta , smoke test x il sw) Il sw viene buildato ogni notte se ok è rilasciabile (tutto quello nel repository del codice è rilasciabile, no label di freno) Check-in di ogni modifica al codice appena è rilasciabile Progetti ragguppati - librerie condivise (bianche) Get Latest spesso- codice core dei progetti della solution pro Refactoring/Test immediato- DIP aiuta a ridurre le dimensioni necessarie ai raggruppamenti Conosce & Condivide => stand-up
  3. Condividere la conoscienza ... e l’esperienza Programmare senza EGO- + facile non identificarsi con il codice,- => criticarlo (in modo costruttivo) e cambiarlo- => accettare il sufficientemente buono invece che la perfezione e i migl. graduali- => non ownership del codice Diversità ++ soluzioni diverse da vagliare+ punti di vista si imparano approcci diversi (forrest <=> tree)
  4. Big refactoring = quelli “architetturali” Scelti dove fare refactoring per avere maggiore vantaggio x il successo del prj Refactoring: Se su prj nuovi o new al ref. da grana fine a grossa top-down Se su prj noti notton-up
  5. Auto-organizzarci- Autorità => Motivazione - condivisione degli obiettivi +++ ke trovare la soluzione - autorevolezza/ competenza riconosciuta : qualsiasi opinione ha la medesima dignità, eventualmente fiducia - consapevolezza Bisogni, cambiamenti desiderati- coraggio => pazienza - Condivisione => Fiducia – Responsabilità; conoscenza delle capacità e potenzialità Dirigere gli sforzi- gioco del shangai
  6. Agili ancora pprima delle pratiche.Provo a spiegarlo con le parole dei libri...Ultimo momento resp + info x scegliere No generalizzazione speculativa evitare di ridurre le opzioni per il futuro inutilmente non lasciare che il tempo scelga per noi se non agiamo