Che cosa sono i Metodi Agili?
I metodi agili sono un insieme di metodi di sviluppo che condividono alcuni principi e valori fondamentali, descritti nell'Agile Manifesto. I metodi agili più diffusi sono Extreme Programming e Scrum. L'approccio di Sourcesense è basato su Extreme Programming (XP), con l'aggiunta di alcune pratiche prese a prestito da Scrum.
In poche parole, i metodi agili si propongono di sviluppare codice che abbia un alto valore per il cliente, che sia rilasciato presto e a ritmo continuo.
Un tipico team XP rilascia una prima versione, molto incompleta ma già dimostrabile, del software commissionato, già dopo un paio di settimane. In questo modo il cliente ha un immediato feedback sulla qualità del software consegnato, e può a sua volta fornire agli sviluppatori un prezioso feedback, per mantenerli focalizzati su quello che al cliente serve veramente. Se il team XP è bravo, riesce a mantenere un ritmo continuo di rilasci frequenti, tipicamente ogni due settimane ma anche più frequentemente a seconda dei casi.
Il rilascio di nuove funzionalità a ritmo costante ha delle importanti implicazioni:
-
Sviluppatori e clienti imparano insieme. Gli sviluppatori imparano il dominio applicativo del cliente, mentre il cliente, avendo a disposizione un prototipo, anche se incompleto, può capire meglio in che direzione lo sviluppo deve evolversi.
-
Il cliente ha il controllo della situazione. Ad ogni rilascio ha a disposizione un sistema di qualità finale, anche se non ancora dotato di tutte le funzionalità. Dopo ogni rilascio è possibile, con costi ragionevoli, rinegoziare quello che resta da fare, modificare le funzionalità sviluppate in precedenza, o addirittura decidere che il sistema così com'è è già sufficiente ed interrompere lo sviluppo.
-
Non c'è il tempo di fare una fase di design dettagliato. Altre pratiche ingegneristiche di XP permettono di sopperire a questa mancanza, in una maniera che in generale è molto più efficace e meno rischiosa del metodo "a cascata". Per evitare di ridurre il codice a una massa di spaghetti, gli sviluppatori applicano il design quotidianamente: il design emerge a piccoli passi. Così si evita l'errore opposto, di creare un'architettura ambiziosa, eccessiva e sovrabbondante: il design emergente è della taglia appropriata per il problema da risolvere.
-
Il progresso del team è aperto e visibile. Non ci nascondiamo dietro a ingannevoli "percentuali di completamento". Una feature è o completamente sviluppata, oppure no. Il progresso del team si misura sulle feature completamente sviluppate, che il cliente può personalmente verificare sul sistema corrente. Per saperne di più: sulla pianificazione agile.
Che cosa sappiamo noi di Metodi Agili?
Il nostro team di Milano, formato nel febbraio 2007, è composto da sviluppatori di provata esperienza e capacità, ben noti nella comunità Agile italiana e in alcuni casi internazionale. In ordine di anzianità:
-
Matteo Vaccari, coach. Sviluppatore dal 1989, Dottore di Ricerca in Informatica, si converte all'Extreme Programming nel 2004. Organizza annualmente dal 2006 la European Summer School on Agile Programming. Membro del Milano XP User Group. Il suo blog: Extreme Enthusiasm.
-
Pietro Di Bello, sviluppatore agile senior.
-
Alberto Quario, sviluppatore agile senior.
-
Antonio Ganci, sviluppatore agile senior.
Sviluppatore di professione dal 1995, laureato in Ingegneria informatica, inizia ad usare i metodi agili nel 2004.
Fa parte del gruppo ALT.NET. Autore del blog antonioganci.
-
Tommaso Torti, sviluppatore agile senior.
-
Antonio Carpentieri, sviluppatore agile senior. Sviluppatore dal 1998, inizia ad usare i metodi agili nel 2004. Fa
parte del gruppo ALT.NET.
-
Jacopo Franzoi, sviluppatore agile senior. Sviluppatore dal 2003, inizia ad usare i metodi agili nel 2006. Fa parte del Milano eXtreme Programming User Group.
-
Marco Gulino, sviluppatore agile junior.
-
Fabiana Romagnoli, sviluppatrice agile junior.
-
Riccardo Marotti, sviluppatore agile junior.
Presentazioni e pubblicazioni
-
Al quinto Agile Day italiano, Piero Di Bello e Jacopo Franzoi presentano Retrospective, Standup e Journal; Tommaso Torti e Fabiana Romagnoli presentano il workshop Refactoring di codice legacy; Matteo Vaccari presenta La nostra esperienza di Mentoring
-
Matteo Vaccari presenta The Invariant Game allo XP Day Benelux 2008.
-
Essap 2008, Varese. Jacopo Franzoi e Tommaso Torti presentano Introduction to Customer Tests (A.k.a Acceptance tests). Il workshop si basa sull'esercizio di Dave Nicolette sul Test Driven Development, rielaborato per illustrare l'uso di Fitnesse per realizzare specifiche eseguibili.
-
Essap 2008, Varese. Matteo Vaccari e Vieri del Bianco presentano An Agile Microproject, un workshop di mezza giornata che simula una iterazione di sviluppo in un team XP.
-
XP 2008, Limerick, Irlanda. Federico Gobbo e Matteo Vaccari pubblicano The Pomodoro Technique for Sustainable Pace in Extreme Programming Teams.
-
Agile Day 2007, Bologna. Tommaso Torti e Matteo Vaccari presentano Dominare il codice ereditato
-
XP Day 2007, Mechelen, Belgio. Matteo Vaccari e Federico Gobbo presentano The Pomodoro Technique, per esportare la tecnica del pomodoro, molto diffusa fra gli agilisti italiani ma ancora poco nota all'estero.
-
Essap 2007, Varese. Matteo Vaccari apre la scuola con la presentazione Practices and Values.
-
Agile Day 2006, Milano. Matteo Vaccari presenta un Introduzione al Test-Driven Development.
-
Essap 2006, Varese. Matteo Vaccari presenta un Introduzione al Test-Driven Development.
-
Agile Day 2005, Milano. Matteo Vaccari presenta Sviluppare Agilmente con Ruby on Rails.