Nell’ingegneria del software la metodologia Agile si riferisce a metodi per lo sviluppo del software che sono stati diffusi a partire dagli anni 2000 e fondata sui principi derivanti dal “Manifesto per lo sviluppo agile del software” pubblicato nel 2001, tra gli altri, da Kent Beck, Robert C. martin e Martin Fowler.
Lo sviluppo software con la metodologia Agile non è nient’altro che l’applicazione di una filosofia che esula dal tipo di linguaggio di programmazione del software, dalla piattaforma utilizzata e dalla natura e destinazione dello specifico software.
Le regole dello Sviluppo Agile
Le regole alla base della metodologia Agile secondo il Manifesto per lo sviluppo agile del software sono 4:
- Dare maggior importanza agli individui e alle loro interazioni piuttosto che ai processi e gli strumenti di sviluppo
- Ok la documentazione esaustiva per il software, ma prima di tutto questo deve funzionare correttamente!
- Il rapporto con il cliente deve essere fondato sulla collaborazione costante
- Seguire un piano è necessario, ma adattarsi ai cambiamenti in corso d’opera lo è di più
Quali metodologie
Da questa filosofia di sviluppo sono nate diverse metodologie e tra queste due sono state adottate più delle altre: Extreme Programming (XP) e Scrum.
Le due metodologie non si escludono reciprocamente perché si focalizzano su aspetti in parte complementari e in molti contesti ha senso adottarle entrambe.
Entrambi adottano un processo iterativo e incrementale. Scrum prescrive delle iterazioni di 30 giorni (Sprint), mentre XP lascia libertà di scelta suggerendo però di adottare iterazioni di una o due settimane al massimo. Ciascuna iterazione produce una versione funzionante dell’applicazione che offre qualche funzionalità in più della precedente.
In generale, Scrum si concentra molto sulla gestione del progetto (pianificazione, attività da svolgere e stato di avanzamento) ma non fornisce indicazioni su come organizzare la scrittura del codice.
Anche XP fornisce delle pratiche per la gestione del progetto e la pianificazione ma in aggiunta prescrive anche delle tecniche di scrittura del codice, come Pair Programming e Test Driven Development.
Sprint e Vantaggi
Come abbiamo detto le iterazioni di Scrum vengono denominate Sprint.
Uno Sprint comincia con una riunione in cui si pianifica l’iterazione (Sprint Planning). In questa riunione si definiscono gli obiettivi dello Sprint, selezionando tra i requisiti funzionali già definiti (backlog) o eventualmente definendone di nuovi, se nel frattempo sono cambiati alcuni requisiti.
Ogni giorno comincia con una breve riunione (Daily Meeting) in cui si definiscono gli obiettivi della giornata per ciascun membro del team.
Alla fine dell’iterazione, si esegue un’analisi dello Sprint (Retrospective). Lo scopo è evidenziare cosa ha funzionato ma soprattutto individuare eventuali problemi e farne immediatamente tesoro per risolverli subito ed evitare di reiterare gli errori commessi.
Alla fine dello Sprint il cliente ha il compito di valutare le funzionalità sviluppate e la loro conformità con i requisiti. Eventuali comportamenti non conformi ai requisiti o cambiamenti nei requisiti concordati saranno oggetto di uno degli Sprint successivi.
Questo approccio, oltre a ridurre i costi per la gestione della produzione del software e dell’intero progetto, evita il fallimento dello stesso in quanto ogni Sprint passa sotto il vaglio del cliente.
Per l’azienda che utilizza un approccio di Sviluppo Agile i benefici sono molti:
- Maggior grado di produttività
- Più flessibilità e adeguamento ai cambiamenti
- Maggiore trasparenza nel rapporto con il cliente
- Software e prodotti di maggiore qualità
- Riduzione dei rischio di non centrare gli obiettivi
- Maggiore coinvolgimento nel progetto dell’azienda e del cliente e maggiore soddisfazione
Lascia un commento
Devi essere connesso per inviare un commento.