SlideShare a Scribd company logo
1 of 41
Download to read offline
Il piano B
Foto di prati verdi




Questo è un prato verde: il greenfield project.
Il cliente è collaborativo, con lui discutiamo i requisiti e proponiamo le nostre soluzioni. Le
iterazioni su susseguono mentre pian piano diventiamo sempre più esperti sia
nell’applicazione della metodologia, che delle tecnologie in uso.
Monnezza a napoli




In realtà non è tutto rose e fiori, non sempre possiamo partire dal foglio bianco. Anzi “il
foglio bianco” è per molti un illusione, e dobbiamo fare i conti con quanto abbiamo lasciato
“in giro”, o quanto abbiamo ereditato dai progetti precedenti.
Il codice legacy può essere una sgradevole sorpresa, già dalla prima user story
Sommossa popolare




L’ambiente di lavoro può non essere serenissimo, ed i colleghi non sempre collaborativi o
disponibili al cambiamento.
La pianificazione originale è messa in crisi dal continuo susseguirsi di emergenze.
Il tutto sotto la sgradevole sensazione di aver qualcuno che non aspetti altro di vederci fallire
per poter dire “ve l’avevo detto”.
Che dovemo fà’?
Spesso “rinunciare” non è un’opzione.
Si parte!



Nonostante tutto, spesso non abbiamo scelta, abbiamo armi spuntate, non siamo nel ruolo
adatto.
Sappiamo che tutto ciò è sbagliato, abbiamo una (vaga) idea di come dovrebbero andare le
cose invece, ma i nostri sogni non superano le chiacchiere alla macchina del caffè.
Self Organizing
     Team
Anatre o simili (ma                 Pecore o galline
    sparpagliate), oppure
    storni nel cialo di roma




Il gruppo capace di organizzarsi da solo, come uno stormo di uccelli
... o come un branco di pesci, in grado di sparpagliarsi di fronte ad una minaccia, e di
ricompattarsi un attimo dopo
Ma ciò a cui ambiamo veramente è l’affiatamento di una squadra di pallavolo in ricezione.
Uno grida “Mia!” il collega copre, azione dopo azione.
Non sempre organizzarsi da soli è una chiave per il successo.
Foto del tipo: “non c’è
   problema. Tu mi dici cosa
   devo fare, ed io lo faccio!”




E molto spesso “dimmi cosa devo fare, ed io lo faccio” è il massimo che possiamo ottenere.
Daily Meeting
Foto di un ingorgo
    stradale

    Oppure

    Foto di Fantozzi che
    cerca di prendere
    l’autobus




Molte pratiche agili non sono un’invenzione agile: sono pattern organizzativi robusti, che
permettono a determinate istituzioni di mantenersi intatte, da tempi immemorabili.
Chi ha fatto il militare sa cos’è uno “stand up meeting”
Foto della classica
      famiglia italiana che
      mangia spaghetti




                              Daily Meeting


                                                     Photo courtesy of Sugieeee
La “tipica famiglia italiana” è incentrata sui rituali del pranzo, della cena, e del pranzo
domenicale, che cementano e sincronizzano il gruppo.
Ma in un contesto reale, essere tutti alla stessa ora nello stesso posto può rivelarsi una
scommessa.
Pair Programming




E’ forse la pratica più ambiziosa e controversa di XP, ma anche una delle più difficili da
applicare.
istintivamente, sappiamo che il Pairing è giusto, che in coppia si lavora meglio
Sappiamo che coppie bene assortite sono complementari e che i punti di forza di uno
compensano le debolezze dell’altro
Ad un certo punto della nostra esistenza, abbiamo avuto la definitiva certezza che lavorare in
coppia fosse la cosa giusta da fare...
Poi, però, piccoli dettagli pratici hanno reso le cose più complicate del previsto.
Foto di uno con l’ascella
     alzata, pubblicità di
     deodoranti




