5. Perchè Agile? Tradurre
• Lo sviluppo Waterfall si è dimostrato
inefficiente e insoddisfacente come risulta>
6. Perchè Agile? Tradurre
• Lo sviluppo Waterfall si è dimostrato
inefficiente e insoddisfacente come risulta>
– Waterfall è “tradizionalmente” associato a
7. Perchè Agile? Tradurre
• Lo sviluppo Waterfall si è dimostrato
inefficiente e insoddisfacente come risulta>
– Waterfall è “tradizionalmente” associato a
• cos> eleva>
8. Perchè Agile? Tradurre
• Lo sviluppo Waterfall si è dimostrato
inefficiente e insoddisfacente come risulta>
– Waterfall è “tradizionalmente” associato a
• cos> eleva>
• tempi di sviluppo lunghi
9. Perchè Agile? Tradurre
• Lo sviluppo Waterfall si è dimostrato
inefficiente e insoddisfacente come risulta>
– Waterfall è “tradizionalmente” associato a
• cos> eleva>
• tempi di sviluppo lunghi
• Impredicibilità dei risulta> e bassa percentuale di
successo
10. Perchè Agile? Tradurre
• Lo sviluppo Waterfall si è dimostrato
inefficiente e insoddisfacente come risulta>
– Waterfall è “tradizionalmente” associato a
• cos> eleva>
• tempi di sviluppo lunghi
• Impredicibilità dei risulta> e bassa percentuale di
successo
• Difficoltà nella ges>one del cambiamento
11. Perchè Agile? Tradurre
• Lo sviluppo Waterfall si è dimostrato
inefficiente e insoddisfacente come risulta>
– Waterfall è “tradizionalmente” associato a
• cos> eleva>
• tempi di sviluppo lunghi
• Impredicibilità dei risulta> e bassa percentuale di
successo
• Difficoltà nella ges>one del cambiamento
• Se chiedete in giro, nessuno sta più facendo il
waterfall (…o almeno così dicono)
13. Unified Process
• Lo unified process ha cambiato radicalmente
lo scenario
– Iterazioni come elemento fondamentale
del processo.
– Definizione fine di ruoli ed ar@fact/
responsabilità
– UML come linguaggio “ufficiale”
– Una definizione esaus@va di tuFe le
aGvità chiave del processo.
28. Ruoli e Responsabilità
• La ges>one fine dei ruoli ha finito per
tradursi in un faIore di rallentamento
– Spesso si finisce per scegliere solo “i task
ada@ al mio ruolo”
– (implicit waterfall)
– Tempi di risposta più len>
– Colli di bo@glia sigli specialis> (o presun>
tali)
– Il buon caro vecchio scaricabarile
– ...
31. I tre gus@ dell’Agile
• XP ha “faIo il boIo” introducendo
pra>che rivoluzionarie nello sviluppo
socware.
• Scrum ha definito un framework
all’interno del quale le pra>che agili
possono essere applicate all’interno di
un organizzazione.
• Il movimento Lean ha introdoIo
conce@ e principi dall’industria
manifaIuriera, nello sviluppo socware
(fornendo anche un retroterra teorico
ad entrambe)
32. eXtreme Programming
• User Stories
– Less formal than Use cases, act like placeholder for a real discussion
• Frequent small releases
– Itera7ons are shorter and targeted to produc7on,
• Frequent planning and es4ma4on
– Each itera7on is re‐planned according to the currently available informa7on
• No an4cipated development
– No frameworks or layered architecture
• Test first
– Test suites run preserving applica7on integrity, and producing beAer interfaces
• Customer availability
– Real feedback is the key to make the right thing
• No code ownership
• Con4nuous integra4on
– The whole system is frequently integrated and tested
• Pair programming
– Programmers work in pairs, in coding sessions
• No over4me
• ...
33. XP
• Il feedback è l’elemento chiave per molte
delle pra>che proposte
– dal codice
– dai colleghi
– dal cliente
– dal progeFo
– dal team
• Il team è responsabilizzato ed incoraggiato a
proporre soluzioni crea>ve
• Lo stesso processo può essere modificato
34. Scrum
• Scrum non si riferisce streIamente allo
sviluppo socware, ma offre un framework
per la ges>one ada@va dei proge@.
• A differenza di UP, ci sono solo 3 ruoli:
– Il Team
– Il Product Owner
– Lo Scrum Master
36. Il team agile
• Gruppi di piccole dimensioni
• Cross‐func>onal
• Il team è libero di prendere qualsiasi
decisione di design
• In Scrum, il team riferisce solo al P.O.
– Un cerimoniale definito ed un insieme di possibili
azioni garan>scono che il gruppo non prenda
direzioni indesiderate.
38. I principi dello sviluppo Lean
• Eliminate waste
– TuAo ciò che non fornisce alcun valore per l’utente.
• Amplify learning
– Lo sviluppo è un aIvità di esplorazione e di ricerca di soluzioni.
• Decide as late as possible
– Evitare le decisioni irreversibili, o prenderle solo quando si disponde di
tuAe le informazioni necessarie.
• Deliver as fast as possible
– Cicli di sviluppo veloci aiutano il feedback. Spesso la velocità è meglio
della qualità.
• Empower the team
– Il team diventerà il massimo esperto sull’argomento.
• Build integrity in
– Il soNware deve essere u7le, e adaAo al compito.
• See the whole
– In assenza di una visione complessiva avremo solo oFmi locali.
39. Spreco
• Lo spreco (waste) può apparire in varie forme
– Documentazione non necessaria
– Design an7cipato
– Over engineering
– AIese
– Comunicazioni inefficien>
– Dife@
– Handoff
– Complessità
– blame (scaricabarile)
– Qualità (?)
– ...
40. L’approccio Lo‐Fi
• Come conseguenza, alcuni tools sono sta>
abbandona>, in favore di un approccio più
materiale.
– Carta (user stories, CRC cards, burndown chart)
– Post‐it
– Lavagne
• Gli Informa@on radiators sfruIano la prossimità
fisica per permeIere uno scambio di
informazioni più efficiente e completo
• Alcuni Strumen> sono sta> bandi> (es.
MSProject), altri sono apparsi (es. Wikis)
41. The boFom‐up
revolu@on
• Agile prepara il terreno per
fare emergere proposte
interessan> dal team
• Il team impara and si
concentra su un
determinato spazio di
problemi, spesso diventando
il massimo esperto
disponibile sull’argomento
43. Lo scenario ideale
• Non tuIe le condizioni di partenza sono o@mali
per “diventare agili”: per poter sfruIare
pienamente il potenziale dell’agile dovremmo
(idealmente)
– Essere assun> in un’azienda la cui massima priorità sia
il socware.
– lavorare nello stesso posto
– Avere accesso agli uten> (qualsiasi cosa significhi)
– Essere liberi di crescere come team ed assumersi
responsabilità.
– Essere liberi di scegliere logis>ca, hardware, etc.
45. SOA Ra@onale
• Organizzazioni di grandi dimensioni erano
appesan>te dal fardello di
– Svaria> legacy systems
– Fusioni and acquisizioni
• Necessità di integrare sistemi eterogenei
• Sistemi duplica@ e ridondan@
– Elevata complessità (non necessaria)
• Cos@ opera@vi
• Cos@ di evoluzione
– Tempi di reazione estremamente len>, ...sviluppi
sostanzialmente blocca>, incapacità di produrre
valore.
• ...Ricorda qualcosa?
47. Service Oriented Architecture
• SOA ha come obie@vo di ridurre le
dipendenze fra le applicazioni:
– Language coupling XML
– Protocol coupling WS, SOAP
– Network coupling ESB
– Availability coupling messages
• Standard e basso accoppiamento
concorrono a definire un’architeIura basata
su componen@ sos@tuibili
48. Low coupling
• I servizi possono
dialogare tra loro
con il più basso
Enterprise Service Bus
livello di
conoscenza
reciproca
possibile
49. Low coupling
• I servizi possono
dialogare tra loro
con il più basso
Enterprise Service Bus
livello di
conoscenza
reciproca
possibile
54. La promessa iniziale
• SOA era uno strumento per
– PermeIere le necessarie operazioni di pulizia
– PermeIere all’ IT di diventare un faKore chiave
per il business, invece che un peso.
– “è un casino”
55. La promessa iniziale
• SOA era uno strumento per
– PermeIere le necessarie operazioni di pulizia
– PermeIere all’ IT di diventare un faKore chiave
per il business, invece che un peso.
– “è un casino”
– “lo meAo in agenda per il 2010”
56. La promessa iniziale
• SOA era uno strumento per
– PermeIere le necessarie operazioni di pulizia
– PermeIere all’ IT di diventare un faKore chiave
per il business, invece che un peso.
– “è un casino”
– “lo meAo in agenda per il 2010”
– “Adesso non c’è tempo”
57. La promessa iniziale
• SOA era uno strumento per
– PermeIere le necessarie operazioni di pulizia
– PermeIere all’ IT di diventare un faKore chiave
per il business, invece che un peso.
– “è un casino”
– “lo meAo in agenda per il 2010”
– “Adesso non c’è tempo”
– “Possiamo farlo”
58. La promessa iniziale
• SOA era uno strumento per
– PermeIere le necessarie operazioni di pulizia
– PermeIere all’ IT di diventare un faKore chiave
per il business, invece che un peso.
– “è un casino”
– “lo meAo in agenda per il 2010”
– “Adesso non c’è tempo”
– “Possiamo farlo”
– “Perchè non fare quest’altra cosa, invece?”
59. La promessa iniziale
• SOA era uno strumento per
– PermeIere le necessarie operazioni di pulizia
– PermeIere all’ IT di diventare un faKore chiave
per il business, invece che un peso.
– “è un casino”
– “lo meAo in agenda per il 2010”
– “Adesso non c’è tempo”
– “Possiamo farlo”
– “Perchè non fare quest’altra cosa, invece?”
– “...Abbiamo un idea...”
60. La promessa iniziale
• SOA era uno strumento per
– PermeIere le necessarie operazioni di pulizia
– PermeIere all’ IT di diventare un faKore chiave
per il business, invece che un peso.
– “è un casino”
– “lo meAo in agenda per il 2010”
– “Adesso non c’è tempo”
– “Possiamo farlo”
– “Perchè non fare quest’altra cosa, invece?”
– “...Abbiamo un idea...”
– PermeIere alle imprese di ridurre il vandor lock‐
in e di recuperare il controllo sul budget dell’IT.
61. ...deFa in un altro modo Alberto Brandolini 01/0
Qui ci pouò stare l'esem
Amazon
• SOA è uno strumento per permeIere alle
grandi aziende di raggiungere la business
agility
– Cicli di rilascio dei prodo@ più brevi
– OIenere il feedback direIamente dal mercato
– Sperimentare nuovi modi di fare business
62. ...deFa in un altro modo Alberto Brandolini 01/0
Qui ci pouò stare l'esem
Amazon
• SOA è uno strumento per permeIere alle
grandi aziende di raggiungere la business
agility
– Cicli di rilascio dei prodo@ più brevi
– OIenere il feedback direIamente dal mercato
– Sperimentare nuovi modi di fare business
• SOA non è uno strumento per ricostruire
un’architeFura esistente con una nuova
tecnologia
63. Il @pico scenario SOA...
Lo scenario ideale Agile Lo scenario SOA
• Essere assun> in un’azienda • Generalmente la massima
la cui massima priorità sia il priorità dell’azienda NON è il
socware. socware
• lavorare nello stesso posto • consulen>, risorse a
• Avere accesso agli uten> progeIo, etc. sono la regola.
(qualsiasi cosa significhi) • Lo sviluppo spesso avviene in
• Essere liberi di crescere più sedi, frequente il ricorso
come team ed assumersi all’offshore.
responsabilità. • Pochi incen>vi alla crescita
• Essere liberi di scegliere ed all’assunzione di
responsabilità
logis>ca, hardware, etc.
• Controllo molto limitato su
logis>ca, hardware, etc.
65. Libertà!?
• Basso accoppiamento e standard di
comunicazione indipenden> dal linguaggio
offrono la possibilità di implementare
applicazioni nelle tecnologie più appropriate.
Enterprise Service Bus
66. Libertà!?
• Basso accoppiamento e standard di
comunicazione indipenden> dal linguaggio
offrono la possibilità di implementare
applicazioni nelle tecnologie più appropriate.
Enterprise Service Bus
74. Agile come Gioco Coopera@vo
• Lo sviluppo socware può essere definito
come un gioco coopera@vo, finito, direFo ad
un obieGvo(Cockburn)
Compe@@ve Coopera@ve
Finite, Carpet
wrestling Jazz
Non‐goal‐directed Dolls
Finite, SoLware
Tennis
goal‐directed Development
Career management
Infinite
Organiza>on Survival
75. So[ware development as a Game
• Finito: un progeIo comincia e finisce (in un
modo o nell’altro)
• DireFo ad un obieGvo: es. consegnare in
tempo
• Collabora@vo: s>amo giocando insieme agli
altri membri del team
• … ma non s>amo facendo solo questo:
– S>amo investendo sulla carriera
– Giochiamo a fare i genitori
– Etc. etc.
77. Alcuni elemen@ chiave
• Il Team
– Migliori talen> disponibili
– Obie@vi della squadra prima di quelli personali
– Elevata mo>vazione
• L’obieGvo
– Obie@vo chiaro
– esperienza limitata nel tempo
– Risultato misurabile
80. Elemen@ chiave
• Il team
– I migliori talen>?
– Obie@vi individuali (o di par>to) prima di quelli
del team, ... o del cliente... :‐(
• L’obieGvo
– Non così ben definito (a meno di credere ai
proclami eleIorali)
– Intervallo di tempo casuale
– Risultato non misurabile (ai posteri... )
82. Qual è il gioco di SOA?
• SOA è generalmente un gioco giocato ad un
livello differente dallo sviluppo:
– Gli obie@vi sono lega> ad una strategia di lungo
periodo
– I risulta> di medio termine possono risultare non
osservabili o misurabili per il team.
• Es. Budget
• Eliminazione di un sistema esterno
89. Il ritorno del Top Down
• Alcun strumen> reintroducono la filosofia
top‐down
– Ruoli prefissa>
– Tool driven design
– Sviluppo basato sulle specifiche
• Un ulteriore sgradevole effeIo ...
– Il feedback dal basso è scoraggiato
– Idee potenzialmente buone vanno perdute
90. Il ritorno del Top Down
• Alcun strumen> reintroducono la filosofia
top‐down
– Ruoli prefissa>
– Tool driven design
– Sviluppo basato sulle specifiche
• Un ulteriore sgradevole effeIo ...
– Il feedback dal basso è scoraggiato
– Idee potenzialmente buone vanno perdute
91. Il ritorno del Top Down
• Alcun strumen> reintroducono la filosofia
top‐down
– Ruoli prefissa>
– Tool driven design
– Sviluppo basato sulle specifiche
• Un ulteriore sgradevole effeIo ...
– Il feedback dal basso è scoraggiato
– Idee potenzialmente buone vanno perdute
92. Il ritorno del Top Down
• Alcun strumen> reintroducono la filosofia
top‐down
– Ruoli prefissa>
– Tool driven design
– Sviluppo basato sulle specifiche
• Un ulteriore sgradevole effeIo ...
– Il feedback dal basso è scoraggiato
– Idee potenzialmente buone vanno perdute
94. Prepariamo la scena
• Non generiamo aspeIa>ve difficili da
soddisfare
• Manteniamo il management al corrente dei
possibili problemi
– Le transizioni ai metodi agili meIono soIo
pressione le organizzazioni, esponendo problemi
che sono sempre sta> nascos> soIo il tappeto.
– Cer> problemi sono sempre sta> lì (magari soIo il
tappeto), meIerli in evidenza può apparire
sgradito.
100. Appoggiamoci su standard
• Come corollario a “decide as late as
possible”:
– Sviluppiamo su standard consolida> se possibile
• Migliore documentazione
• Rimpiazzabili
• ... s>amo facend strategie di lungo termine.
– Evitare le tentazioni di features vendor‐specific
– Manteniamo soIo controllo la deviazione dagli
standard
104. Evi@amo l’approccio Big‐Bang
• Un’approccio su larga scala introduce più
problemi lega> al coordinamento ed alla
condivisione di informazioni in evoluzione.
• Piccoli guerrilla‐teams possono fare un
lavoro migliore con un uso più efficiente delle
risorse
• Ogni frase che comincia con “ogni” è
potenzialmente pericolosa!
59
111. Never be blocked
• Le interdipendeze tra sistemi possono
rallentarci indefinitamente
• Non aspeFare qualcosa al di fuori del nostro
scope di progeIo.
– Mockiamola
– implemen>amola
– facciamone a meno
• ...qualsiasi cosa facciamo, facciamolo
pubblicamente.
60
112. Ripensiamo agli Sprechi
• Alcune forme di spreco “fare due volte la
stessa cosa” possono essere preferibili a
“documenta cos’hai faKo”
• Lo sviluppo su larga scala cambia le priorità
• I confini aziendali e logis>ci cambiano
– Cos> di comunicazione
– Passaggi di consegne
113. Il costo di comunicare
• Le informazioni non si propagano con la
documentazione, ma sapendo cosa stanno
facendo gli altri.
– Mantenere più team allinea>
• Scrum of Scrums
• Informa>on radiators
• Prossimità
• End of itera>on demo
• Quando è comunque meglio scrivere, i Wiki
permeIono di scrivere documentazione on‐
demand.
115. Pianificazione di alto livello
• SOA è un processo di trasformazione a lungo A
termine f
• Ogni passo cambia lo scenario
– Maggiore conoscenza del contesto
– Pesi e priorità differen>
– Differen> opportunità
• E’ necessario aggiornare e ri‐pianificare di
frequente, per centrare gli obie@vi (non
necessariamente quelli originali)
– Misuriamo, non assumiamo
– Ges@amo i rischi, non facciamo previsioni
– Non iniziamo nulla di cui non ci sia bisogno ora
118. Definizione degli ambien@
• In determina> contes>, gli ambien> di test
possono essere troppo complessi o costosi
per essere replica>
– Teniamo sempre in funzione i tool di con>nuous
integra>on
– Estendiamo gli ambien> di integrazione fin dove
possibile
– Troviamo un punto di equilibrio tra correIezza e
ges>bilità
– Manteniamo sempre i test aggiorna>
120. In due parole...
• Impediamo alle vecchie abitudini di farla da
padrone
• Prepariamoci a compromessi (temporanei)
– Teniamo traccia del prezzo da pagare
– Siamo pron> a cambiare, cogliendo nuove
opportunità
• Coinvolgiamo i gius> sponsor
• Comunicare!!!
• Prepariamoci ad un oIovolante!