Metodi Waterfall e Agile

I due metodi più famosi e utilizzati di project management sono il metodo Waterfall e quello Agile.

Di seguito una breve descrizione delle due tipologie di gestione di progetto e un’analisi sintetica dei vantaggi e degli svantaggi di ognuno di essi.

Metodo Waterfall:

Il metodo Waterfall (anche noto come Liner Sequential Life Cycle Model) corrisponde a una gestione del progetto di tipo tradizionale e sequenziale; si basa su una successione a cascata di fasi distinte dello sviluppo del software (analisi dei requisiti, design, sviluppo, collaudo, deploy, eventuale manutenzione) ben documentate, ognuna delle quali generalmente termina prima che inizi la successiva. In tale metodologia il prodotto viene consegnato al cliente alla fine del processo.

Di seguito una lista dei principali vantaggi e svantaggi del modello:

Vantaggi:

• Pianificazione e progettazione più semplici: gli sviluppatori e i clienti concordano su ciò che verrà consegnato già all’inizio del ciclo di vita del processo; ciò rende possibile una consegna più rapida del progetto.

• È uno dei modelli più facili da gestire: per sua natura, ogni fase ha risultati (deliverables) specifici e un processo di revisione.

• Processo e risultati possono essere ben documentati perché noti dall’inizio.

• Metodo facilmente adattabile per lo spostamento di squadre: ogni gruppo è a conoscenza di cosa deve fare e delle tempistiche da rispettare; a seconda della fase attiva del progetto è possibile che vari membri del team siano coinvolti o continuino con altri lavori.

• Ad eccezione di revisioni, approvazioni, riunioni sullo stato, ecc., la presenza del cliente non è strettamente necessaria dopo la fase dei requisiti.

• Interfaccia con gli stakeholders coinvolti risulta semplice, grazie alla documentazione presente e alla impostazione definita di tempistiche e attività.

  • Poiché la progettazione è completata nelle prime fasi del ciclo di vita dello sviluppo, questo approccio si presta a progetti in cui è necessario progettare più componenti software (a volte in parallelo) per l’integrazione con sistemi esterni.

Svantaggi:

• Poca comunicazione con il cliente perché i requisiti vengono definiti all’inizio

• Modello rigido: raramente i progetti reali seguono il flusso lineare del modello

• Non è un modello ideale per un progetto di grandi dimensioni: se c’è un ritardo, tutti i processi di conseguenza slittano fino a che il processo in questione non è terminato.

• Il processo di test inizia al termine dello sviluppo. Quindi a valle dello sviluppo si possono trovare dei bug costosi da riparare.

• Molto difficile tornare indietro per apportare modifiche nelle fasi precedenti.

• Possibilità che il cliente non sia soddisfatto del prodotto software consegnato. Dal momento che tutti i risultati finali si basano su requisiti documentati all’inizio del progetto, un cliente potrebbe non vedere ciò che verrà consegnato finchè il prodotto non sarà quasi finito. A quel punto, i cambiamenti possono essere difficili e costosi da attuare.

• Durante le fasi iniziali e finali si verificano delle situazioni di blocco dovute al fatto che alcuni membri del progetto devono aspettare che altre persone concludano le loro attività per proseguire il lavoro. Queste fasi di inoperatività causano così uno spreco di risorse e tempi.

  • A volte la soluzione tecnica implementata si rivela ben presto tecnologicamente vetusta.

Metodo Agile:

Il metodo Agile fa riferimento ad un tipo di gestione innovativo e iterativo in quanto comprende gli stessi step del metodo Waterfall, ma in chiave iterativa: si lavora su pezzi di requisiti (e non su tutto in un’unica soluzione) rendendo così possibile eseguire simultaneamente le attività di sviluppo e test e di effettuare più deploy durante l’intera vita del progetto:

A differenza del metodo a cascata, in cui la pianificazione delle attività è definita all’inizio, nel metodo Agile il tempo è suddiviso in fasi di durata definita (di solito settimane) chiamate ‘sprint’; all’inizio di ogni sprint viene pianificato e definito, con il cliente, un elenco di prodotti finali da consegnare entro la durata del relativo sprint. Se non è possibile completare tutto il lavoro pianificato, il lavoro viene ridistribuito e le informazioni vengono utilizzate per la pianificazione del successivo sprint. Una volta completato, il lavoro può essere rivisto e valutato dal team di progetto e dal cliente, attraverso build giornaliere e dimostrazioni di fine sprint.