La prissimità con i colleghi può rivelarsi un elemento non particolarmente gradevole
... o troppo gradevole, minando drammaticamente la produttività
In altri casi, le coppie possono risultare non particolarmente bene assortite.
- Beavis, dobbiamo, he he, ...accoppiarci...
- He he, ... figo ...
In altri casi, le coppie possono risultare non particolarmente bene assortite.
O più semplicemente,alcuni programmatori sono stati educati ad uno stile di
programmazione più individualista.
Abitudini



Ma il nemico numero uno è chiaramente rappresentato dalle abitudini. Cambiare tecnologia è
relativamente semplice, ma cambiare le abitudini è uno sforzo notevole e facil mente
sottovalutato.
Abitudine




                                                                               Copyright Wordenaar 2008

Alcune abitudini risalgono alla notte dei tempi, le facciamo senza pensarci anche se
ufficialmente sappiamo che sono sbagliate.
...dritti sul codice?




Altre sono un istinto incontrollabile, come aprire l’IDE e tuffarsi sul codice PRIMA di avere
capito che cosa effettivamente dobbiamo fare.
Facebook




Altre non c’erano fino a qualche mese fa, ma ora improvvisamente non siamo più in grado di
farne a meno.
Non si può fare...



Purtroppo, la prima fase di entusiasmo viene spessa seguita da un momento di disillusione,
in cui determinate pratiche vengono giudicate buone sulla carta ma non applicabili in un
determinato contesto.
Apprendimento
                            Planning game                          rapido




           Workstation dedicate                                          Conoscenza
                                                                         uniforme del
                                                                            codice

          Team colocato



                                             Pair                         Minor numero
                                                                           di errori nel
                                         Programming                          codice
            Ambiente
            adeguato


                                                                        Intercettazione
                                                                        anticipata degli
                                                                             errori




                                                           No code
                          Definition of                    bottlenecks
                            Done



Le pratiche agili non vivono in isolamento: definiscono un ecosistema complesso con effetti
di primo e secondo ordine. Richiedono il verificarsi di determinate precondizioni ed abilitano
determinati effetti anche su porzioni del processo apparentemente distanti.
Rilasci
      Server dedicato                                                     frequenti




                                                           Definition of
                                                             Done

                          Continuous                                                             Affidabilità
                          Integration



                                                                                Testing Skills
                                             Test Driven
   OO skills non                            Development
     banali
                        Refactoring



                                                                           Confidenza




                           Easy to change




Alcune pratiche si rafforzano tra loro, formando cluster. TDD permette di aumentare la
confidenza sul codice permettendo il refactoring. Test automatizzati inclusi nella suite di
continuous integration aumentano il livello di condivisione dello stato del codice e
permettono rilasci più frequenti.
Continuous
                      Short              Integration
                   Iterations


                                                             Test Driven
                                                            Development
                                     Refactoring




                                                           Frequent
                                                           Planning




Attorno a cluster di pratiche consolidate è possibile aggregare via via altre pratiche, su un
terreno più stabile...
... aumentando considerevolmente il bonus ed il punteggio complessivo!!
Open Discussion!
Alberto.brandolini@gmail.com

http://ziobrando.blogspot.com

More Related Content

Viewers also liked

Writing Domain-Specific Languages in Groovy
Writing Domain-Specific Languages in GroovyWriting Domain-Specific Languages in Groovy
Writing Domain-Specific Languages in GroovyGuillaume Laforge
 
Software ...e tutto ciò che comporta
Software ...e tutto ciò che comportaSoftware ...e tutto ciò che comporta
Software ...e tutto ciò che comportaAlberto Brandolini
 
Buzzword Deathmatch: Agile vs SOA
Buzzword Deathmatch: Agile vs SOABuzzword Deathmatch: Agile vs SOA
Buzzword Deathmatch: Agile vs SOAAlberto Brandolini
 
