Gemme agili
Mary Poppendieck scrive, in Principles of Lean Thinking (pdf);
The Basic Principles of Lean Development
Add Nothing But Value (Eliminate Waste)
Center On The People Who Add Value
Flow Value From Demand (Delay Commitment)
Optimize Across Organizations
Questi principi si traducono abbastanza facilmente nella pratica di sviluppare in maniera agile. Eliminare gli sprechi: quante cose si fanno in un progetto software che non servono a niente? Feature aggiunte perché lo sviluppatore le trovava interessanti, o magari che fanno parte della spec ma in realtà al committente non servono… Ottimizzare trasversalmente rispetto alle organizzazioni (fiuuu… suona meglio in inglese): coinvolgere il cliente in ogni passo dello sviluppo. Far fluire il valore dalle richieste: you ain’t gonna need it, non far nulla che non sia legato alla storia, al test su cui stai lavorando in questo preciso momento. Concentrati sulle persone: non considerare il programmatore come scimmia sottopagata che esegue lavori in maniera semiautomatica. Il programmatore è al centro del processo di sviluppo: è lui che conosce i veri dettagli da cui dipende la buona riuscita del progetto.
Mi piace molto questo elenco che Zio Bob (jpg)
ha pubblicato in The Agile Test:
Lower your hands if:
- You are not working on an Agile Project.
- You are working on an Agile project and the iteration size is > 30 days.
- Your iteration size is > 2 weeks.
- You are not working in an open office or lab.
- You have no unit tests.
- You are not writing unit tests first.
- You have no acceptance tests whether automated or manual.
- You have no continuous build process.
- You have no automated acceptance tests.
- You are not pairing
- Less than 100% of your features are defined by automated acceptance tests.
Uberto Barbini ha scritto, nella mailing list italiana di Extreme Programming, questo elenco, in risposta a una domanda di Francesco Cirillo:
Quali sono per voi i 10 problemi/sfide principali che avete dovuto
affrontare/state affrontando per applicare/introdurre XP/metodi
Agili?Dal piu’ importante al meno
- Capire realmente io cosa vuol dire Agile
- Trasmettere l’idea di lavoro di squadra agli altri componenti del
team- Convincere il dirigente che deve rivolgersi al team e non alle
singole personetutto il resto IMHO sono dettagli. Cmq cito in ordine sparso:
- Imparare a fare efficamente Pair
- Disciplina negli UT
- Scrivere e splittare le storie
- Stimare i task
- Coinvolgere il cliente (p.e. FIT)
- Continuare a rifattorizzare il vecchio codice
- Pensare alle classi in termini di behavior e non di entity
]]>