Per semplicità, immaginiamo che un’Azienda abbia un Project Portfolio costituito da due sole commesse: il progetto P1 e il progetto P2.
Supponiamo che il progetto P1 sia costituito dalle attività seguenti:
Attività |
Durata |
Predecessori |
Successori |
A11 |
5 g |
Nessuno |
A12 |
A12 |
5 g |
A11 |
Nessuno |
Tabella 1. Modello reticolare del progetto P1 (metodo del diagramma di precedenza in forma tabellare).
Ipotizziamo che il legame logico fra l’attività A11 e l’attività A12 sia di tipo Fine – Inizio, senza alcun Lag (Lag = 0 g).
Analogamente, supponiamo che il progetto P2 sia costituito dalle attività seguenti:
Attività |
Durata |
Predecessori |
Successori |
A21 |
5 g |
Nessuno |
A23 |
A22 |
2 g |
Nessuno |
A23 |
A23 |
5 g |
A21, A22 |
Nessuno |
Tabella 2. Modello reticolare del progetto P2 (metodo del diagramma di precedenza in forma tabellare).
Anche in questo caso, ipotizziamo che tutti i legami logici (vale a dire quello fra l’attività A21 e l’attività A23 e quello fra l’attività A22 e l’attività A23) siano di tipo Fine – Inizio, senza alcun Lag (Lag = 0 g).
Se, per l’esecuzione di entrambi i progetti, fossero disponibili 10 giorni lavorativi consecutivi, a decorrere da lunedì 9 maggio 2016 (incluso), applicando il Critical Path Method al progetto P1, si otterrebbe la soluzione seguente:
Attività |
Inizio |
Fine |
Scorrimento totale |
A11 |
Lunedì 9 maggio 2016 |
Venerdì 13 maggio 2016 |
0 g |
A12 |
Lunedì 16 maggio 2016 |
Venerdì 20 maggio 2016 |
0 g |
Tabella 3. Scorrimento del progetto P1 (in giorni lavorativi) = 0 g.
Analogamente, applicando (sotto le medesime ipotesi) il Critical Path Method al progetto P2, si otterrebbe la soluzione seguente:
Attività |
Inizio |
Fine |
Scorrimento totale |
A21 |
Lunedì 9 maggio 2016 |
Venerdì 13 maggio 2016 |
0 g |
A22 |
Lunedì 9 maggio 2016 |
Martedì 10 maggio 2016 |
3 g |
A23 |
Lunedì 16 maggio 2016 |
Venerdì 20 maggio 2016 |
0 g |
Tabella 4. Scorrimento del progetto P2 (in giorni lavorativi) = 0 g.
Le due precedenti tabelle mostrano come:
- per il progetto P1, il Critical Path sia costituito dall’attività A11 (scorrimento totale = 0 g) e dall’attività A12 (scorrimento totale = 0 g);
- per il progetto P2, il Critical Path sia costituito dall’attività A21 (scorrimento totale = 0 g) e dall’attività A23 (scorrimento totale = 0 g);
- l’attività A22, facente parte del progetto P2, non sia critica, in virtù del suo scorrimento totale positivo, pari a 3 giorni lavorativi.
Occorre, però, ricordare come le attività siano generalmente svolte da una o più risorse, che rivestono certi ruoli e hanno una data disponibilità massima: infatti, tutte le risorse sono sempre limitate.
Nel caso di una Performing Organization con una struttura organizzativa di tipo progettuale, ogni commessa potrebbe avere un Project Team dedicato, senza alcuna presenza di una o più risorse condivise.
Tuttavia, molte Piccole e Medie Imprese hanno una struttura organizzativa di tipo matriciale, con la presenza di una o più risorse condivise, che è facile sovraccaricare: questo può portare a dei problemi di pianificazione.
Per rendercene conto, ipotizziamo che:
- la risorsa R1 sia assegnata alle attività A11 (8 h/giorno lavorativo ∙ 5 giorni lavorativi = 40 h), A12 (8 h/giorno lavorativo ∙ 5 giorni lavorativi = 40 h) e A22 (8 h/giorno lavorativo ∙ 2 giorni lavorativi = 16 h);
- la risorsa R2 sia assegnata all’attività A21 (8 h/giorno lavorativo ∙ 5 giorni lavorativi = 40 h);
- la risorsa R3 sia assegnata all’attività A23 (8 h/giorno lavorativo ∙ 5 giorni lavorativi = 40 h).
Figura 1*. Diagramma a barre o di Gantt illustrante il risultato dell’applicazione del Critical Path Method al progetto P1 (al di sopra della riga nera orizzontale) e al progetto P2 (al di sotto della riga nera orizzontale). In questa e nelle Figure seguenti, quando lo scorrimento totale è positivo, l’attività è di colore verde.
Mentre il carico di lavoro delle risorse R2 e R3 non rappresenta un problema, la risorsa R1, che è condivisa, risulta sovraccarica. Infatti, in base alla pianificazione di cui alle Tabelle 3 e 4, il carico di lavoro della risorsa R1 è il seguente:
09/05 |
10/05 |
11/05 |
12/05 |
13/05 |
16/05 |
17/05 |
18/05 |
19/05 |
20/05 |
16 h |
16 h |
8 h |
8 h |
8 h |
8 h |
8 h |
8 h |
8 h |
8 h |
Tabella 5. Carico di lavoro della risorsa R1.
Ne consegue che la pianificazione a cui si è giunti applicando il Critical Path Method al progetto P1 e al progetto P2 è irrealizzabile, se la risorsa R1 ha una disponibilità massima di 10 h/giorno lavorativo e di 48 h/settimana lavorativa.
Per semplificare al massimo, ipotizziamo che la disponibilità massima di ciascuna risorsa sia di 8 h/giorno lavorativo e di 40 h/settimana lavorativa.
Prima di procedere, occorre sottolineare come una risorsa possa essere condivisa non solo da più progetti (come capita nell’esempio proposto), ma anche da più attività del medesimo progetto.
Entro certi limiti, dati dalla disponibilità massima, la percentuale d’impiego (variabile fra 0% e 100%) consente di gestire un certo grado di parallelismo fra le attività che condividono le medesime risorse: per esempio, la stessa risorsa, avente una disponibilità massima di 8 h/giorno lavorativo, potrebbe dedicarsi per 4 h/giorno lavorativo (percentuale d’impiego = 50%) all’attività X e per 4 h/giorno lavorativo (percentuale d’impiego = 50%) all’attività Y. Oppure, potrebbe dedicarsi per 2 h/giorno lavorativo (percentuale d’impiego = 25%) all’attività W e per 6 h/giorno lavorativo (percentuale d’impiego = 75%) all’attività Z.
Nel nostro esempio (inerente ai progetti P1 e P2), la percentuale d’impiego è sempre pari al 100%.
A questo punto, sorge spontanea la domanda seguente: come possiamo gestire i problemi legati alla presenza di una risorsa condivisa, che risulta sovrallocata? E ancora: è possibile mettere a punto un algoritmo di pianificazione multiprogetto, che possa gestire le problematiche legate alla presenza di una o più risorse condivise, che risultano sovrallocate?
Proviamo a dare una risposta ai quesiti, senza alcuna pretesa di esaustività.
Caso n°1: in presenza di una o più risorse condivise, che risultano sovrallocate, si rende prioritaria (= si pianifica prima) l’attività più breve, fra quelle che condividono la medesima risorsa sovrallocata
In presenza di una o più risorse condivise, quando queste risultano sovrallocate, dare una priorità maggiore all’attività con la durata minore significa liberare prima la risorsa condivisa precedentemente sovrallocata, in modo tale che possa dedicarsi ad altro.
Nel nostro caso, l’applicazione di un algoritmo di pianificazione multiprogetto basato su una logica del genere porterebbe alla soluzione seguente:
Progetto |
Attività |
Inizio |
Fine |
Scorrimento totale |
P1 |
A11 |
Mercoledì 11 maggio 2016 |
Martedì 17 maggio 2016 |
0 g |
A12 |
Mercoledì 18 maggio 2016 |
Martedì 24 maggio 2016 |
0 g |
|
Scorrimento del progetto P1 (in giorni lavorativi) = -2 g |
||||
Progetto |
Attività |
Inizio |
Fine |
Scorrimento totale |
P2 |
A21 |
Lunedì 9 maggio 2016 |
Venerdì 13 maggio 2016 |
0 g |
A22 |
Lunedì 9 maggio 2016 |
Martedì 10 maggio 2016 |
0 g |
|
A23 |
Lunedì 16 maggio 2016 |
Venerdì 20 maggio 2016 |
0 g |
|
Scorrimento del progetto P2 (in giorni lavorativi) = 0 g |
Tabella 6. Pianificazione multiprogetto dei progetti P1 e P2 rendendo prioritaria l’attività più breve, fra quelle che condividono la medesima risorsa sovrallocata.
Nel nostro esempio, dando una priorità maggiore all’attività con la durata minore, la pianificazione del progetto P2 non subisce grosse variazioni (le date d’inizio e fine sono quelle della Tabella 4), mentre lo scorrimento del progetto P1 diventa negativo, poiché, per completare il progetto P1, servono ora 12 giorni lavorativi consecutivi, a decorrere da lunedì 9 maggio 2016 (incluso). Ne consegue che il progetto P1 non può più essere completato nei tempi previsti, vale a dire in 10 giorni lavorativi consecutivi, a decorrere da lunedì 9 maggio 2016 (incluso).
Si noti che, differentemente da quanto avveniva in precedenza (si veda lo scorrimento totale dell’attività A22 nella Tabella 4), l’attività A22 ha ora uno scorrimento totale nullo: infatti, se l’attività A22 slittasse in avanti, farebbe slittare in avanti l’intero progetto P1, poiché le attività A22, A11 e A12 (elencate in base alla sequenza temporale corrente) condividono tutte la medesima risorsa (R1), che è satura (percentuale d’impiego = 100%).
Figura 2. Diagramma a barre o di Gantt illustrante il risultato dell’applicazione di un algoritmo di pianificazione multiprogetto, dando la precedenza all’attività più breve, fra quelle che condividono la medesima risorsa sovrallocata. L’attività A22, che ha una durata di 2 giorni lavorativi, viene svolta prima dell’attività A11, che ha una durata di 5 giorni lavorativi.
Caso n°2: in presenza di una o più risorse condivise, che risultano sovrallocate, si rende prioritaria (= si pianifica prima) l’attività con lo scorrimento totale minore, fra quelle che condividono la medesima risorsa sovrallocata
In presenza di una o più risorse condivise, quando queste risultano sovrallocate, dare una priorità maggiore all’attività con lo scorrimento totale minore (calcolato applicando preventivamente il Critical Path Method a ciascun progetto: si vedano le Tabelle 3 e 4) porterebbe a realizzare le attività A11 e A12 (facenti parte del progetto P1) prima dell’attività A22 (facente parte del progetto P2). Infatti, le attività A11 e A12 hanno uno scorrimento totale nullo (si veda la Tabella 3, relativa al progetto P1), mentre l’attività A22 ha uno scorrimento totale positivo, pari a 3 giorni lavorativi (si veda la Tabella 4, relativa al progetto P2). In sostanza, l’attività A22 verrebbe svolta alla fine del progetto P1, la cui pianificazione non subirebbe alcuna variazione. Nel nostro caso, l’applicazione di un algoritmo di pianificazione multiprogetto basato su una logica del genere porterebbe alla soluzione seguente:
Progetto |
Attività |
Inizio |
Fine |
Scorrimento totale |
P1 |
A11 |
Lunedì 9 maggio 2016 |
Venerdì 13 maggio 2016 |
0 g |
A12 |
Lunedì 16 maggio 2016 |
Venerdì 20 maggio 2016 |
0 g |
|
Scorrimento del progetto P1 (in giorni lavorativi) = 0 g |
||||
Progetto |
Attività |
Inizio |
Fine |
Scorrimento totale |
P2 |
A21 |
Lunedì 9 maggio 2016 |
Venerdì 13 maggio 2016 |
7 g |
A22 |
Lunedì 23 maggio 2016 |
Martedì 24 maggio 2016 |
0 g |
|
A23 |
Mercoledì 25 maggio 2016 |
Martedì 31 maggio 2016 |
0 g |
|
Scorrimento del progetto P2 (in giorni lavorativi) = -7 g |
Tabella 7. Pianificazione multiprogetto dei progetti P1 e P2 rendendo prioritaria l’attività con lo scorrimento totale minore, calcolato applicando preventivamente il Critical Path Method a ciascun progetto: si vedano le Tabelle 3 e 4.
Figura 3. Diagramma a barre o di Gantt illustrante il risultato dell’applicazione di un algoritmo di pianificazione multiprogetto, dando la precedenza all’attività con lo scorrimento totale minore, fra quelle che condividono la medesima risorsa sovrallocata. L’attività A22, che ha uno scorrimento totale di 3 giorni lavorativi (calcolato applicando il Critical Path Method al progetto P2), viene svolta quando il progetto P1 è finito. Infatti, il progetto P1 è costituito da due attività aventi uno scorrimento totale nullo (calcolato applicando il Critical Path Method al progetto P1).
What If Analysis
Che cosa succederebbe, nei due casi appena esaminati (caso n°1: rendere prioritaria l’attività più breve; caso n°2: rendere prioritaria l’attività con lo scorrimento totale minore), se la risorsa R4 fosse assegnata all’attività A12 (40 h), al posto della risorsa R1?
Sotto questa nuova ipotesi, in base alla pianificazione del progetto P1 di cui alla Tabella 3 e alla pianificazione del progetto P2 di cui alla Tabella 4, il nuovo carico di lavoro della risorsa R1 sarebbe il seguente:
09/05 |
10/05 |
11/05 |
12/05 |
13/05 |
16/05 |
17/05 |
18/05 |
19/05 |
20/05 |
16 h |
16 h |
8 h |
8 h |
8 h |
0 h |
0 h |
0 h |
0 h |
0 h |
Tabella 8. Nuovo carico di lavoro della risorsa R1.
Pianificando prima l’attività più breve, fra quelle che condividono la medesima risorsa sovrallocata, si otterrebbe la soluzione seguente:
Progetto |
Attività |
Inizio |
Fine |
Scorrimento totale |
P1 |
A11 |
Mercoledì 11 maggio 2016 |
Martedì 17 maggio 2016 |
0 g |
A12 |
Mercoledì 18 maggio 2016 |
Martedì 24 maggio 2016 |
0 g |
|
Scorrimento del progetto P1 (in giorni lavorativi) = -2 g |
||||
Progetto |
Attività |
Inizio |
Fine |
Scorrimento totale |
P2 |
A21 |
Lunedì 9 maggio 2016 |
Venerdì 13 maggio 2016 |
0 g |
A22 |
Lunedì 9 maggio 2016 |
Martedì 10 maggio 2016 |
0 g |
|
A23 |
Lunedì 16 maggio 2016 |
Venerdì 20 maggio 2016 |
0 g |
|
Scorrimento del progetto P2 (in giorni lavorativi) = 0 g |
Tabella 9. Pianificazione multiprogetto dei progetti P1 e P2 rendendo prioritaria l’attività più breve, fra quelle che condividono la medesima risorsa sovrallocata, quando la risorsa R4 è assegnata all’attività A12, al posto della risorsa R1.
Come si può notare, non c’è alcuna variazione, rispetto alla situazione illustrata nella precedente Tabella 6.
Figura 4. Diagramma a barre o di Gantt illustrante il risultato dell’applicazione di un algoritmo di pianificazione multiprogetto, dando la precedenza all’attività più breve, fra quelle che condividono la medesima risorsa sovrallocata. L’attività A22, che ha una durata di 2 giorni lavorativi, viene svolta prima dell’attività A11, che ha una durata di 5 giorni lavorativi.
Pianificando prima l’attività con lo scorrimento totale minore, fra quelle che condividono la medesima risorsa sovrallocata, si otterrebbe la soluzione seguente:
Progetto |
Attività |
Inizio |
Fine |
Scorrimento totale |
P1 |
A11 |
Lunedì 9 maggio 2016 |
Venerdì 13 maggio 2016 |
0 g |
A12 |
Lunedì 16 maggio 2016 |
Venerdì 20 maggio 2016 |
0 g |
|
Scorrimento del progetto P1 (in giorni lavorativi) = 0 g |
||||
Progetto |
Attività |
Inizio |
Fine |
Scorrimento totale |
P2 |
A21 |
Lunedì 9 maggio 2016 |
Venerdì 13 maggio 2016 |
2 g |
A22 |
Lunedì 16 maggio 2016 |
Martedì 17 maggio 2016 |
0 g |
|
A23 |
Mercoledì 18 maggio 2016 |
Martedì 24 maggio 2016 |
0 g |
|
Scorrimento del progetto P2 (in giorni lavorativi) = -2 g |
Tabella 10. Pianificazione multiprogetto dei progetti P1 e P2 rendendo prioritaria l’attività con lo scorrimento totale minore, fra quelle che condividono la medesima risorsa sovrallocata, quando la risorsa R4 è assegnata all’attività A12, al posto della risorsa R1.
Figura 5. Diagramma a barre o di Gantt illustrante il risultato dell’applicazione di un algoritmo di pianificazione multiprogetto, dando la precedenza all’attività con lo scorrimento totale minore, fra quelle che condividono la medesima risorsa sovrallocata. L’attività A22 viene ora svolta dopo l’attività A11: esattamente l’opposto di quello che succede nella Figura 4.
Conclusioni
Come si sarà notato, rendere prioritaria (cioè pianificare prima, in ottica rigorosamente multiprogetto) l’attività con lo scorrimento totale minore, fra quelle che condividono la medesima risorsa sovrallocata, comporta un notevole slittamento del progetto P2, quando la risorsa condivisa, che risulta sovrallocata, è assegnata a tutte le attività critiche del progetto P1 (individuate applicando preventivamente il Critical Path Method al progetto P1).
Lo slittamento o ritardo di un progetto è espresso dal modulo o valore assoluto del suo scorrimento. Così, per esempio, quando lo scorrimento del progetto P2 è pari a -2 g, la data di completamento slitta in avanti di abs(-2 g) = |-2 g| = 2 giorni lavorativi, passando dal 20 al 24 maggio 2016. Il ritardo, quindi, è di abs(-2 g) = |-2 g| = 2 giorni lavorativi.
La sostituzione della risorsa R3 con la risorsa R4 potrebbe essere un’utopia del tutto irrealizzabile, dipendendo non solo dal ruolo ricoperto, ma anche dalla Seniority richiesta.
Quelle qui espresse sono soltanto delle semplici considerazioni preliminari, poiché l’argomento è tanto vasto quanto complesso. Per questa ragione, esso sarà oggetto di un secondo articolo (La pianificazione multiprogetto – parte seconda), che verrà pubblicato fra le pagine di PMI.it nelle prossime settimane.
_______
L’autore dedica questo articolo alla memoria di Francesco Turra, Studente di Logistica che già conosce i mille segreti del nostro Universo.