Venerdì 1° Dicembre 2006 mi sono recato insieme ad Andrea e a suo cugino Simone al terzo Italian Agile Day, tenutosi ad Assago (centro congressi Milanofiori - Milano).
L'Agile Day è una conferenza dedicata alla diffusione delle metodologie agili, quali eXtreme Programming e Scrum, e di tutto ciò che circonda il mondo agile (Linguaggi, metodi e tecniche, framework,ecc)
Partiti da Varese alle sette e mezza del mattino siamo arrivati ad Assago in poco più di un ora.
A dare il via ai lavori è stato Marco Abis, promotore dell'iniziativa. L'idea di quest'anno è stata l'open space conference: solo due sessioni plenarie e molti piccoli workshop in contemporanea (track).
La prima sessione plenaria è stata tenuta da
Luca Minudel e
Nicola Canalini del team Ferrari racing. E' stato bello vedere come Xp venga applicata con successo in team dove il dinamismo sia necessario e continuo, e dove i termini di consegna siano categorici e frequenti (se il gran premio o il test drive della macchina è alle 14:00 il software deve essere pronto e testato prima delle 14...).
Successivamente ho avuto modo di assistere a diverse sessioni. Nella prima, tenuta da
Luca Grulla, si è parlato di Scrum.
Scrum è una metodologia agile progenitrice di eXtreme Programming, ne condivide obbiettivi (come la massimizzazione della comunicazione tra il team e il costumer), ed è molto adatta a progetti che richiedono molto dinamismo. Non posso ancora esprimere una opinione precisa su Scrum: mi sembra più "libera" di Xp, dato che posso prendere le pratiche che più mi sembrano congeniali per il mio problema da altri metodi. Forse proprio questa libertà ne è il tallone d'Achille: troppa libertà può significare confusione.
Nel contempo
Matteo Vaccari ha tenuto una seconda track sul Test Driven Development proponendo il classico
kata del Bowling di Uncle Bob. Il TDD è un'ottima tecnica di Xp per sviluppare software testato e funzionante in breve tempo. Durante la track (e la giornata) è traspirato il fatto che molti scambiano il TDD con il Test First, ovvero prima faccio il test e poi scrivo la funzione. Il TDD è un metodo di sviluppo, il test
evolve insieme a ciò che devo testare, e mi
guida fino a trovare la soluzione.
Una sessione che ho seguito con interesse è stata "
Agile Web Development with Django", tenuta da Carlo Miron. Django è un framework simile a Rails ma scritto in Python. Utilizza un modello di sviluppo simile al Model Controller View di RoR: MTV (Model Teplate View). Similmente a quanto accade nelle migrazioni di Rails, posso descrivere con il Modello lo schema di una tabella nel Db. Punto a sfavore è l'assenza delle migrazioni (sono in fase di sviluppo), che vanno fatte a mano.
Rispetto a rails, la localizzione è molto facilitata, esistono già traduzioni nelle lingue più disparate. Molto divertente è il testing delle applicazioni e del codice. Phyton permette di inserire del codice di testing nella documentazione della funzione.
Sebbene ne sia rimasto colpito, Django mi sembra meno maturo di rails, purtroppo non sono state mostrati slide o esempi di codice, che sicuramente sarebbero state molto utili.
Essere al contatto con persone e professionisti che lavorano nel mondo agile (e non lavoricchiano/studiano come me :-/ ) è stato molto stimolante e istruttivo. Spero che molti miei colleghi di Università e amici sviluppatori, possano in futuro utilizzare metodologie Agili e partecipare al prossimo Agile Day. Un buon punto di partenza sono l'eXtreme User Group di
Varese e quello di
Milano, oltre al sito dell'
Agile Moviment in Italia.