Ho trovato uno splendido articolo sull’argomento del titolo scritto da Nenad Trajkovski e, con il consenso dell’autore, ho deciso di tradurlo in italiano, sicuro che vi possa essere utile e chiarire alcuni dei concetti più ostici di Microsoft Project in tutte le sue versioni.

Un lettore del blog di Nenad scrive:

“Caro Nenad,

Felice di trovare il tuo sito e ho pensato di chiedere il tuo aiuto!Sarebbe bello, se riesci chiarire i miei dubbi qui sotto! Ho una domanda su una questione! Spero di ottenere assistenza su come ottenere il risultato desiderato!
Nello scenario di sotto, sto cercando di affrontare una situazione che non ho potuto risolvere!

Case Study:
Ho la necessità di creare un’Attivitò “Paint the wall”.
Mi aspetterei di completare questo compito entro 24 ore. Mi aspetto che la data di inizio sia il 7 Gennaio 2015 (Mercoledì)
Ho 3 risorse con i vincoli di seguito descritti.
A (con unità di max = 50%). cioè, A può lavorare solo 4 ore al giorno
B (con unità max = 50%). cioè, B può lavorare solo 4 ore al giorno
C (con unità max = 25%). cioè, C può lavorare solo 2 ore al giorno Inoltre, C non può funzionare l’8 ed il 9 gennaio. (in genere, C non è disponibile il Giovedi ed il  venerdì)
Vorrei realizzazione degli scenari in Project 2013, in modo tale che le risorse siano effettivamente utilizzate in modo da completare questa operazione (“dipingere il muro”) nel minore numero di giorni!
Apettativa 1: Se assegno solo Resource A, mi sarei aspettato il lavoro (24 ore) per essere completato in 6 giorni lavorativi (14 gennaio) (nota: Resource A lavora 4 ore al giorno quindi 24 ore di lavoro sarà completato in 6 giorni lavorativi.)
Se assegno Resource A, B e C, mi aspetto che il lavoro (24 ore) sia completato entro il 9 gennaio. (Nota: Il 7 gennaio 2015 – mi aspettavo che lavorassero tutte e 3 le risorse. Quindi le ore totali sono di 4 + 4 + 2 = 10 ore
Per l’ 8 gennaio 2015 – La Resource C non può lavorare, Resource 1 e Resource 2 lavoreranno 4 + 4 = 8 ore il 9 gennaio 2015.
La Resource 3 non può lavorare, Resource 1 e Resource 2 lavoreranno 3 + 3 = 6 ore
Chiedo il tuo aiuto se quello che ho descritto possa essere realizzato in Microsoft Project 2013.
…….. “

Vediamo come possa essere risolto con Microsoft Project 2013.
Prima di tutto creo un’Attività con durata 24 ore.

Durata unita e lavoro con msproject 01

Vediamo di spiegare cosa sta succedendo. Quando inserisco 24 ore nel campo Durata, MS Project calcola la Durata in giorni = 3 giorni! Perché? Dal menu File, scegliamo Opzioni e attiviamo il pannello Schedulazione abbiamo:

Durata unita e lavoro con msproject 02

 Questo significa che le 24 ore finiranno in 3 giorni (24/8 = 3).

Notare che nella prima immagine il campo Lavoro (Work) è 0 ore (zero ore)! E’ un errore di Project? Non proprio! Il campo Lavoro avrà valore maggiore di zero SOLO quando assegno risorse all’Attività. Senza Risorse sarà sempre zero. Ricordatevi sempre di questo fatto.

Adesso è il momento di creare Risorse nella vista Elenco Risorse come segue:

Durata unita e lavoro con msproject 03

 Adesso apriamo il Modulo Attività nella Pagina Dettaglio nella vista Diagramma di Gantt:

Durata unita e lavoro con msproject 04

e avremo:

Durata unita e lavoro con msproject 05

Adesso assegno la Resource A all’Attività:

Durata unita e lavoro con msproject 06

otterremo:

Durata unita e lavoro con msproject 07

Come puoi vedere, la Durata è ancora di 24 ore (3 giorni), ma il lavoro è solo 12 ore! E’ un baco di Project? ASSOLUTAMENTE NO!

La formula magica è LAVORO = DURATA * UNITA’ e questo spiega questo risultato.

Così Lavoro = 24 ore * 50% = 12 ore. Questo significa che Resource A lavorerà 3 giorni, 4 ore al giorno. In altre parole, Resource A completerà questi tre giorni (durata) di lavoro in 12 ore (effort).

Ma, il lettore vuole una cosa specifica:

“Mi aspetterei che il Lavoro (24 ore) sia completato in 6 giorni lavorativi (14 gennaio) (nota: Resource A lavora 4 ore/giorno. Quindi 24 ore di lavoro saranno completate in 6 giorni lavorativi”

Per ottenere questo, dovrei assegnare la Resource A, con 24 ore di lavoro e Unità Fissa come Tipo Attività.

Durata unita e lavoro con msproject 08

e otterrò:

Durata unita e lavoro con msproject 09

 

Come si può vedere la durata è ora 6 giorni, Poiché Resource A lavorerà in tutto 24 ore, 4 ore al giorno. Ad esempio, 24/4 = 6 giorni di durata!
Ora vi spiegherò questo:

“Se assegno Resource A, B e C, mi aspetto il lavoro (24 ore) che venga completato entro il 9 gennaio.

(Nota:
Il 7 gennaio 2015 – mi aspettavo che tutte le risorse lavori. Quindi 4+4+2 = 10 ore
L’8 gennaio 2015 – Poiché Resource C non può lavorare, Resource A e Resource B lavoreranno 4+4 = 8 ore
Il 9 gennaio 2015 – Poiché la Resource C non può lavorare, Resource A e Resource B lavoreranno 3+3 = 6 ore
)”


Vediamo un pò.
Primo, se ricordi, la richiesta è che Resource C non lavora il Giovedì ed il Venerdì. Rendo possibile:


Durata unita e lavoro con msproject 10

 Adesso assegnerò tutte le risorse (A, B, C) all’Attività (di tipo a Unità Fissa), e ne spiegherò i risultati:

Durata unita e lavoro con msproject 11

Come ricorderai, la Durata (iniziale) era 24 ore (3 giorni). La formula è

 LAVORO = Durata * Unità

  1. Resource A e Resource B: Lavoro = 24 ore * 50% = 12 ore
  2. Resource C: Lavoro = 24 ore * 25% = 6 ore

Bene! Ma perché la Durata è di 5 giorni (o 40 ore) adesso? Diamo un’occhiata con la Vista Gestione Attività:

Durata unita e lavoro con msproject 12

 Le risorse A e B lavoreranno 4 ore al giorno.

Dal momento che sono disponibili da Lunedì a Venerdì, e devono lavorare per 12 ore totali, lavorano dal Mercoledì al Venerdì (3 giorni), 4 ore al giorno, e che sarà di 12 ore a persona.

Resource C è disponibile solo dal Lunedì al Mercoledì, e deve lavorare 6 ore totali: mercoledì 2 ore, il prossimo lunedì e martedì 2 ore al giorno, per un totale quindi di 6 ore.

Ancora una volta il lettore si aspettava:

Il 7 gennaio 2015, mi aspettavo che tutte e tre le risorse lavoravano. Quindi le ore totali dovevano essere 4 + 4+ 2 = 10 ore. OK.
L’’8 gennaio 2015 funziona così: Resource C non può lavorare, Resource A e Resource B lavoreranno 4 + 4 = 8 ore. Ok.


Il 9 gennaio 2015 funziona così: la Resource C non può lavorare, Resource A  e Resource B lavoreranno 3 + 3 = 6 ore.

Dal momento che la durata prevista è di 24 ore, il lettore si aspettava che il Lavoro il 9 gennaio è di  24 ore (in totale) – 10 (7 gennaio) – 8 (8 gennaio) = 6 ore. E poiché il Venerdì 9 gennaio Resource C non è disponibile, e le altre due risorse invece lo sono, dovrebbero dividere il lavoro tra di loro.

Ma MS PROJECT non funziona in questo modo. Sarà invece l’ora di Resource C per finire la sua opera quando è disponibile. E questo è ragionevole, perché Microsoft Project non può “rimuovere” il lavoro per la risorsa C, proprio perché non è disponibile in altre date.

Vediamo per ultimo il caso in cui la Durata di 24 ore debba essere fissa. In questo caso possiamo usare come Tipo Attività = Durata Fissa. Se facciamo così ed associamo tutte e tre le risorse all’Attività “Paint the wall”, otterremo:

Durata unita e lavoro con msproject 13

Spiegazione finale:

La Resource A e Resource B lavoreranno 4 ore a testa al giorno. Poiché sono disponibili dal Lunedì al Venerdì e devono lavorare in totale 12 ore a testa, lavoreranno dal Mercoledì al Venerdì (3 giorni), 4 ore al giorno, 12 ore a testa. 

Resource C è disponibile solo dal Lunedì al Mercoledì, ma poiché la durata è fissa, lavorerà solo quando sarà disponibile nei soli tre giorni (da Mercoledì a Venerdì). Ed è disponibile solo al Mercoledì (rispetto alle date di inizio/fine dell’Attività), così Resource C lavorerà al mercoledì solo per 2 ore. Così il lavoro totale sarà di 26 ore:

Il 7 gennaio 2015 mi aspetto che tutte e 3 le risorse lavorino. Quindi il totale + 4 +4 + 2 = 10 ore.
L’8 gennaio 2015, poiché Resource 3 non può lavorare, Resource A e Resource B lavoreranno 4 + 4 = 8 ore.
Il 9 gennaio 2015, poiché Resource 3 non può lavorare, Resource A e Resource B lavoreranno 4 + 4 = 8 ore.

Spero che questo articolo possa servire a chiarire i ragionamenti machiavellici che fa Project!


Grazie a  Nenad Trajkovski 

Nenad