L’importante è avere disciplina
Ma sì dai, l’importante è avere disciplina, darsi un metodo. Poi agile o non agile non importa, è uguale.
No, hai capito?
No.
July 23 2010 | Base | No Comments »
Ma sì dai, l’importante è avere disciplina, darsi un metodo. Poi agile o non agile non importa, è uguale.
No, hai capito?
No.
July 23 2010 | Base | No Comments »
Ron Jeffries, nella mailing list extremeprogramming@yahoogroups.com, in queste ultime ore a chi scriveva
[Unified Process] has [a flow with all the steps] formally described. I know [extreme programming] have different philosophies but they are both methodologies and should them both have a formal process.
rispondeva così
Sorry. Agile processes are not formal.
Questa risposta sintetizza (perché chiaramente si tratta di sintesi affatto esaustiva) molti aspetti difficili dell’approccio al mondo agile. Tra i primi che mi vengono in mente ora, mentre devo scappare per tornare al mio lavoro, trovo:
Quello che credo sia il nostro dovere tutti i giorni è crescere aumentando la nostra consapevolezza della complessità del contesto dei progetti IT e saper galleggiare su quelle onde ridefinendo ogni giorno il nostro equilibrio, senza affetto per quello trovato oggi, senza nostalgia per quello abbandonato ieri.
Trovi sia difficile? Lo è!
June 11 2010 | Base | 1 Comment »
Mi sono imbattuto poco fa in questo interessante post di Robert ‘Uncle Bob’ Martin a proposito dell’impoverimento del termine “agile” nell’industria del software. Meglio ancora, l’articolo parla della sovrageneralizzazione di termini il cui significato è invece limitato, per quanto profondo, per quanto vasto, e al tipico sfruttamento pubblicitario che ne consegue. È ovvio – considerato l’autore del post – che il nucleo di questa argomentazione sia posto sull’attributo agile, particolarmente discusso, celebrato o condannato in questi ultimi anni.
L’argomentazione di Martin parte da considerazioni sulla metafisica aristotelica per giungere a dichiarazioni concrete e molto chiare. I riferimenti alla storia della filosofia, devo ammettere, mi permettono di togliermi qualche soddisfazione: se anche luminari indiscussi del software internazionale come Martin li usano, allora io non devo aver fatto troppo male in passato!
Scherzi a parte, il passaggio che mi è piaciuto di più è questo
The danger is clear. The word “agile” will become meaningless. It will be hijacked by loads of marketers and consultants to mean whatever they want it to mean. It will be used in company names, and product names, and project names, and any other name in order to lend credibility to that name. In the end it will mean as much as Structured, Modular, or Object.
Io ho smesso di usare la parola agile da qualche tempo. I miei ultimi clienti – perfino quelli che mi contattano perché non vedono l’ora di entrare nel mondo dei metodi agili – non mi sentono più pronunciarla. Combatto una lotta linguistica quotidiana per formulare concetti e frasi che aggirino queste 5 lettere in successione: a, g, i, l, ed e. Sono talmente preso da questa decisione ellittica da nutrire ormai forti dubbi anche sul nome di questo blog.
Perché questa avversione? Perché così all’improvviso? Per diversi motivi.
Qualcuno diceva riguardo l’abuso di cose e concetti:
Inventato il martello, tutto diventa un chiodo
Ecco, io vorrei fare l’uso migliore del mio martello, ma solo sui chiodi.
I processi agili sono il mio mezzo, chiunque mai li chiamerà come vorrà. Cercare di essere produttivi nel mondo reale, questo è il mio unico obiettivo.
February 27 2010 | Base | 3 Comments »
In questo post – scoperto via Alberto – si espongono i vantaggi dello UX design – la progettazione della user experience – condotto in coppia. Noto interessanti analogie con uno dei miei primi post…
November 23 2009 | Base | 1 Comment »
Sai cos’è questo? Un saccottino.
Non sembra, non è esattamente l’immagine familiare che hai del saccottino che forse ha accompagnato la tua infanzia, ma è invero un saccottino. L’ho trovato ieri nel mio pacco e sono rimasto abbastanza sorpreso. Anzi, devo ammettere di aver provato inizialmente un certo sgomento, una certa diffidenza. Farà mica male? Poi ho capito che si trattava solamente di due mezzi saccottini evidentemente sfasati [1] rispetto alla catena di produzione in azione nello stabilimento industriale dove questi due sfortunati saccottini erano in fase di confezionamento .
Poi ho capito anche un’altra cosa. Il mio sgomento trovava le sue radici nella rarità. Non mi era mai successo di comprare saccottini difettosi. Il prodotto esente da difetti nell’industria del saccottino è una rarità. E così in molte, moltissime altre industrie.
Che l’industria del software sia storicamente di tutt’altra qualità è una cosa che percepisco io e percepisci anche tu, anche senza dati oggettivi.
Ecco, tutto il senso dietro a SCRUM, dietro a Extreme Programming, dietro allo sviluppo agile, dietro al Lean Software Development… è proprio questo: lo sforzo di ricerca di un mondo in cui un software difettoso generi lo stesso sgomento di un saccottino sfasato.
[1] Uno sfasamento di mezzo saccottino è, in termini controllistici, uno sfasamento di 90°. Lo scrivo qui un po’ perché amo le note a pie’ di pagina, un po’ perché l’ingegneria dell’automazione è leggermente off topic in questa sede, ma solo leggermente.
August 25 2009 | Base | 2 Comments »
In un saliente post del caro Alessandro Astarita leggo
Per avere successo con Scrum, XP o ogni altra metodologia agile, bisogna fare refactoring. Non è opzionale, è indispensabile.
tratto da un post di Ron Jeffries.
Il refactoring è una pratica essenziale. Essenziale, nel caso la sedimentazione linguistica non lo portasse alla luce immediatamente, significa relativo all’essenza, fondamentale, che è assolutamente necessario.
Assolutamente necessario.
Troppo spesso si parla di agile – buzzword che francamente sto cessando di impiegare – e si pensa di poter garantire evolutività incrementale solo con un po’ di iterazioni buttate in un calendario e delle user story scritte male. Bisogna essere produttivi per un mercato che cambia. Bisogna essere pronti a rispondere agli stimoli.
Il codice deve essere pronto a seguirci. Ovunque.
June 20 2009 | Base | 1 Comment »
I valori Extreme Programming sono il compendio etico sottostante la metodologia, il metro secondo il quale valutare la correttezza di ogni decisione di progetto. Il valore della comunicazione consiste nella condivisione all’interno di un team XP dello stato di qualsiasi cosa sia ritenuta importante dal team stesso.
I team XP condividono informazione spesso, volentieri e su più livelli. Utilizzano il pair programming, per trasferire rapidamente conoscenza da uno sviluppatore all’altro; spazi di lavoro condivisi corredati di grandi radiatori di informazione – come tabelloni, lavagne e poster, per permettere a tutti, anche ai non-sviluppatori, di vedere e sentire la situazione; utilizzano i brevi standup meeting quotidiani per aggiornare l’intero team sui problemi percepiti; i test automatici e la continous integration, per condividere un’oggettiva metrica dell’integrità del codice; incentivano il cliente a collaborare attivamente al progetto giorno dopo giorno per facilitare la comunicazione del lavoro svolto da una parte e del mutare dei requisiti più volatili dall’altra.
Una forma forse ancora più preziosa di comunicazione, anzi, di metacomunicazione permette il miglioramento incrementale della comunicazione stessa: la restrospettiva. Con questo meccanismo il team riflette sul proprio operato e sulle pratiche di comunicazione e di condivisione, arrivando a decidere se interrompere quelle meno fruttuose, se provarne di più promettenti o semplicemente se migliorare l’attuazione di quelle che sembra potrebbero funzionare meglio.
La comunicazione insomma è un valore prezioso all’interno di un team Extreme Programming ed ogni dubbio, ogni decisione andrebbero risolti dopo essersi posti questa domanda: cosa permetterà al mio team oggi di comunicare al meglio?
Ieri ti sei posto questa domanda? Oggi te la porrai?
April 02 2009 | I valori XP | No Comments »
Una piccola, piccolissima sorpresa: la traduzione italiana del Manifesto Agile.
Ho pensato che fosse ora di averne una in giro. Per rappresentanza, per divulgabilità… ci sono un sacco di buoni motivi.
Buona lettura. E buona evangelizzazione!
p.s. Ovviamente, mi fai sapere se ti sembra una buona traduzione? Se vuoi lascia qui sotto i tuoi appunti a commento. Grazie!
January 23 2009 | Base | 5 Comments »
All’indomani dell’AgileCamp2009 e delle belle e costruttive discussioni intercorse fra i partecipanti riguardo le sinergie possibili fra sviluppatori e specialisti di interaction design nello sviluppo agile, ho deciso di inaugurare una nuova categoria di post dedicata ai ruoli nell’Extreme Programming proprio con un post – indovina un po! – sugli interaction designer. continue reading »
January 20 2009 | I ruoli XP | 3 Comments »
Molte pratiche extreme programming hanno a che fare con il coraggio.
La parola “coraggio” non va letta con riferimento ad un atteggiamento sprezzante del pericolo da parte dei membri del team di sviluppo – ma sì iniziamo a scrivere codice, poi si vedrà! – quanto piuttosto all’assenza di paura.
“Ma io non ho paura quando programmo!” molti di voi staranno pensando in questo momento. Bene, sono pronto a smentirne molti; mi sarà sufficiente porre una sola domanda:
Avete appena finito di lavorare ad un componente che ha richiesto 10 giornate (2 settimane!) del vostro prezioso lavoro. Ora il cliente ha ragionevolmente deciso, sulla base di ulteriori informazioni tecniche e di mercato di cui prima non disponeva, di modificare quel componente. Ciò richiederà di modificare ed integrare il lavoro appena concluso in misura tale da rischiare di compromettere il lavoro perfettamente compiuto fino a quel momento.
L’idea di manomettere il codice già scritto vi lascia perfettamente tranquilli?
May 18 2008 | I valori XP | No Comments »