Il metodo del percorso critico (in inglese critical path method, CPM) è un algoritmo per la pianificazione delle attività di un progetto: dato un insieme di attività, le rispettive durate e le loro dipendenze logiche, individua la sequenza di attività dipendenti la cui durata complessiva è massima e che pertanto determina la durata minima del progetto stesso. È uno strumento largamente utilizzato nell'ambito del project management e della ricerca operativa.

Storia Il CPM è una tecnica di modellazione di progetto sviluppata alla fine degli anni cinquanta da Morgan R. Walker della DuPont e James E. Kelley Jr. della Remington Rand; il periodo di sviluppo si estese per circa 27 mesi, dal dicembre 1956 al febbraio 1959. Un primo prototipo del metodo fu sperimentato nel 1957 su fermate d'impianto (manutenzione degli impianti chimici) della DuPont, e la prima presentazione pubblica avvenne con il paper Critical-Path Planning and Scheduling alla Eastern Joint Computer Conference del 1959. Le basi matematiche del metodo furono poi formalizzate da Kelley in un articolo pubblicato nel 1961 sulla rivista scientifica Operations Research.

Il CPM fu sviluppato in parallelo, e in modo indipendente, rispetto al Program Evaluation and Review Technique (PERT), messo a punto negli stessi anni dalla società di consulenza Booz Allen Hamilton e dalla US Navy per il programma missilistico Polaris. Precursori delle tecniche poi confluite nel CPM erano peraltro già stati impiegati dalla DuPont tra il 1940 e il 1943, contribuendo al successo del Progetto Manhattan.

Il CPM è utilizzato in un'ampia varietà di settori, tra cui l'edilizia, l'industria aerospaziale e della difesa, lo sviluppo software, la ricerca e sviluppo, la progettazione e la manutenzione degli impianti; il termine viene oggi applicato in senso lato a qualsiasi tecnica di analisi di una rete logica di progetto.

Tecnica di base La tecnica fondamentale del CPM consiste nel costruire un modello del progetto che comprenda:

l'elenco di tutte le attività necessarie al completamento del progetto, tipicamente organizzate all'interno di una struttura di scomposizione del lavoro (WBS); la durata stimata di ciascuna attività; le dipendenze logiche tra le attività.

A partire da questi dati il CPM calcola, per ogni attività, le date di inizio e fine "al più presto" (early start ed early finish) e "al più tardi" (late start e late finish) compatibili con la durata complessiva del progetto, individuando così il percorso più lungo attraverso la rete di attività. Il percorso critico è la sequenza di attività dipendenti la cui somma delle durate è massima, e determina il minimo tempo possibile di completamento del progetto; qualsiasi ritardo di un'attività appartenente al percorso critico si traduce in un pari ritardo della data di fine. Le attività non appartenenti al percorso critico dispongono invece di un margine di scorrimento (float o slack) e possono essere ritardate, entro certi limiti, senza allungare il progetto.

Un progetto può avere più percorsi critici in parallelo; i percorsi che presentano una durata inferiore a quella del percorso critico sono detti sub-critici o non critici. I risultati del calcolo consentono al project manager di individuare le priorità di intervento e di ridurre eventualmente la durata prevista attraverso tecniche di compressione dello schedule, come il fast tracking (esecuzione in parallelo di attività originariamente sequenziali) e il crashing del percorso critico (riduzione della durata delle attività critiche tramite l'aggiunta di risorse).

Sviluppo Nella formulazione originaria il CPM considerava soltanto le dipendenze logiche tra gli elementi terminali del progetto. Successivamente il metodo è stato esteso per tenere conto delle risorse assegnate a ciascuna attività, attraverso i processi di assegnazione e di livellamento delle risorse; il livellamento può introdurre ritardi legati alla scarsa disponibilità di risorse e modificare l'insieme delle attività critiche, portando eventualmente all'emergere di un nuovo percorso critico governato dalle "risorse critiche". Un concetto correlato è quello della catena critica (Critical Chain Project Management), introdotto da Eliyahu M. Goldratt, che tiene conto esplicitamente dei vincoli di risorse e introduce buffer di protezione contro i ritardi imprevisti.Vedi la voce di approfondimento Critical Chain Project Management.

Poiché la pianificazione di un progetto cambia con l'avanzamento dei lavori, il CPM permette il monitoraggio continuo dello schedule: consente di rilevare quando un'attività non critica rischia di superare il proprio float complessivo, dando così origine a un nuovo percorso critico e ritardando la data di completamento. Il metodo può inoltre essere combinato con approcci probabilistici, incorporando previsioni di durata di tipo stocastico mediante il Program Evaluation and Review Technique.

Molti software commerciali di project management implementano il CPM in una variante di calcolo manuale sviluppata da John W. Fondahl presso il dipartimento di ingegneria civile della Stanford University nel 1961, in un rapporto tecnico intitolato A Non-computer Approach to the Critical Path Method for the Construction Industry, che introduce il precedence diagramming method (PDM) con notazione activity-on-node.

Flessibilità Uno schedule generato con il CPM si basa su stime di durata e, in caso di errori di stima o di eventi imprevisti, i risultati dell'analisi possono cambiare in modo significativo, con effetti a sorpresa sulla riuscita del progetto se le stime vengono assunte come esatte e gli scostamenti non sono gestiti tempestivamente. La struttura del metodo consente comunque di misurare l'impatto di ogni variazione rispetto allo schedule di partenza e di rideterminare il percorso critico in modo iterativo, rendendo il CPM adatto anche al controllo di progetto durante l'esecuzione.

Note

Bibliografia

Voci correlate PERT PERT/CPM Critical Chain Project Management Diagramma di Gantt Work breakdown structure Project management Ricerca operativa

Altri progetti

Collegamenti esterni

Categoria:Project management Categoria:Algoritmi di scheduling