Il Web design nella Pubblica Amministrazione in 10 passi
Il Web design nella Pubblica Amministrazione in 10 passiIl Web design nella Pubblica Amministrazione in 10 passi
Il Web design nella Pubblica Amministrazione in 10 passiMassimo Azzolini
 
Why do all my ddd apps look the same - Vienna 2014
Why do all my ddd apps look the same - Vienna 2014Why do all my ddd apps look the same - Vienna 2014
Why do all my ddd apps look the same - Vienna 2014Alberto Brandolini
 
Comparing different concurrency models on the JVM
Comparing different concurrency models on the JVMComparing different concurrency models on the JVM
Comparing different concurrency models on the JVMMario Fusco
 
Design leadership and experience management
Design leadership and experience managementDesign leadership and experience management
Design leadership and experience managementLuca Mascaro
 
Projections explained
Projections explainedProjections explained
Projections explainedYves Reynhout
 
The final words about software estimation
The final words about software estimationThe final words about software estimation
The final words about software estimationAlberto Brandolini
 

Viewers also liked (17)

Writing Domain-Specific Languages in Groovy
Writing Domain-Specific Languages in GroovyWriting Domain-Specific Languages in Groovy
Writing Domain-Specific Languages in Groovy
 
Software ...e tutto ciò che comporta
Software ...e tutto ciò che comportaSoftware ...e tutto ciò che comporta
Software ...e tutto ciò che comporta
 
Buzzword Deathmatch: Agile vs SOA
Buzzword Deathmatch: Agile vs SOABuzzword Deathmatch: Agile vs SOA
Buzzword Deathmatch: Agile vs SOA
 
Il Web design nella Pubblica Amministrazione in 10 passi
Il Web design nella Pubblica Amministrazione in 10 passiIl Web design nella Pubblica Amministrazione in 10 passi
Il Web design nella Pubblica Amministrazione in 10 passi
 
Why do all my ddd apps look the same - Vienna 2014
Why do all my ddd apps look the same - Vienna 2014Why do all my ddd apps look the same - Vienna 2014
Why do all my ddd apps look the same - Vienna 2014
 
Optimized for what
Optimized for whatOptimized for what
Optimized for what
 
Comparing different concurrency models on the JVM
Comparing different concurrency models on the JVMComparing different concurrency models on the JVM
Comparing different concurrency models on the JVM
 
Design leadership and experience management
Design leadership and experience managementDesign leadership and experience management
Design leadership and experience management
 
Model storming
Model stormingModel storming
Model storming
 
Context Mapping In Action
Context Mapping In ActionContext Mapping In Action
Context Mapping In Action
 
Projections explained
Projections explainedProjections explained
Projections explained
 
Transactions redefined
Transactions redefinedTransactions redefined
Transactions redefined
 
Event storming recipes
Event storming recipesEvent storming recipes
Event storming recipes
 
The final words about software estimation
The final words about software estimationThe final words about software estimation
The final words about software estimation
 
Event storming
Event stormingEvent storming
Event storming
 
Kickstarting Design Thinking
Kickstarting Design ThinkingKickstarting Design Thinking
Kickstarting Design Thinking
 
The Build Trap
The Build TrapThe Build Trap
The Build Trap
 

Similar to Agile Piano B

Le 3 Rivoluzioni - Italian Agile Day
Le 3 Rivoluzioni - Italian Agile DayLe 3 Rivoluzioni - Italian Agile Day
Le 3 Rivoluzioni - Italian Agile DayClaudio Perrone
 
Intoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie AgiliIntoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie AgiliStefano Leli
 
Stage 2013
Stage 2013Stage 2013
Stage 2013biqiku1
 
Reshaping enterrprise software
Reshaping enterrprise softwareReshaping enterrprise software
Reshaping enterrprise softwareAlberto Brandolini
 
Wpc2019 - Distruggere DevOps, la storia di un vero team
Wpc2019 - Distruggere DevOps, la storia di un vero teamWpc2019 - Distruggere DevOps, la storia di un vero team
Wpc2019 - Distruggere DevOps, la storia di un vero teamAlessandro Alpi
 
