Sviluppo software: perché deve essere agile
Il business digitale corre a ritmi frenetici e richiede il perfetto allineamento tra sistemi informativi e strategie aziendali: per questo lo sviluppo software deve essere agile, ovvero in grado di creare e distribuire rapidamente applicazioni efficaci in risposta alle esigenze degli utenti interni ed esterni.
Il business digitale richiede velocità
Soprattutto in un momento di profonda incertezza economica, con risvolti imprevedibili sulle imprese e sulla società, le organizzazioni devono essere flessibili per reagire tempestivamente al cambiamento. L’Information Technology è il motore a supporto della digital enterprise, fornendo le chiavi per ottimizzare i processi e accelerare l’offerta di servizi a valore.
Tuttavia, non sempre le risposte del team informativo tengono il passo delle line of business, creando uno “scollamento” pericoloso che potrebbe incidere drasticamente sul rendimento aziendale.
Secondo un’indagine condotta da Gartner nel 2019, intervistando un campione mondiale di project manager, infatti, soltanto il 55% dei prodotti viene lanciato nei tempi previsti; il 45% invece è rilasciato oltre la scadenza, almeno un mese dopo. Nell’ambito del software development, ogni minimo ritardo può costare caro. I clienti (aziendali o esterni) sono sempre più esigenti, il mercato impone cambi di direzione repentini: i requisiti applicativi servono a soddisfare necessità contingenti, ma potrebbero non essere più validi nel brevissimo periodo.
Non c’è margine di errore e anche il fallimento deve avvenire rapidamente per essere pronti a invertire la rotta. Bisogna insomma navigare a vista, ma garantire comunque l’efficacia dei servizi digitali rilasciati. “Do more with less” è il mantra dell’azienda digitalizzata, quindi i developers dovranno offrire applicazioni di qualità, minimizzando le tempistiche di release e le risorse utilizzate.
Cosa prescrive lo sviluppo Agile
Le metodologie di Sviluppo Software Agile propongono un approccio alternativo rispetto al più tradizionale modello a cascata (waterfall model), avendo come obiettivo il rilascio di applicazioni secondo i requisiti di qualità, funzionalità e velocità espressi dal cliente.
I principi Agile, raccolti in un Manifesto comune pubblicato nel 2001, possono essere così sintetizzati:
- costituzione di piccoli team multi-disciplinari e auto-organizzati;
- sviluppo iterativo e incrementale (il progetto è suddiviso in cicli ripetitivi e sequenziali, ciascuno con un Quick Win, che apporta una miglioria al progetto e permette l’avanzamento allo stadio successivo);
- empirismo (ogni incremento di prodotto viene rilasciato e testato direttamente dagli utenti)
- pianificazione adattiva (il lavoro viene organizzato in modo flessibile, in base ai feedback ricevuti)
- engagement continuo del cliente nel processo di sviluppo.
Perché serve un approccio agile
Si intuisce chiaramente come i principi elencati possono contribuire al raggiungimento dell’obiettivo, ovvero la consegna veloce di un’applicazione funzionale (in grado di soddisfare le esigenze espresse) e funzionante (performante e di qualità).
La formazione di piccoli gruppi, fortemente focalizzati, permette di raggiungere la massima qualità su funzioni software specifiche potendo contare su competenze specializzate. Inoltre, lavorare in pochi, in modo autonomo e flessibile, permette di massimizzare il rendimento e il commitment, a livello di squadra e di singolo componente.
Lavorare per cicli e obiettivi intermedi, significa garantire rilasci più rapidi, che permettono di ottenere miglioramenti del software immediati senza dovere attendere la release finale. I clienti possono subito beneficiare delle nuove funzionalità e migliorie, con la possibilità di “raddrizzare il tiro” in corso d’opera.
L’approccio empirico e il dialogo continuo con gli utenti permettono infatti di ottenere riscontri diretti e veloci sul lavoro svolto, mitigando i rischi di fallimento. Se qualcosa non dovesse funzionare, il team di sviluppo ha la possibilità di isolare l’errore grazie ai feedback ricevuti e porre rimedio. Diverso sarebbe attendere mesi per arrivare direttamente all’unico rilascio finale e accorgersi solo allora di avere sbagliato: lo spreco di tempo e risorse andrebbe a incidere gravemente sul bilancio aziendale.
Ecco quindi che a buon diritto, in virtù degli importanti vantaggi permessi, le metodologie Agile avranno un ruolo sempre più importante nell’ambito del software development.