Mai come in quest’epoca di trasformazione digitale gli utenti di prodotti e servizi IT stanno mostrando quanto le loro aspettative siano elevate riguardo alla qualità del software, e alla velocità e frequenza con cui il codice delle app dev’essere aggiornato, per fornire le funzionalità richieste e correggere bug e difetti nel minor tempo possibile: in quest’ottica, la programmazione agile ha l’obiettivo di soddisfare la necessità aziendale di rispondere con la massima flessibilità e velocità ai cambiamenti, imparando dagli errori, per fornire con efficienza agli utilizzatori finali i requisiti che richiedono in determinati prodotti o servizi software.


Programmazione agile, cos’è

Il documento che definisce valori e princìpi della programmazione agile è il Manifesto per lo Sviluppo Agile di Software, realizzato da un gruppo di sviluppatori e pubblicato nel 2001. L’obiettivo del Manifesto Agile è aiutare i team di lavoro a migliorare di continuo i processi di sviluppo software, superando in particolare i limiti della classica metodologia di sviluppo ‘waterfall’ (a cascata), in cui il progetto procede secondo una modalità sequenziale, recependo tutte le specifiche all’inizio e non prevedendo la possibilità di revisioni iterative lungo il ciclo di sviluppo.

Il paradigma della programmazione agile punta a migliorare il processo di sviluppo ponendo l’accento su quattro princìpi fondamentali: 

  • Princìpi della metodologia agile

  • Individui e interazioni contano più di processi e strumenti

  • Un software funzionante è prioritario rispetto a una documentazione esaustiva

  • La collaborazione col cliente va privilegiata rispetto alla negoziazione dei contratti

  • Rispondere al cambiamento è più importante che seguire un piano

 

Programmazione agile, quali elementi valutare prima di adottarla

Non è detto che il paradigma di sviluppo agile possa adattarsi in egual misura a tutti i team di lavoro: pertanto, prima di decidere se adottare la programmazione agile, è utile valutare quanto tale modello di sviluppo possa essere accettabile e condivisibile nella propria realtà aziendale e professionale.

Occorre, soprattutto, capire quanto il team sia disposto a sopportare lo stress derivante dalle continue attività di testing, e si senta di rilasciare un prodotto minimo funzionante (MVP), ancora quindi incompleto; quale sia il livello di rischio di fallimento accettabile, e di predisposizione del team a risolvere i problemi che si presenteranno. È anche necessario comprendere in che misura il gruppo di sviluppatori sia incline a modificare di frequente il software, per soddisfare i requisiti richiesti dal committente del progetto; stabilire quanto sia rigida la gerarchia vigente nel ciclo di sviluppo, e saper stimare i progressi compiuti con la programmazione agile.


Implementare la p
rogrammazione agile, i passi chiave

Uno volta appurato il grado di maturità dell’organizzazione IT nell’abbracciare il paradigma della programmazione agile, tale metodologia è implementabile seguendo alcuni step:

1- In primo luogo, va stabilita l’esigenza di business a cui l’iniziativa d’innovazione vuol dare risposta, che benefici produrrà e per quali utenti.

2- Stabilita con chiarezza la necessità di business e la strategia, il secondo passo è definire una roadmap di prodotto, segnata da tappe, ciascuna con caratteristiche, requisiti, obiettivi da raggiungere, e stima di massima del tempo in cui svilupparli.

3- Va poi definito un calendario per un piano di rilascio di software funzionante (MVP), che tenga conto della molteplicità di rilasci della programmazione agile, e dia priorità alle funzionalità del prodotto da fornire subito in prima battuta.

4- Successivamente si può passare, più nello specifico, alla programmazione degli sprint, ossia dei lassi di tempo nei quali ciascuna attività di sviluppo e obiettivo dovranno essere completati e resi disponibili per un processo di revisione. Alla fine di ciascuno sprint si dovrà infatti verificare cosa è stato completato, se ci sono ostacoli che frenano il processo di sviluppo, e come superarli nel prossimo stadio di progettazione.

5- Al termine di ogni ciclo di sprint ci dev’essere un momento in cui la squadra di sviluppo software verifica con i committenti del progetto se tutti i requisiti definiti all’inizio risultano soddisfatti nel prodotto presentato e, in caso contrario, come agire per completarli.

6- Tra i passi chiave della programmazione agile c’è poi la retrospettiva, ossia una riunione in cui la squadra di sviluppatori discute sull’andamento del processo di progettazione del software, e su come fare per migliorarlo ulteriormente.