Download - Agile Piano B

Transcript
Page 1: Agile Piano B

Il piano B

Page 2: Agile 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.

Page 3: Agile Piano B

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.

Page 4: Agile Piano B

Il codice legacy può essere una sgradevole sorpresa, già dalla prima user story

Page 5: Agile Piano B

Sommossa popolare

L’ambiente di lavoro può non essere serenissimo, ed i colleghi non sempre collaborativi o disponibili al cambiamento.

Page 6: Agile Piano B

La pianificazione originale è messa in crisi dal continuo susseguirsi di emergenze.

Page 7: Agile Piano B

Il tutto sotto la sgradevole sensazione di aver qualcuno che non aspetti altro di vederci fallire per poter dire “ve l’avevo detto”.

Page 8: Agile Piano B

Che dovemo fà’?

Page 9: Agile Piano B

Spesso “rinunciare” non è un’opzione.

Page 10: Agile Piano B

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

Page 11: Agile Piano B

Self Organizing Team

Page 12: Agile Piano B

Anatre o simili (ma sparpagliate), oppure storni nel cialo di roma

Pecore o galline

Il gruppo capace di organizzarsi da solo, come uno stormo di uccelli

Page 13: Agile Piano B

... o come un branco di pesci, in grado di sparpagliarsi di fronte ad una minaccia, e di ricompattarsi un attimo dopo

Page 14: Agile Piano B

Ma ciò a cui ambiamo veramente è l’affiatamento di una squadra di pallavolo in ricezione. Uno grida “Mia!” il collega copre, azione dopo azione.

Page 15: Agile Piano B

Non sempre organizzarsi da soli è una chiave per il successo.

Page 16: Agile Piano B

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.

Page 17: Agile Piano B

Daily Meeting

Page 18: Agile Piano B

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”

Page 19: Agile Piano B

Daily Meeting

Foto della classica famiglia italiana che mangia spaghetti

Photo courtesy of SugieeeeLa “tipica famiglia italiana” è incentrata sui rituali del pranzo, della cena, e del pranzo domenicale, che cementano e sincronizzano il gruppo.

Page 20: Agile Piano B

Ma in un contesto reale, essere tutti alla stessa ora nello stesso posto può rivelarsi una scommessa.

Page 21: Agile Piano B

Pair Programming

E’ forse la pratica più ambiziosa e controversa di XP, ma anche una delle più difficili da applicare.

Page 22: Agile Piano B

istintivamente, sappiamo che il Pairing è giusto, che in coppia si lavora meglio

Page 23: Agile Piano B

Sappiamo che coppie bene assortite sono complementari e che i punti di forza di uno compensano le debolezze dell’altro

Page 24: Agile Piano B

Ad un certo punto della nostra esistenza, abbiamo avuto la definitiva certezza che lavorare in coppia fosse la cosa giusta da fare...

Page 25: Agile Piano B

Poi, però, piccoli dettagli pratici hanno reso le cose più complicate del previsto.

Page 26: Agile Piano B

Foto di uno con l’ascella alzata, pubblicità di deodoranti

La prissimità con i colleghi può rivelarsi un elemento non particolarmente gradevole

Page 27: Agile Piano B

... o troppo gradevole, minando drammaticamente la produttività

Page 28: Agile Piano B

In altri casi, le coppie possono risultare non particolarmente bene assortite.

Page 29: Agile Piano B

- Beavis, dobbiamo, he he, ...accoppiarci...- He he, ... figo ...

In altri casi, le coppie possono risultare non particolarmente bene assortite.

Page 30: Agile Piano B

O più semplicemente,alcuni programmatori sono stati educati ad uno stile di programmazione più individualista.

Page 31: Agile Piano B

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.

Page 32: Agile Piano B

Abitudine

Copyright Wordenaar 2008

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

Page 33: Agile Piano B

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

Page 34: Agile Piano B

Facebook

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

Page 35: Agile Piano B

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.

Page 36: Agile Piano B

Pair

Programming

Apprendimento rapido

Conoscenza uniforme del

codice

Minor numero di errori nel

codice

Definition of Done

Intercettazione anticipata degli

errori

No code bottlenecks

Workstation dedicate

Team colocato

Ambiente adeguato

Planning game

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.

Page 37: Agile Piano B

Refactoring

Rilasci frequenti

Affidabilità

Definition of Done

Confidenza

Easy to change

Server dedicato

OO skills non banali

Test Driven

Development

Continuous

Integration

Testing Skills

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.

Page 38: Agile Piano B

Refactoring

Test Driven

Development

Continuous

Integration

Frequent

Planning

Short

Iterations

Attorno a cluster di pratiche consolidate è possibile aggregare via via altre pratiche, su un terreno più stabile...

Page 39: Agile Piano B

... aumentando considerevolmente il bonus ed il punteggio complessivo!!

Page 40: Agile Piano B

Open Discussion!