Condividi su:

Anche se non lo sappiamo ciascuno di noi è nel suo piccolo un Project Manager. Infatti, quando parliamo di “progetto”, non dobbiamo solo pensare a complessi codici informatici o a edifici che si ergono dal suolo. Un progetto può essere qualsiasi cosa, dalla creazione di un nuovo prodotto al coordinamento di eventi, e la gestione dei progetti è ciò che tiene tutto insieme. In parole semplici, è l’arte di fare accadere le cose nel modo giusto, nel tempo giusto e con le risorse giuste (approfondimento su “La teoria del triplo vincolo dei progetti”)

In questo articolo, esploreremo in modo pratico cosa significa gestire un progetto distinguendo due approcci: Waterfall e Agile. In ultimo dedicheremo la nostra attenzione a comprendere uno dei più celebri metodi agili: Scrum.

 

Modello Waterfall

Il modello Waterfall, conosciuto anche come “a cascata”, rappresenta un approccio tradizionale nella gestione dei progetti industriale. Nel suo nucleo, il Waterfall si sviluppa in modo sequenziale attraverso una serie di fasi distinte, e la transizione da una fase all’altra avviene soltanto dopo il completo raggiungimento degli obiettivi della fase precedente e la consegna di un deliverable. Questo modello è caratterizzato da una struttura ben definita, idealizzata per progetti in cui i requisiti possono essere chiaramente stabiliti dall’inizio e non subiscono significative variazioni durante l’implementazione.

In particolare, questo modello si articola in cinque fasi fondamentali:

  • Initiating, la fase di avvio del progetto con l’identificazione dei requisiti attraverso un dialogo con il cliente;
  • Planning, la fase di pianificazione delle attività coinvolte per il raggiungimento dell’obiettivo finale;
  • Implementing, la fase di esecuzione;
  • Controlling, la fase di monitoraggio e controllo;
  • Closing, la fase di chiusura del progetto.

I vantaggi del modello Waterfall includono:

  • pianificazione semplice: il team e i clienti concordano fin dall’inizio, semplificando la consegna rapida;
  • facile gestione: ogni fase ha risultati specifici, facilitando la gestione grazie a una struttura chiara e una pianificazione prevedibile;
  • documentazione completa: processo e risultati ben documentati fin dall’inizio;
  • coinvolgimento del cliente non obbligatorio: la presenza del cliente è necessaria solo in alcune fasi specifiche;
  • semplice interfaccia con gli stakeholders: grazie alla documentazione e alle tempistiche definite.

Tuttavia, gli svantaggi emergono quando si affrontano cambiamenti imprevisti, miglioramenti progressivi o quando la comprensione iniziale dei requisiti si rivela incompleta. Ne citiamo alcuni:

  • comunicazione limitata con il cliente: i requisiti sono definiti all’inizio, limitando la comunicazione successiva;
  • modello rigido: i progetti reali raramente seguono il flusso lineare del modello;
  • non ideale per progetti di grandi dimensioni: ritardi influenzano tutti i processi successivi;
  • test alla fine dello sviluppo: i bug possono emergere tardi, rendendo costose le correzioni;
  • difficoltà di modifiche retroattive: modifiche nelle fasi precedenti sono complesse e costose;
  • rischi di insoddisfazione del cliente: il cliente potrebbe non essere soddisfatto del prodotto finale.

 

 Metodologia Agile

L’approccio Agile rappresenta una svolta significativa rispetto al modello Waterfall, ponendo l’enfasi sulla flessibilità, la collaborazione continua e la risposta rapida ai cambiamenti. In contrasto con la natura sequenziale del Waterfall, l’Agile è concepito per affrontare la complessità dei progetti attraverso cicli iterativi e incrementali. Si adatta a contesti caratterizzati da elevata incertezza, alto contenuto tecnologico, dinamicità, scadenze brevi e performance-based.

