Metodologie Agili per la Produzione di Software
- Extreme Programming -





Sintomi delle Metodologie Tradizionali   

Metodologie Tradizionali   

Conseguenze delle Metodologie Tradizionali   

Metodologie Agili   

I risultati delle Metodologie Agili   

I nostri servizi   

Contattaci   

   

Metodologie Agili

Le metodologie agili sono nate specificamente per l'ingegneria del software. Lo scopo è quello di rendere il software estremamente facile da modificare. In questo modo costa sempre poco allinearlo con le necessità degli utenti, che cambiano permanentemente.

Queste metodologie, ancora poco diffuse in Italia, sono invece molto usate in America e Gran Bretagna.

Le principali metodologie agili sono due: Extreme Programming e Scrum. Entrambe hanno molti punti in comune. Noi ci occupiamo di Extreme Programming.

Il ciclo di vita di un progetto Extreme Programming è radicalmente diverso dal ciclo tradizionale. Per informazioni approfondite si può visitare il sito www.extremeprogramming.org

Extreme Programming utilizza una serie di tecniche che spiegheremo brevemente

I sistemi di test automatici

I sistemi di test sono una pietra migliare dell'Extreme Programming. Ogni funzione è testata dal sistema di test. In questo modo, se durante una modifica si introduce un errore, il sistema di test lo scopre immediatamente, molto prima che lo possa scoprire l'utente. In questo modo è anche molto semplice per il programmatore capire il problema, visto che ha appena fatto la modifica che lo ha prodotto.

Programmazione guidata dai test

Prima di implementare le funzionalità i programmatori preparano i test corrispondenti. In questo modo, il disegno dell'interfaccia della funzione si definisce quando si utilizza la funzione, e non quando la si implementa. Inoltre i test servono a documentare come si utilizzano le funzioni che vengono implementate.

Revisione permanente del codice (refactoring)

Non basta che il software funzioni perfettamente: deve essere molto facile da capire per chiunque. Quindi deve essere scritto in modo molto chiaro. I programmatori analizzano il codice e lo modificano con il solo scopo di farlo più comprensibile. Tutto lo sviluppo si realizza Object Oriented. Le singole funzioni diventano estremamente semplice; la maggior parte ha una dimensione dalle 2 alle 10 righe di codice.

Programmazione in coppia (pair programming)

Durante la programmazione lavorano sempre 2 programmatori insieme, sullo stesso computer. Anche se questo può sembrare uno spreco, le statistiche dimostrano il contrario. Una coppia di programmatori produce software in un tempo leggermente superiore rispetto a due programmatori che lavorano individualmente, ma ottenendo una qualità di software estremamente migliore, come lo dimostra lo studio realizzato dalla University of Utah
(www.cs.utah.edu/~lwilliam/Papers/ieeeSoftware.PDF).
La programmazione in coppia non è semplicemente mettere 2 programmatori a lavorare insieme: si fa seguendo un metodo con ruoli precisi per ogni programmatore.

Cliente (o utente) presente nella squadra

Una persona che rappresenta il cliente (o gli utenti) è permanentemente presente durante il progetto. E' sempre disponibile a fare analisi e chiarire i dubbi che sorgono. Ha una visione sempre aggiornata dell'andamento del progetto. Se si implementa una funzionalità diversamente da come lui si aspettava, la può evidenziare subito, diminuendo così radicalmente i costi di sistemazione del software.

Test di Accettazione

Le richieste del cliente vengono riportate nei test di accettazione. Si tratta di una seconda batteria di test automatici, molto più vicini agli utenti che ai programmatori. Oltre a testare automaticamente il sistema, servono a documentare quali sono le funzionalità che l'utente ha richiesto.







<

Conseguenze delle Metodologie Tradizionali

I risultati delle Metodologie Agili

>

   








                

© 2009 Agile Software.