Anche il metodo Agile ha i suoi vantaggi e svantaggi. Vediamoli insieme.

Vantaggi del modello Agile:

• È un processo client focalizzato: il cliente è costantemente coinvolto in ogni fase del progetto in quanto collabora ampiamente e direttamente con il team di progetto durante tutta la durata del progetto

• Obiettivi periodici: grazie al fatto che i requisiti sono incrementali il cliente ha frequenti opportunità di vedere il lavoro consegnato e di prendere decisioni e cambiamenti in itinere.

• I team agili sono auto-organizzati e multidisciplinari: ognuno è responsabile di una serie di task concatenate tra loro in modo che, ottimizzando il tempo e le risorse umane, possano produrre il valore e i risultati concordati con il cliente, guidati da un project manager che organizza il lavoro e si interfaccia con essi.

• Qualità dello sviluppo: è possibile consegnare al cliente un’applicazione in componenti funzionali completi e non in un’unica soluzione alla fine.

  • La tecnologia utilizzata non può essere considerata vetusta perché gli sviluppi si ripetono costantemente.

Contro del Metodo Agile:

Il lavoro risulta meno strutturato ed i flussi di lavoro meno chiari

• Il coinvolgimento dei clienti spesso porta ad aggiungere funzionalità non definite nell’architettura e nel design iniziali con conseguente aumento di tempi e i costi di implementazione.

• Poiché il metodo si concentra sulla consegna in time-box e sulla frequente riprioritizzazione, è possibile che alcune attività non vengano completate entro il lasso di tempo assegnato. Potrebbero essere necessari sprint aggiuntivi oltre a quelli inizialmente previsti, aumentando il costo del progetto.

• Funziona al meglio quando i membri del team di sviluppo sono completamente dedicati al progetto e per progetti di sviluppo ampi.

• Il progetto può facilmente andare fuori strada se al project manager non è chiaro quale risultato il cliente desidera

  • Le strette relazioni di lavoro in un progetto Agile sono più facili da gestire quando i membri del team si trovano nello stesso spazio fisico, il che non è sempre possibile. Tuttavia, esistono diversi modi per gestire questo problema, come webcam, strumenti di collaborazione, ecc.

Volendo riassumere quanto detto, le differenze chiave tra il modello Waterfall e Agile sono le seguenti:

• Waterfall è un processo di progettazione sequenziale, mentre Agile segue un approccio incrementale.

• Nella metodologia Waterfall i test arrivano dopo la fase di sviluppo, mentre in quella Agile i test sono eseguiti contemporaneamente allo sviluppo del software.

• Il metodo Waterfall è da seguire per progetti con budget e tempi relativamente definiti in cui gli attori coinvolti sono molti e si ha la necessità di una maggiore strutturazione delle attività; il metodo Agile è perseguibile in condizioni più flessibili, in cui il focus è prevalentemente sulle esigenze di business.

  • La metodologia Waterfall non consente di modificare i requisiti una volta avviato lo sviluppo del progetto; il metodo Agile consente di apportare modifiche ai requisiti di sviluppo del progetto anche se la pianificazione iniziale è stata completata.

Non è facile rispondere alla domanda ‘quale metodo è migliore?’ poiché la vera sfida da affrontare è trovare la giusta via e il giusto modo per gestire progetti e interlocutori diversi, attingendo ai vari modelli con flessibilità e lungimiranza. Ogni supplier dovrebbe essere flessibile e tenere conto di tempistiche fisse con requisiti mutevoli (Agile) e di tempistiche mutevoli con requisiti statici (Waterfall).

Quando si lavora a un progetto di consulenza, infatti, non esistono più una serie di passaggi prefissati; tutto deve adattarsi alle esigenze individuali del cliente specifico e modificato qualora sorgano degli imprevisti, ma allo stesso tempo ci sono strutture e obiettivi, con tabelle di marcia predeterminate, da cui non ci si può allontanare.

--

--

Gabriella Scannapieco Lascaux
Hub dell'innovazione digitale
0 Followers

Lavoro da circa 1 anno in Lascaux. Attualmente mi occupo della gestione dello STORE X You di BNL