Esso nasce con la pubblicazione del “Manifesto Agile” da parte di alcuni sviluppatori che dichiarano i loro quattro principi guida:

  • gli individui e le interazioni prevalgono sui processi e sugli strumenti;
  • il software funzionante è più significativo della documentazione esaustiva;
  • la collaborazione con il cliente è prioritaria rispetto alla negoziazione di un contratto;
  • rispondere al cambiamento è più importante del seguire un piano prefissato.

Queste metodologie fanno sempre riferimento al triplo vincolo (tempo, risorse e scopo), ma lo capovolgono in maniera tale da rendere la gestione dei progetti più flessibile.

 

Fonte: Waterfall, Incrementale o Agile? (luigiatauro.com)

 

L’Agile presenta numerosi vantaggi, tra cui:

  • processo client-focalizzato: il cliente è coinvolto in ogni fase, favorendo una collaborazione continua e una migliore gestione del rischio;
  • obiettivi periodici: incrementalità dei requisiti offre opportunità frequenti di valutazione e cambiamenti;
  • auto-organizzazione del team: team agili sono responsabili di task concatenati, ottimizzando tempo e risorse;
  • consegne di componenti funzionali: possibilità di consegnare componenti funzionali invece di un’unica soluzione finale.

Tuttavia, gli svantaggi non sono trascurabili. Troviamo:

  • minor strutturazione e chiarezza nei flussi di lavoro: rispetto al waterfall, il lavoro può risultare meno strutturato;
  • coinvolgimento del cliente può portare ad aggiunte non pianificate;
  • possibili costi aggiuntivi: la mancanza di una pianificazione dettagliata iniziale può rendere difficile stimare i tempi e i costi con precisione;
  • richiede elevata dedizione del team: la necessità di una comunicazione costante e di una collaborazione stretta può richiedere un impegno significativo;
  • la mancanza di chiarezza può far deviare il progetto;

 

 Scrum: Un’implementazione specifica di Agile

Scrum si presenta come un’implementazione specifica dei principi Agili, fornendo una struttura organizzativa e processuale per la gestione di progetti complessi in framework time-boxed. Esso, infatti, si distingue per la sua organizzazione in cicli di lavoro noti come sprint, ciascuno della durata di solito tra due e quattro settimane. Questo approccio consente una pianificazione adattativa e una consegna incrementale, allineandosi perfettamente con l’essenza dell’Agile.

Scrum definisce chiaramente i ruoli all’interno di un team:

  • Il Scrum Master funge da facilitatore, garantendo che il team segua i principi e le pratiche Scrum, rimuovendo gli ostacoli e facilitando la comunicazione;
  • Il Product Owner rappresenta le esigenze del cliente, gestendo il Product Backlog e prendendo decisioni chiave sulle priorità;
  • Il Team di sviluppo, composto da professionisti multifunzionali, è responsabile della realizzazione del lavoro pianificato durante lo sprint.

Gli eventi Scrum sono momenti chiave nel ciclo di vita di uno sprint. Approfondiamo gli step più importanti:

  • La Sprint Planning inizia ogni sprint, definendo cosa può essere consegnato e come farlo;
  • La Daily Scrum è una breve riunione quotidiana per sincronizzare le attività del team;
  • La Sprint Review valuta il lavoro completato alla fine dello sprint;
  • La Sprint Retrospective riflette sull’esperienza sprint, identificando miglioramenti.

Scrum utilizza diversi artefatti per organizzare il lavoro. Vediamo i principali:

  • Il Product Backlog è un elenco priorizzato di tutte le funzionalità desiderate
  • Lo Sprint Backlog rappresenta il lavoro pianificato per uno specifico sprint.
  • Il Product Increment è la somma delle funzionalità completate durante uno sprint, contribuendo gradualmente al prodotto finale.

 

Confronto diretto: Waterfall vs. Agile

