Programmazione Agile

In generale, lo sviluppo Agile, è contrassegnato dalle seguenti caratteristiche:

• Lo sviluppo è iterattivo e incrementale: l’intera applicazione viene suddivisa in iterazioni piccole che rappresentano un incremento elementare delle funzionalità del sistema, concentrandosi sulla soluzione di pochi e piccoli problemi e ben definiti.

Consegna del lavoro basata su priorità: ad ogni iterazione il cliente, in base alle proprie esigenze, assegna una priorità. Il team svilupperà dapprima le funzionalità con priorità maggiore.

• Lo sviluppo deve avere una reazione efficace (rapida e adattiva) ai cambiamenti

Rilasci frequenti e rapidi: grazie al procedimento composto da piccoli passi, il team di sviluppo è in grado di produrre versioni del software in tempi più ridotti; i rilasci risultano quindi più frequenti.

Testing: nello sviluppo Agile è importante scrivere i test, per garantire un corretto funzionamento del sistema, contemporaneamente alla stesura del codice stesso

Esistono diverse ‘Metodologie Agili’ tra cui:
– Extreme Programming (XP) sviluppata da Kent Beck, Ward Cunningham e Ron Jeffries.
– Dynamic Systems Development Method (DSDM) [Stapleton, 2002]
– SCRUM [Schwaber and Beedle, 2002]
– Feature Driven Development (FDD) [Palmer, 2002]
– Crystal Family [Cockburn , 2001]

Ogni metodologia aderisce i principi descritti dal ‘Manifesto Agile’ , consultabile all’indirizzo http://agilemanifesto.org/iso/it/manifesto.html