Agile Piano B

1,260
-1

Published on

My presentation for the Italian Agile Day 2008 in Bologna. The idea was to have a vivid launcher for the following discussion.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,260
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Agile Piano B

  1. 1. Il piano B
  2. 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. 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. 4. Il codice legacy può essere una sgradevole sorpresa, già dalla prima user story
  5. 5. Sommossa popolare L’ambiente di lavoro può non essere serenissimo, ed i colleghi non sempre collaborativi o disponibili al cambiamento.
  6. 6. La pianificazione originale è messa in crisi dal continuo susseguirsi di emergenze.
  7. 7. Il tutto sotto la sgradevole sensazione di aver qualcuno che non aspetti altro di vederci fallire per poter dire “ve l’avevo detto”.
  8. 8. Che dovemo fà’?
  9. 9. Spesso “rinunciare” non è un’opzione.
  10. 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è.
  11. 11. Self Organizing Team
  12. 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. 13. ... o come un branco di pesci, in grado di sparpagliarsi di fronte ad una minaccia, e di ricompattarsi un attimo dopo
  14. 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. 15. Non sempre organizzarsi da soli è una chiave per il successo.
  16. 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.
  17. 17. Daily Meeting
  18. 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. 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. 20. Ma in un contesto reale, essere tutti alla stessa ora nello stesso posto può rivelarsi una scommessa.
  21. 21. Pair Programming E’ forse la pratica più ambiziosa e controversa di XP, ma anche una delle più difficili da applicare.
  22. 22. istintivamente, sappiamo che il Pairing è giusto, che in coppia si lavora meglio
  23. 23. Sappiamo che coppie bene assortite sono complementari e che i punti di forza di uno compensano le debolezze dell’altro
  24. 24. Ad un certo punto della nostra esistenza, abbiamo avuto la definitiva certezza che lavorare in coppia fosse la cosa giusta da fare...
  25. 25. Poi, però, piccoli dettagli pratici hanno reso le cose più complicate del previsto.
  26. 26. Foto di uno con l’ascella alzata, pubblicità di deodoranti La prissimità con i colleghi può rivelarsi un elemento non particolarmente gradevole
  27. 27. ... o troppo gradevole, minando drammaticamente la produttività
  28. 28. In altri casi, le coppie possono risultare non particolarmente bene assortite.
  29. 29. - Beavis, dobbiamo, he he, ...accoppiarci... - He he, ... figo ... In altri casi, le coppie possono risultare non particolarmente bene assortite.
  30. 30. O più semplicemente,alcuni programmatori sono stati educati ad uno stile di programmazione più individualista.
  31. 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. 32. Abitudine Copyright Wordenaar 2008 Alcune abitudini risalgono alla notte dei tempi, le facciamo senza pensarci anche se ufficialmente sappiamo che sono sbagliate.
  33. 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. 34. Facebook Altre non c’erano fino a qualche mese fa, ma ora improvvisamente non siamo più in grado di farne a meno.
  35. 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. 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. 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. 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. 39. ... aumentando considerevolmente il bonus ed il punteggio complessivo!!
  40. 40. Open Discussion!
  41. 41. Alberto.brandolini@gmail.com http://ziobrando.blogspot.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×