Skip to main content

Agile e Waterfall sono due termini che si sentono sempre più spesso. Appartengono al mondo del Project Management, che è una serie di azioni volte ad analizzare, gestire, realizzare, completare, monitorare e migliorare un progetto.

Un po’ di storia

Secondo un famoso detto “Roma non è stata costruita in un giorno”, ma già all’epoca dei romani vennero utilizzate delle metodologie di project management per gestire le risorse per la costruzione di acquedotti, ponti strade e monumenti.

Come sappiamo tutto questo?

Probabilmente una delle “best practices” degli antichi romani era quella di scrivere. Gaio Giulio Cesare, famoso console e dittatore, riportò con minuzia le informazioni per la costruzione di un ponte sul Reno nel suo “Commentarii de bello Gallico”. Nei suoi scritti è possibile trovare poche righe che però ricalcano esattamente i modelli utilizzati ancora oggi, con la descrizione dei dettagli tecnici necessari a completare l’opera: tempistiche, materiali, gestione delle risorse, ecc.).

In epoca moderna il Project Management si è evoluto soprattutto a partire dai primi del 900, quando Gantt introdusse il suo famoso diagramma, utilizzato in nelle costruzioni, nell’industria e soprattutto in ambito bellico con l’avvento delle due guerre mondiali.

Ai giorni nostri quasi la totalità dei prodotti e dei sevizi hanno alle spalle un team strutturato, in alcuni casi guidato dai Project Manager, figure professionali che si occupano principalmente del coordinamento delle risorse per la realizzazione di determinati obiettivi. Il PM progetta, pianifica, coordina, gestisce tutti gli aspetti necessari a rispettare le scadenze, limitare i costi, analizzare i rischi e cercare di evitarli (o, nel caso, limitare i danni) ed avere un riscontro diretto con il cliente e gli stakeholders coinvolti.

Metodo “tradizionale”: waterfall

Uno dei metodi di sviluppo più utilizzati è senza dubbio il Waterfall.
Come dice il nome stesso, si tratta di una serie di attività svolte “a cascata”, cioè concatenate tra loro. Questo significa che le fasi sono consequenziali e devono essere svolte rispettando il loro ordine. Quando la fase precedente è completata si può procedere con quella successiva.
Questo approccio permette di lavorare in maniera strutturata rispettando dei vincoli temporali definiti Milestone, che sono dei punti di riferimento “fissi” (come le pietre miliari delle strade antiche) che segnano l’avanzamento di un lavoro.
La sua struttura “rigida” necessita di un’accurata pianificazione iniziale, che non prevede modifiche in corso d’opera o cambiamenti sul cronoprogramma. Per questi motivi viene utilizzato per progetti di modesta portata e con team di grandi dimensioni, dove l’accurata progettazione permette di seguire una timeline ben precisa dall’inizio alla fine.

Metodologia Agile

Anche se è una terminologia spesso abusata, la metodologia AGILE è apparsa di recente, soprattutto nella gestione di progetti in ambito digitale e di sviluppo software.

E’ un paradigma flessibile, destrutturato, che permette di lavorare con team omogenei su più task differenti e in tempi relativamente brevi.

Ogni iterazione ha lo scopo di effettuare un breve rilascio, che si aggiungerà di dettagli con gli step successivi. Questo permette di pianificare agilmente ogni singola iterazione per rispondere a cambiamenti repentini di programma, modifiche in corso d’opera o adattamenti a tecnologie in continua espansione.

Il progetto in questo modo diventa incrementale, con un risultato immediatamente fruibile che andrà a migliorare e crescere di volta in volta, fino a raggiungere tutti i requisiti prestabiliti.

La comunicazione con il cliente è costante, per garantire test ad ogni rilascio, in modo che i fruitori del prodotto possano immediatamente pianificare le fasi successive in base alle esigenze emerse. Questo approccio permette di evitare una progettazione iniziale complessa e onerosa, che diventerebbe una struttura troppo rigida per poter effettuare modifiche in corso d’opera.

L’importanza della pianificazione dei progetti

Qualunque sia il campo di applicazione, la pianificazione dei progetti è importantissima, se non di vitale importanza. E’ necessaria per poter monitorare ogni singola fase, evitando errori, prevedendo rischi e seguendo un piano prestabilito per l’ottimizzazione di tutti i processi. Questo permette anche ai team di lavoro di poter essere autonomi sia singolarmente che in gruppi, riducendo i tempi morti e migliorando la produttività di tutti i collaboratori.

Fabio De Notariis

Autore Fabio De Notariis

Full Stack Web Developer