Open Source quotes

"What does it mean to be agile? I mean, my definition is that you accept input from reality, and you respond to it."

Kent Beck


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