Project Management Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Project Management 2 Metodi per supportare le decisioni relative alla gestione di progetti esempi sono progetti nell edilizia, lo sviluppo di sistemi (software), ricerca, ecc. I problemi di gestione: aumentano col crescere della grandezza del progetto (numero di attività) dipendono dal livello di interdipendenza delle attività sono legati alla disponibilità limitata delle risorse devono tener conto dei costi fissi e variabili del progetto (e.g. di penali) e dei costi delle risorse
Project Management 3 Domande a cui chi gestisce un progetto deve rispondere: qual è la durata del progetto (la consegna)? quali attività più di altre possono influire su tale durata? quando possono iniziare e terminare le singole attività? quali margini di tempo esistono per ritardare delle attività senza influire sulla durata del progetto? di quali attività posso prolungare la durata (risparmiando risorse) senza influire sulla durata del progetto? su quali attività conviene concentrare le risorse per cercare di ridurre la durata del progetto? come posso ridurre complessivamente i costi del progetto mantenendone la durata fissata o eventualmente aumentandola sino ad un livello accettabile? Project Management - Definizioni 4 PERT (Project Evaluation and Review Technique) (1950) CPM (Critical Path Method) (1957) Progetto un insieme di attività che devono essere svolte con un certo ordine Attività un operazione che richiede delle risorse ed un certo tempo per essere eseguita
Project Management - Definizioni 5 Carta di Gantt strumento grafico per la pianificazione dei progetti T 4 T 1 T 2 risorse T 3 T 5 attività T 3 T 4 T 1 T 2 tempo T T T 5 tempo E una rappresentazione che non evidenzia le dipendenze tra i task non mi permette di rispondere a molte domande. PERT-CPM Sono metodi time-oriented, ovvero determinano lo scheduling dei task nel tempo Scheduling: Assegnare, Sequenziare, Temporizzare Sono anche dette tecniche reticolari per la programmazione dei progetti Sono tecniche di scheduling che non tengono conto della presenza di risorse limitate Sono metodi efficienti (polinomiali)
7 Tre fasi del PERT-CPM Planning suddividere il progetto in attività (task) costruendo un grafo orientato in cui ciascun arco rappresenta una singola attività Scheduling costruire una mappa temporale che riporti l inizio e la fine di ogni attività e le relazioni di dipendenza tra le attività, mettendo in evidenza le attività critiche Controlling utilizzando il grafo e la mappa temporale permette di seguire l avanzamento del progetto ed eventualmente apportare modifiche allo schedule 8 La fase di planning Determinazione delle attività del progetto E la fase più importante della gestione del progetto E un analisi eseguita da un team Individuare le attività rilevanti Individuare le relazioni (precedenze) tra le attività Stimare le durate delle attività
9 La fase di planning Costruzione del grafo orientato delle attività Grafo delle attività Rappresenta le relazioni (precedenze) tra le attività del progetto (Activity-On-Arc, AOA) Arco orientato Attività Nodo Evento Evento: istante di inizio o di completamento di un attività evento i i attività (i, j) j evento j 10 La fase di planning Significato del grafo i d ij j d jh h k d kj L attività (j,h) deve attendere che siano terminate le attività (i, j) e (k, j) per potere avere inizio Ad ogni arco/attività si associa un peso che rappresenta la durata dell attività
11 La fase di planning Regole per la costruzione del grafo Regola 1 Ciascuna attività è rappresentata da un solo arco orientato Regola 2 Non possono esistere attività differenti caratterizzate dalla stessa coppia di eventi (stesso evento iniziale e stesso evento finale) (alcuni software lo consentono) 12 La fase di planning Regole per la costruzione del grafo Per soddisfare la Regola 2 si introducono attività dummy (attività fittizie di durata zero) A i A j i B j B k dummy
13 La fase di planning Regole per la costruzione del grafo Le attività dummy possono servire per definire meglio relazioni logiche Ad esempio, A e B precedono C, B precede E i k A B j C E h f i k A B C j dummy g E h f 14 La fase di planning Regole per la costruzione del grafo Regola 3 La correttezza delle relazioni di precedenza costruite può essere verificata eseguendo ogni volta che si aggiunge un attività i seguenti controlli: 1. verificare quali attività devono completarsi immediatamente prima che la nuova attività inizi 2. verificare quali attività devono seguire l attività 3. verificare quali attività si devono svolgere contemporaneamente
15 La fase di planning Osservazioni Il grafo AOA mette in evidenza: l esistenza di attività che possono essere eseguite in parallelo la presenza di eventi di sincronizzazione nel progetto In alternativa le relazioni di precedenza (in modo più intuitivo) possono essere descritte da un grafo Activity-On- Node 1 La fase di planning Un esempio A, B, C attività iniziali A, B D B E, F, H F, C G E, H I, J C, D, F, J K K L I, G, L attività finali
17 Allocare le attività nel tempo Si determinano gli istanti di possibile inizio e fine delle attività tenendo conto solo delle precedenze Si applica un algoritmo semplice (polinomiale) basato su operazioni aritmetiche eseguite direttamente sul grafo Si determinano le attività critiche 18 Attivita critiche e percorso critico Attività critica un attività che causerebbe un ritardo nel completamento dell intero progetto se ne venisse ritardato l inizio Attività non critica il tempo che intercorre tra il primo istante in cui, in base alle precedenze, è possibile iniziare l attività (Earliest Start, ES) e l ultimo istante in cui può terminare (Latest Completion, LC) è maggiore della durata dell attività Percorso critico (Critical Path, CP) la catena delle attività critiche dall inizio alla fine del progetto
19 Determinare il percorso critico (CP) Il calcolo del CP si esegue in due passi Forward pass Dal nodo iniziale verso il nodo finale, per ogni nodo j si calcola il ES j Backward pass Dal nodo finale verso il nodo iniziale, per ogni nodo j si calcola il LC j 20 CP Fase forward Si calcola ES i Earliest Start Time di tutte le attività che partono dall evento i, i=1,...,n Per i=0 si pone ES 0 =0 d ij è la durata dell attivita associata all arco (i, j) [ ES d ] ES j = max i + i: (i, j) ij
21 CP Fase forward ES j attività che completano in j ES i i d ij j ESj ES i ES j 22 CP Fase backward Si calcola LC i Latest Completion Time di tutte le attività che terminano nell evento i Per per i=n si pone LC n = ES n LC i = min j: (i,j) [ LC d ] j ij
23 CP Fase backward LC i attività che iniziano in i d ij j LC j LC i i LC i LC j 24 Un esempio Attività Durata (d j ) Precede A 3 E, D B 2 C C 2 F, G, H, L D 3 F, G, H, L E 2 G, H F 3 I G 7 I H 5 I L 2
25 Un esempio 0 A, 3 2 E, 2 4 B, 2 1 C, 2 D, 3 dummy F, 3 H, 5 G, 7 5 I, 3 L, 2 2 Un esempio: fase forward ES i 0 0 A, 3 2 3 E, 2 4 B, 2 2 1 C, 2 D, 3 dummy 13 F, 3 H, 5 G, 7 5 I, 19 3 L, 2
27 Un esempio: fase forward ES i I calcoli ES 0 =0 ES 1 =ES 0 +d 01 =0+2=2 ES 2 =ES 0 +d 02 =0+3=3 ES 3 =max i [ES i +d i3 ]=max[2+2, 3+3]= ES 4 =max i [ES i +d i4 ]=max[+0, 3+2]= ES 5 =max i [ES i +d i5 ]=max[+7, +3]=13 ES =max i [ES i +d i ]=max[+5, 13+, +2]=19 28 Un esempio: fase backward LC i ES i 0 0 0 A, 3 2 3 3 E, 2 4 B, 2 4 2 1 D, 3 C, 2 dummy 3 13 13 F, 3 L, 2 G, 7 5 I, H, 5 19 19
29 Un esempio: fase backward LC i ES i I calcoli LC =ES =19 LC 5 =LC -d 5 =19-=13 LC 4 =min i [LC i -d 4i ]=min[19-5, 13-7]= LC 3 =min i [LC i -d 3i ]=min[-0, 13-3, 19-2]= LC 2 =min i [LC i -d 2i ]=min[-3, -2]=3 LC 1 =LC 3 -d 13 =-2=4 LC 0 =min i [LC i -d 0i ]=min[4-2, 3-3]=0 30 Le attività critiche L attività (i, j) è sul CP se: 1. ES i = LC i 2. ES j = LC j 3. ES j -ES i = LC j -LC i = d ij La lunghezza del CP corrisponde al tempo minimo necessario per completare il progetto
31 Un esempio: identificazione delle attività critiche 0 0 0 A, 3 2 3 3 E, 2 4 B, 2 4 2 1 D, 3 C, 2 dummy 3 13 13 F, 3 L, 2 G, 7 5 I, H, 5 19 19 32 Calcolo dei Margini (Float) Un insieme di quantità associate ad ogni attività dette float indicano con quale margine un attività può essere spostata nel tempo ed in che modo tale spostamento influenza le altre attività Tre float Total Float Free Float Independent Float
33 Calcolo dei Margini (Float) Total float (margine totale) di (i, j) TF ij = LC j -ES i -d ij = LS ij -ES i dove LS ij = LC j -d ij è il Latest Start di (i, j) TF ij è il margine di tempo tra il massimo intervallo in cui può essere eseguita (i, j) e la durata di (i, j) E il massimo ritardo dell inizio di (i,j) rispetto ES j che non influenza la durata del progetto 34 Calcolo dei Margini (Float) Free float (margine libero) di (i, j) FF ij = ES j -ES i -d ij = ES j -EC ij dove EC ij = ES i + d ij è l Earliest Completion di (i, j) Supponendo che le attività precedenti finiscano il prima possibile, rappresenta il margine di tempo che resta completando prima possibile (i, j) e dovendo far iniziare le attività che iniziano con l evento j il prima possibile
35 Calcolo dei Margini (Float) Independent float (margine indipendente) di (i, j) IF ij = ES j -LC i -d ij Supponendo che tutte le attività precedenti completino il più tardi possibile e che quelle seguenti inizino prima possibile, rappresenta il margine di tempo che resta completando il più tardi possibile (i, j) e dovendo far iniziare le attività che iniziano con l evento j il prima possibile 3 Calcolo dei Margini (Float) Graficamente ES i EC ij LS ij LC i ES j LC j d ij d ij TF ij FF ij IF ij
37 Calcolo dei Margini (Float) Osservazioni I float indicano quale possibilità di manovra si ha nel ritardare l inizio di un attività o nel farne crescere la durata senza influenzarne altre TF ij = 0 per le attività critiche Se si ritarda l inizio delle attività critiche o la loro durata aumenta, cresce di conseguenza la durata di tutto il progetto 38 La rappresentazione dei risultati I risultati dell analisi possono essere raccolti in una tabella Attività Durata ESi LCj TFij FFij IFij Quindi è possibile costruire una carta di Gantt per rappresentare graficamente lo schedule. In questa carta non sono evidenziate le risorse (risorse infinite)
39 La rappresentazione dei risultati Un esempio di carta di Gantt 0 1 3 Attività critica Precedenza CP 5 ES 0 0 2 4 CP Attività non critica LC 2 Range per attività non critica tempo 40 L esempio continua 0 0 0 A, 3 2 3 3 E, 2 4 B, 2 4 2 1 D, 3 C, 2 3 dmy 13 13 F, 3 L, 2 G, 7 5 I, H, 5 19 19
41 L esempio continua Attività Durata ESi LCj TFij FFij IFij A (0, 2) 3 0 3 0 0 0 B (0, 1) 2 0 4 2 0 0 C (1, 3) 2 2 2 2 0 D (2, 3) 3 3 0 0 0 E (2, 4) 2 3 1 1 1 dmy (3, 4) 0 0 0 0 F (3, 5) 3 13 4 4 4 G (4, 5) 7 13 0 0 0 H (4, ) 5 19 8 8 8 I (5, ) 13 19 0 0 0 L (3, ) 2 19 11 11 11 42 0 2 3 A D dmy 5 4 G I B 1 1 C E F L H 0 2 4 8 10 12 14 1 18 20
43 0 2 3 A D dmy 5 4 G I B 1 1 C E F L H 0 2 4 8 10 12 14 1 18 20 44 Osservazioni Se TF ij = FF ij l attività (i, j) può essere posizionata liberamente all interno del proprio intervallo di attivazione senza che ciò influenzi altre attività Se TF ij > FF ij l attività (i, j) può essere ritardata rispetto ES i solo del FF ij senza che questo influenzi le attività seguenti. Questo si verifica se un attività che ne precede un altra può terminare (LC) anche dopo il primo possibile istante di inizio della successiva (ES) 0 B 1 1 C 3
45 Osservazioni IF ij può essere anche negativo. In questo caso tale quantità indica l anticipo con cui dovrebbe verificarsi l evento i rispetto LC i perchè lo schedule dell attività (i, j) non influenzi le attività seguenti ES i LC i LS ij EC ij ES j LC j d ij TF ij FF ij IF ij <0 4 Un altro esempio Attività Durata (d j ) Precede A 3 D B 5 E, F, G C 7 F, G D 4 O, H E 2 I, L F 3 I, L G 2 M H 7 I 3 N L 5 M M 3 N N 2 O I, L
47 La fase di controlling Assegnazione delle risorse Lo schedule determinato assume che siano presenti risorse infinite (le risorse non modificano la possibilità di eseguire le attività) La presenza di margini nello schedule permette di assegnare le attività in modo da ridurre le risorse necessarie per la loro esecuzione In generale il problema del project scheduling con risorse limitate è NP-hard 48 La fase di controlling Valutazione della durata del progetto Se la durata prevista del progetto indicata dallo schedule non fosse accettabile... Analisi strategica: valutare se la struttura delle precedenze è proprio quella considerata per le attività critiche o può essere cambiata Analisi tattica: effettuare l analisi dei costi che si dovrebbero pagare riducendo ad un livello accettabile la durata del progetto
49 La fase di controlling Analisi dei costi Determinato il CP è possibile eseguire un analisi di postottimalità tenendo conto dei costi In genere il costo totale ( C T ) di un progetto è dato da C T = c ij + (i,j) A c P A è l insieme delle attività c ij è costo dell attivita (i,j) (costo diretto) c P è un costo associato globalmente al progetto (e.g., affitto macchinari, concessioni, penali, ecc.) (costo indiretto) 50 La fase di controlling Analisi dei costi I costi diretti dipendono dalla durata delle attività che a sua volta dipende dalla quantità di risorse utilizzate per eseguirla Alternative per ridurre C T : ridurre i costi diretti c ij aumentando la durata di un attività non critica rispettando i margini ridurre il costo indiretto c P riducendo la durata delle attività critiche; in questo caso tuttavia i costi diretti delle attività critiche aumenteranno compromesso L analisi deve essere effettuata imponendo che il CP non cambi
51 La fase di controlling I costi diretti Si assumono lineari in una regione tra d ijn durata nominale c n ij d ijc durata di crash c c ij c ij c ij c c ij n α ij <0 c ij = α ij d ij d ij c d ij n d ij α ij = c c ij d n ij c n ij d c ij 52 La fase di controlling I costi indiretti Si assumono lineari c P c P = α P d P α P >0 d P = ES n =LC n c 0 d P d 0
53 La fase di controlling Analisi dei costi Si può formulare un problema di PL Obiettivo (minizzazione C T ) min C T = αij (i,j) A dij + αpdp d p è una variabile dipendente d P = d ij (i,j) CP Introducendo ES i e LC i come variabili d P = ES n 54 La fase di controlling Analisi dei costi Vincoli costi diretti lineari d c ij d d n ij ij (i, j) A definizione del CP d P = d ij (i,j) CP conservazione del CP (post-ottimalità) dij dp (i,j) Pk Pk CP P k percorso tra l evento inizio e l evento fine del progetto
55 La fase di controlling Analisi dei costi Una formulazione lineare più generale si ha usando le ES i e LC i come variabili d P = ES n Obiettivo (minizzazione C T ) min C T = αij (i,j) A dij + αpes n 5 La fase di controlling Analisi dei costi Vincoli costi diretti lineari d c ij d d n ij ij (i, j) A definizione degli ES i e LC i ESi ESj + dij LCi LCj dij LC j ESi dij j pred(i) j succ(i) (i, j) A
57 Esempi con software Excel MS Project 58 Esempi
59 Esempi 0 Esempi 2 1 4 5 3
1 Esempi Activity DIP 2 Esempi min C T = α ij ij (i, j) A 0 max ij ij (i, j) A ESi ESj + (dij ij) LCi LCj (dij ij) LC j ESi dij ij j pred(i) j succ(i) (i, j) A
3 Considerazioni finali L analisi del PERT-CPM può essere effettuata anche in presenza di durate aleatorie delle attività (almeno in presenza di ipotesi semplificative)