Il confronto tra il modello Waterfall e l’approccio Agile rivela differenze fondamentali nell’approccio alla gestione del progetto. Mentre il Waterfall adotta un modello sequenziale, in cui ogni fase è completata prima che la successiva abbia inizio, l’Agile, compreso Scrum, si basa sulla flessibilità e sull’adattabilità. Nel Waterfall, la pianificazione è dettagliata fin dall’inizio, con poco spazio per modifiche durante l’esecuzione. Al contrario, l’Agile consente di rispondere dinamicamente ai cambiamenti, adattando la direzione del progetto in base alle nuove informazioni o alle evoluzioni dei requisiti.

Confrontiamo i due approcci, dunque, su alcuni punti chiave:

  • adattabilità ai cambiamenti
  • controllo e la visibilità del progresso

Un peculiarità che distingue l’Agile, e Scrum in particolare, è la sua notevole adattabilità ai cambiamenti nei requisiti del progetto. Mentre il Waterfall potrebbe sperimentare difficoltà nel gestire modifiche tardive, l’Agile abbraccia il cambiamento come parte integrante del processo. Scrum, in particolare, incorpora revisioni regolari del backlog e iterazioni frequenti, consentendo al team di rispondere prontamente alle richieste del cliente o alle nuove priorità, mantenendo al contempo un focus sulle consegne di valore.

Il controllo e la visibilità del progresso rappresentano un’altra area di contrasto tra Waterfall e Agile. Nel modello sequenziale, il Waterfall offre un controllo più rigido, ma a volte a scapito della visibilità iniziale. In Agile, soprattutto in Scrum, il controllo si basa sull’ispezione regolare e sulla trasparenza. Le riunioni quotidiane, le revisioni dello sprint e le retrospettive forniscono un’ampia visibilità del progresso, consentendo ai team di identificare e risolvere tempestivamente eventuali problemi.

 

Fonte: Thitithamawat, S., Chertchom, P., Prathuangsit, P., Mruetusatorn, S., Thongchotchat, V., & Buraphawichit, P. (2018). Understanding stakeholders’ perspective of human factors in system development project in Thailand. In Proceedings of the 12th International Conference on Project Management (ProMAC2018) (pp. 262-267). The Society of Project Management.

 

Scegliere l’approccio giusto

Nel prendere la decisione tra l’approccio Waterfall e l’Agile, è essenziale considerare diversi fattori chiave. La complessità e la natura del progetto, la stabilità dei requisiti, i vincoli di budget e le esigenze del cliente giocano un ruolo cruciale nella scelta del modello di sviluppo. Progetti con requisiti stabili e ben definiti possono beneficiare dell’approccio più strutturato del Waterfall trovando una struttura solida e prevedibile, mentre progetti in continua evoluzione o soggetti a cambiamenti frequenti traggono vantaggio dall’agilità dell’approccio Agile. Lo Scrum si adatta in modo particolare a progetti che richiedono una rapida risposta alle esigenze del mercato e un coinvolgimento continuo del cliente.

Guardando al futuro, è evidente che entrambi gli approcci continueranno a esistere, ognuno con il proprio spazio d’applicazione. La crescente complessità dei progetti e la richiesta di maggiore flessibilità e rapidità nel rispondere ai cambiamenti del mercato favoriranno l’adozione di metodologie agili. Tuttavia, ciò non significa che il Waterfall diventerà obsoleto. In alcuni scenari, la sua struttura sequenziale potrebbe ancora dimostrarsi adatta. La chiave è comprendere le esigenze specifiche del progetto e selezionare l’approccio che meglio si adatta a tali requisiti, garantendo così il successo nell’evoluzione dinamica del panorama dello sviluppo del software.

 

 

Fonti

Waterfall vs Agile – QRP International

Metodi Waterfall e Agile. I due metodi più famosi e utilizzati di…

Project Management: Waterfall vs Agile. Quale metodologia scegliere e perchè. 

Scrum Project Management: Advantages and Disadvantages 

ISIPM, Guida alle conoscenze di gestione progetti, FrancoAngeli, 2023