Una fugace occhiata al Test Driven Development (2006)
Una fugace occhiata al Test Driven Development  (2006)Una fugace occhiata al Test Driven Development  (2006)
Una fugace occhiata al Test Driven Development (2006)Roberto Bettazzoni
 
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...Pietro Di Bello
 

Similar to Agile Piano B (8)

Le 3 Rivoluzioni - Italian Agile Day
Le 3 Rivoluzioni - Italian Agile DayLe 3 Rivoluzioni - Italian Agile Day
Le 3 Rivoluzioni - Italian Agile Day
 
Intoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie AgiliIntoduzione Alle Metodologie Agili
Intoduzione Alle Metodologie Agili
 
Stage 2013
Stage 2013Stage 2013
Stage 2013
 
Non è affatto semplice
Non è affatto sempliceNon è affatto semplice
Non è affatto semplice
 
Reshaping enterrprise software
Reshaping enterrprise softwareReshaping enterrprise software
Reshaping enterrprise software
 
Wpc2019 - Distruggere DevOps, la storia di un vero team
Wpc2019 - Distruggere DevOps, la storia di un vero teamWpc2019 - Distruggere DevOps, la storia di un vero team
Wpc2019 - Distruggere DevOps, la storia di un vero team
 
Una fugace occhiata al Test Driven Development (2006)
Una fugace occhiata al Test Driven Development  (2006)Una fugace occhiata al Test Driven Development  (2006)
Una fugace occhiata al Test Driven Development (2006)
 
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...
Breaking the ice with agile - cinque strade per rompere il ghiaccio e introdu...
 

More from Alberto Brandolini

L'illusione dell'ortogonalità
L'illusione dell'ortogonalitàL'illusione dell'ortogonalità
L'illusione dell'ortogonalitàAlberto Brandolini
 
Redesigning everything ITARC Stockholm 2021
Redesigning everything ITARC Stockholm 2021Redesigning everything ITARC Stockholm 2021
Redesigning everything ITARC Stockholm 2021Alberto Brandolini
 
Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)Alberto Brandolini
 
Software design as a cooperative game with EventStorming
Software design as a cooperative game with EventStormingSoftware design as a cooperative game with EventStorming
Software design as a cooperative game with EventStormingAlberto Brandolini
 
Guerrilla portfolio management
Guerrilla portfolio managementGuerrilla portfolio management
Guerrilla portfolio managementAlberto Brandolini
 
Idea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw editionIdea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw editionAlberto Brandolini
 
Bullshit Asymmetry Principle lightning talk
Bullshit Asymmetry Principle lightning talkBullshit Asymmetry Principle lightning talk
Bullshit Asymmetry Principle lightning talkAlberto Brandolini
 
Rethinking enterprise software - Codemotion 2014
Rethinking enterprise software - Codemotion 2014Rethinking enterprise software - Codemotion 2014
Rethinking enterprise software - Codemotion 2014Alberto Brandolini
 

More from Alberto Brandolini (20)

L'illusione dell'ortogonalità
L'illusione dell'ortogonalitàL'illusione dell'ortogonalità
L'illusione dell'ortogonalità
 
Redesigning everything ITARC Stockholm 2021
Redesigning everything ITARC Stockholm 2021Redesigning everything ITARC Stockholm 2021
Redesigning everything ITARC Stockholm 2021
 
What lies beneath
What lies beneathWhat lies beneath
What lies beneath
 
Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)
 
Extreme DDD modelling
Extreme DDD modellingExtreme DDD modelling
Extreme DDD modelling
 
The gordian knot
The gordian knotThe gordian knot
The gordian knot
 
Software design as a cooperative game with EventStorming
Software design as a cooperative game with EventStormingSoftware design as a cooperative game with EventStorming
Software design as a cooperative game with EventStorming
 
La fatina dei denti
La fatina dei dentiLa fatina dei denti
La fatina dei denti
 
