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.
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.
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.
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...