Introduzione
Lo standard metodologico per gestire al meglio un progetto in ambito IT è rappresentato dal dualismo Waterfall vs Agile.
Una dialettica di metodo che esprime sia la scelta di percorsi differenti per lo sviluppo di software, sia il ricorso a principi, stadi di avanzamento e interpretazioni per raggiungere specifici obiettivi in un tempo stabilito.
Un confronto tra le due metodologie è utile per evidenziare le differenze e capire quale percorso metodologico risponde in maniera opportuna alle variabili dipendenti che costituiscono un progetto di software IT.
Waterfall: struttura lineare
Waterfall è un sistema di lavoro lineare che presenta vari stadi da completare, ognuno propedeutico ad un altro; tale metodologia richiede al team di lavoro di eseguire ogni fase prima di passare allo stadio successivo. Essa si presenta come un sistema d’interdipendenza strutturale dove ogni variabile è connessa, richiedendo uno svolgimento step by step per completare un percorso predefinito.
La metodologia Waterfall, essendo una forma lineare di gestione di un progetto, prevede un piano concreto di realizzazione, dall’inizio alla fine, dove il team responsabile stabilisce i requisiti da adottare e gli stadi da completare. Il flusso di lavoro è rigidamente strutturato in task da raggiungere per passare poi ad un punto successivo, ciò non consente flessibilità e adattamento ma orientamento ai criteri stabili dal responsabile del piano di sviluppo.
Il sistema Waterfall approccia la linearità del progetto come struttura portante con una traccia da seguire, tralasciando i feedback del cliente di riferimento; il piano di sviluppo è stabilito a “monte”mediante una strategia delineata da perseguire per raggiungere l’obiettivo finale tramite il completamento degli stati previsti in un tempo arbitrario.
L’elemento fondamentale del sistema Waterfall è la rigidità della progressione delle fasi del progetto dettato da una mappatura delle fasi e del percorso da seguire “ex ante” dal responsabile del piano. Ciò comporta l’adozione di un budget fisso da utilizzare senza ricorrere a modifiche nel tempo della fase di sviluppo.
Metodologia Agile: processo circolare
In antitesi ad una struttura rigida, la metodologia Agile risponde con un alto livello di flessibilità evidenziando un processo circolare. Ciò evidenzia l’elemento della ricorsività come fattore fondamentale dello sviluppo in quanto il team può rivedere le parti di un determinato progetto in virtù del cambiamento delle variabili costitutive.
La fluidità del progetto di sviluppo richiede una relazione frequente con le parti interessate, uno sguardo ai cambiamenti della tecnologia e ai fattori di mercato che possano influenzare in maniera positiva il progetto.
In Agile, il team lavora contemporaneamente su più fasi del progetto con una scadenza nel breve periodo incoraggiando produttività ed efficienza ma assumendosi anche il rischio di sprecare determinate risorse per una fase sottoposta a modifiche “ex post”, comportando una precarietà nella tempistica delle fasi di lavoro.
L’elemento fondamentale della metodologia agile è ricercare il riferimento non nel piano di stesura del progetto, ma nei desiderata del cliente. Il percorso di lavoro è centrato sull’utente finale, ciò comporta la condivisione dei progressi e l’incorporamento dei feedback nel processo di sviluppo.
L’alta flessibilità è dovuta alla relazione diretta con variabili esogene come l’evoluzione dei mercati, il cambiamento della tecnologia, l’ascolto del cliente; fattori fondamentali che determinano il percorso circolare per arrivare alla realizzazione del progetto.
Quale metodologia scegliere?
La scelta di una delle metodologie proposte dipende da vari fattori, tra cui cultura aziendale, progetto da sviluppare, tempi, costi e personale da operare.
In Dale Consulting non esiste un utilizzo prioritario di una metodologia rispetto a un’altra; la scelta dell’approccio metodico da utilizzare riguardala capacità di soddisfare al meglio le esigenze del cliente come riferimento centrale per il processo di creazione. La realizzazione di un prodotto IT deve corrispondere ad una soluzione tecnologica specifica per risolvere quesiti fondamentali per un settore, la scelta metodologica diventa il mezzo per abilitare la risoluzione ottimale delle richieste specifiche del progetto.
Relazionarsi in maniera costante con il cliente consente di comprendere quale metodologia utilizzare per produrre un risultato ottimale avvicinandosi alle richieste finali. Ad esempio, la scelta di Agile riguarda progetti che presentano un alto livello di flessibilità, revisioni frequenti e feedback coerenti da parte del cliente; allo stesso tempo, stabilire un budget prioritario, definire un tempo di lavoro e non dislocarsi da una strategia adottata in fase di partenza, produrrà una scelta metodologica a “cascata”, necessaria per strutturare al meglio l’attività.
Una rigidità lineare del metodo Waterfall predispone un percorso netto da seguire completando task correlati; la pianificazione adattiva dell’Agile, invece, conferisce iterazioni continue con il committente per una progressione incrementale fondata dal coinvolgimento delle parti interessate.
Il vantaggio non riguarda l’esclusione di una metodologia ma dalla capacità di scegliere il miglior percorso per il progetto IT in virtù del risultato finale atteso dal cliente.
E tu? Quale metodologia sceglieresti per il tuo progetto IT?
Per raccontare la tua esperienza con Waterfall o Agile scrivi a francesco.furfari@daleconsulting.it.