50.000 orange stickies later
50.000 orange stickies later50.000 orange stickies later
50.000 orange stickies later
 
The alignment
The alignmentThe alignment
The alignment
 
Chasing elephants
Chasing elephantsChasing elephants
Chasing elephants
 
Guerrilla portfolio management
Guerrilla portfolio managementGuerrilla portfolio management
Guerrilla portfolio management
 
The precision blade
The precision bladeThe precision blade
The precision blade
 
Idea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw editionIdea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw edition
 
Managing debt remastered
Managing debt remasteredManaging debt remastered
Managing debt remastered
 
The sweet spot
The sweet spotThe sweet spot
The sweet spot
 
Bullshit Asymmetry Principle lightning talk
Bullshit Asymmetry Principle lightning talkBullshit Asymmetry Principle lightning talk
Bullshit Asymmetry Principle lightning talk
 
It's not simple at all
It's not simple at allIt's not simple at all
It's not simple at all
 
Pissing against the wind
Pissing against the windPissing against the wind
Pissing against the wind
 
Rethinking enterprise software - Codemotion 2014
Rethinking enterprise software - Codemotion 2014Rethinking enterprise software - Codemotion 2014
Rethinking enterprise software - Codemotion 2014
 

Agile Piano B

  • 2. Foto di prati verdi Questo è un prato verde: il greenfield project. Il cliente è collaborativo, con lui discutiamo i requisiti e proponiamo le nostre soluzioni. Le iterazioni su susseguono mentre pian piano diventiamo sempre più esperti sia nell’applicazione della metodologia, che delle tecnologie in uso.
  • 3. Monnezza a napoli In realtà non è tutto rose e fiori, non sempre possiamo partire dal foglio bianco. Anzi “il foglio bianco” è per molti un illusione, e dobbiamo fare i conti con quanto abbiamo lasciato “in giro”, o quanto abbiamo ereditato dai progetti precedenti.
  • 4. Il codice legacy può essere una sgradevole sorpresa, già dalla prima user story
  • 5. Sommossa popolare L’ambiente di lavoro può non essere serenissimo, ed i colleghi non sempre collaborativi o disponibili al cambiamento.
  • 6. La pianificazione originale è messa in crisi dal continuo susseguirsi di emergenze.
  • 7. Il tutto sotto la sgradevole sensazione di aver qualcuno che non aspetti altro di vederci fallire per poter dire “ve l’avevo detto”.
  • 9. Spesso “rinunciare” non è un’opzione.
  • 10. Si parte! Nonostante tutto, spesso non abbiamo scelta, abbiamo armi spuntate, non siamo nel ruolo adatto. Sappiamo che tutto ciò è sbagliato, abbiamo una (vaga) idea di come dovrebbero andare le cose invece, ma i nostri sogni non superano le chiacchiere alla macchina del caffè.
  • 12. Anatre o simili (ma Pecore o galline sparpagliate), oppure storni nel cialo di roma Il gruppo capace di organizzarsi da solo, come uno stormo di uccelli
  • 13. ... o come un branco di pesci, in grado di sparpagliarsi di fronte ad una minaccia, e di ricompattarsi un attimo dopo
  • 14. Ma ciò a cui ambiamo veramente è l’affiatamento di una squadra di pallavolo in ricezione. Uno grida “Mia!” il collega copre, azione dopo azione.
  • 15. Non sempre organizzarsi da soli è una chiave per il successo.
  • 16. Foto del tipo: “non c’è problema. Tu mi dici cosa devo fare, ed io lo faccio!” E molto spesso “dimmi cosa devo fare, ed io lo faccio” è il massimo che possiamo ottenere.
  • 18. Foto di un ingorgo stradale Oppure Foto di Fantozzi che cerca di prendere l’autobus Molte pratiche agili non sono un’invenzione agile: sono pattern organizzativi robusti, che permettono a determinate istituzioni di mantenersi intatte, da tempi immemorabili. Chi ha fatto il militare sa cos’è uno “stand up meeting”
  • 19. Foto della classica famiglia italiana che mangia spaghetti Daily Meeting Photo courtesy of Sugieeee La “tipica famiglia italiana” è incentrata sui rituali del pranzo, della cena, e del pranzo domenicale, che cementano e sincronizzano il gruppo.
  • 20. Ma in un contesto reale, essere tutti alla stessa ora nello stesso posto può rivelarsi una scommessa.
  • 21. Pair Programming E’ forse la pratica più ambiziosa e controversa di XP, ma anche una delle più difficili da applicare.
  • 22. istintivamente, sappiamo che il Pairing è giusto, che in coppia si lavora meglio
  • 23. Sappiamo che coppie bene assortite sono complementari e che i punti di forza di uno compensano le debolezze dell’altro
  • 24. Ad un certo punto della nostra esistenza, abbiamo avuto la definitiva certezza che lavorare in coppia fosse la cosa giusta da fare...
  • 25. Poi, però, piccoli dettagli pratici hanno reso le cose più complicate del previsto.
  • 26. Foto di uno con l’ascella alzata, pubblicità di deodoranti La prissimità con i colleghi può rivelarsi un elemento non particolarmente gradevole
  • 27. ... o troppo gradevole, minando drammaticamente la produttività
  • 28. In altri casi, le coppie possono risultare non particolarmente bene assortite.
  • 29. - Beavis, dobbiamo, he he, ...accoppiarci... - He he, ... figo ... In altri casi, le coppie possono risultare non particolarmente bene assortite.
  • 30. O più semplicemente,alcuni programmatori sono stati educati ad uno stile di programmazione più individualista.
  • 31. Abitudini Ma il nemico numero uno è chiaramente rappresentato dalle abitudini. Cambiare tecnologia è relativamente semplice, ma cambiare le abitudini è uno sforzo notevole e facil mente sottovalutato.
  • 32. Abitudine Copyright Wordenaar 2008 Alcune abitudini risalgono alla notte dei tempi, le facciamo senza pensarci anche se ufficialmente sappiamo che sono sbagliate.
  • 33. ...dritti sul codice? Altre sono un istinto incontrollabile, come aprire l’IDE e tuffarsi sul codice PRIMA di avere capito che cosa effettivamente dobbiamo fare.
  • 34. Facebook Altre non c’erano fino a qualche mese fa, ma ora improvvisamente non siamo più in grado di farne a meno.
  • 35. Non si può fare... Purtroppo, la prima fase di entusiasmo viene spessa seguita da un momento di disillusione, in cui determinate pratiche vengono giudicate buone sulla carta ma non applicabili in un determinato contesto.
  • 36. Apprendimento Planning game rapido Workstation dedicate Conoscenza uniforme del codice Team colocato Pair Minor numero di errori nel Programming codice Ambiente adeguato Intercettazione anticipata degli errori No code Definition of bottlenecks Done Le pratiche agili non vivono in isolamento: definiscono un ecosistema complesso con effetti di primo e secondo ordine. Richiedono il verificarsi di determinate precondizioni ed abilitano determinati effetti anche su porzioni del processo apparentemente distanti.
  • 37. Rilasci Server dedicato frequenti Definition of Done Continuous Affidabilità Integration Testing Skills Test Driven OO skills non Development banali Refactoring Confidenza Easy to change Alcune pratiche si rafforzano tra loro, formando cluster. TDD permette di aumentare la confidenza sul codice permettendo il refactoring. Test automatizzati inclusi nella suite di continuous integration aumentano il livello di condivisione dello stato del codice e permettono rilasci più frequenti.
  • 38. Continuous Short Integration Iterations Test Driven Development Refactoring Frequent Planning Attorno a cluster di pratiche consolidate è possibile aggregare via via altre pratiche, su un terreno più stabile...
  • 39. ... aumentando considerevolmente il bonus ed il punteggio complessivo!!