Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica La Corte in Rete
 
I corsi di Scienze Matematiche Fisiche e Naturali
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Sergio Di Martino » 3.Concetti e strumenti di base per il Project Management


Obiettivi della lezione

  • Introdurre caratteristiche e problematiche della direzione di progetto software (project management)
  • Discutere la pianificazione di un progetto e la temporizzazione (scheduling)
  • Presentare strumenti formali per la pianificazione di un progetto: diagramm di Gantt e Pert
  • Tools per la gestione di progetti

Che cos’è un progetto…

Un progetto è un insieme ben definito di attività che:

  • ha un inizio;
  • ha una fine;
  • realizza un obiettivo;
  • è realizzato da un’equipe di persone;
  • utilizza un certo insieme di risorse;
  • non è riconducibile a “routine”;

“Un progetto diretto bene qualche volta fallisce, uno diretto male fallisce sicuramente”.

Perché c’è bisogno di un team?

La maggior parte dei progetti software sono troppo impegnativi per essere realizzati da una sola persona: spesso c’è bisogno di competenze diverse.
Es: Sito web dinamico:

  • analisti SW;
  • programmatori J2EE/ASP/DHTML;
  • esperti DB;
  • grafici.

I Giocatori in campo:

  • Business managers: definiscono i termini economici del progetto;
  • Project managers: pianificano, motivano, organizzano e controllano lo sviluppo;
  • Practitioners: hanno le competenze tecniche per realizzare il sistema;
  • Customers: specificano i requisiti del software da sviluppare;
  • End users: interagiscono con il sistema una volta realizzato.

Tipologie di team

Democratico Decentralizzato:

  • assenza di un leader permanente;
  • consenso di gruppo sulle soluzioni e sulla organizzazione del lavoro;
  • comunicazione orizzontale.

Vantaggi:

  • attitudine positiva a ricercare presto gli errori;
  • funziona bene per problemi “difficili” (ad esempio per la ricerca).

Svantaggi:

  • è difficile da imporre;
  • non è scalabile.

Tipologie di team (segue)

Controllato Decentralizzato:

  • un leader riconosciuto, che coordina il lavoro;
  • la risoluzione dei problemi è di gruppo, ma l’implementazione delle soluzioni è assegnata a sottogruppi da parte del leader;
  • comunicazione orizzontale nei sottogruppi e verticale con il leader.

Tipologie di team (segue)

Controllato Centralizzato:

  • il team leader decide sulle soluzioni e sull’organizzazione;
  • comunicazione verticale tra team leader e gli altri membri.

Ruoli in un team Controllato Decentralizzato

Project Manager: pianifica, coordina e supervisiona le attività del team;
Technical staff: conduce l’analisi e lo sviluppo (da 2 a 5 persone);
Backup engineer: supporta il project manager ed è responsabile della validazione;
Software librarian: mantiene e controlla la documentazione, i listati del codice, i dati…

Struttura del piano di progetto

  1. Introduzione;
  2. organizzazione del Progetto;
  3. descrizione dei Processi Gestionali;
  4. descrizione dei Processi Tecnici;
  5. pianificazione del lavoro, delle risorse umane e del budget.

1. Introduzione

1.1 Overview del Progetto: descrizione di massima del progetto e del prodotto.
1.2 Deliverables del Progetto: tutti gli items che saranno consegnati, con data e luogo di consegna.
1.3 Evoluzione del Progetto: piani per cambiamenti ipotizzabili e non.
1.4 Materiale di riferimento: lista dei documenti cui ci si riferisce nel Piano di Progetto.
1.5 Glossario, con definizioni e abbreviazioni.

2. Organizzazione del progetto

2.1 Modello del Processo: relazioni tra le varie fasi del processo.
2.2 Struttura Organizzativa: gestione interna, chart dell’organizzazione.
2.3 Interfacce Organizzative: relazioni con altre entità.
2.4 Responsabilità di Progetto: principali funzioni e attività; di che natura sono? Chi ne è il responsabile?

3. Processi gestionali

3.1 Obiettivi e priorità.
3.2 Assunzioni, dipendenze, vincoli: fattori esterni.
3.3 Gestione dei rischi: identificazione, valutazione, monitoraggio dei rischi.
3.4 Meccanismi di monitoraggio e di controllo: meccanismi di reporting, format, flussi di informazione, revisioni.
3.5 Pianificazione dello staff: skill necessari (cosa?, quanto?, quando?).

4. Processi tecnici

4.1 Metodi, Strumenti e Tecniche: Sistemi di calcolo, metodi di sviluppo, struttura del team, ecc. Standards, linee guida, politiche.
4.2 Documentazione del Software: piano di documentazione, che deve includere milestones, e revisioni.
4.3 Funzionalità di supporto al progetto: pianificazione della qualità;  pianificazione della gestione delle configurazioni.

5. Pianificazione del lavoro, delle risorse umane e del budget.

5.1 Work Packages (Work breakdown structure): il progetto è scomposto in tasks; definizione di ciascun task.
5.2 Dipendenze: relazioni di precedenza tra funzioni, attività e task.
5.3 Risorse necessarie: stima delle risorse necessarie, in termini di personale, di tempo di computazione, di hardware particolare, di supporto software ecc.
5.4 Allocazione del budget e delle risorse: associa ad ogni funzione, attività o task il costo relativo.
5.5 Pianificazione: deadlines e milestones.

Tasks

Unità di lavoro “atomiche”.
Hanno durata stimabile, necessitano di certe risorse, producono risultati tangibili (documentazione, codice, …)
Specifica di un task:

  • nome e descrizione del lavoro che deve essere fatto;
  • precondizioni per poter avviare il lavoro, durata, risorse necessarie;
  • risultato del lavoro e criteri di accettabilità;
  • rischi.

Tasks (segue)

E’ difficile stimare la difficoltà dei problemi ed il costo di sviluppo di una soluzione.
La produttività non è proporzionale al numero di persone che lavorano su una singola mansione.
Aggiungere personale in un progetto in ritardo può aumentare ancora di più il ritardo (Il Mitico Mese/Uomo).
Alcuni compiti possono essere condivisi, altri no overhead necessario per il coordinamento e la comunicazione.

Andamento ideale della curva tempo-risorse.

Andamento ideale della curva tempo-risorse.

Andamento reale della curva tempo-risorse.

Andamento reale della curva tempo-risorse.


Grafo delle attività e diagramma di Gantt

Diversi tipi di rappresentazione grafica dello scheduling del progetto.
Mostrano la suddivisione del lavoro in mansioni. Le mansioni non devono essere troppo piccole (una settimana o due di lavoro):

  • il grafo delle attività (PERT) evidenzia le dipendenze e il cammino critico;
  • il diagramma di Gantt mostra il succedersi temporale delle fasi di un progetto.

PERT

Program Evaluation and Review Technique
Un grafico PERT è un grafo in cui i nodi sono istanti di un processo (inizi di fasi), e gli archi rappresentano fasi, stabilendo durata e relazioni di dipendenza temporale tra fasi.
Ogni PERT ha un nodo iniziale “inizio del processo” ed un nodo finale “fine del processo”.
Gli altri nodi ed archi formano una rete di attività che procedono in parallelo o in sequenza.


Diagramma di PERT

  • ES: earliest start time: il minimo giorno di inizio dell’attività, a partire dal minimo tempo necessario per le attività che precedono;
  • EF: earliest finish time: dato ES e la durata dell’attività, il minimo giorno in cui l’attività può terninare;
  • LF: latest finish time: qual è il giorno massimo in cui quel job deve finire senza che si crei ritardo per i jobs che dipendono da lui;
  • LS: latest start time: dato LF e la durata del job, qual è il giorno massimo in cui quel job deve iniziare senza provocare ritardo per i job che dipendono da lui.

Diagrammi di Gantt

Un diagramma di Gantt permette di rappresentare graficamente un calendario di attività:

  • fornisce una chiara illustrazione dello stato d’avanzamento del progetto;
  • non permette di visualizzare l’interdipendenza delle attività sottostanti.

Il diagramma è costruito da:

  • un asse orizzontale – a rappresentazione dell’arco temporale totale del progetto, suddiviso in fasi incrementali (ad esempio, giorni, settimane, mesi);
  • un asse verticale – a rappresentazione delle mansioni o attività che costituiscono il progetto.

Barre orizzontali di lunghezza variabile rappresentano la durata di ogni singola attività.
Le barre possono sovrapporsi durante il medesimo arco temporale ad indicare la possibilità dello svolgimento in parallelo di alcune delle attività.
Man mano che il progetto progredisce, delle barre secondarie, delle frecce o delle barre colorate possono essere aggiunte al diagramma, per indicare le attività sottostanti completate o una porzione completata di queste.
Una linea verticale è utilizzata per indicare la data di riferimento.

Allocazione della forza lavoro


Esercizio

Disegnare il diagramma delle attività e il diagramma di Gannt relativo alle attività mostrate di seguito, con le relative durate e dipendenze.


Esercizio

Supponendo che si verifichi un problema inaspettato che prolunghi il task T5 da 10 a 40 giorni, rivedere il diagramma delle attività evidenziando il nuovo cammino critico. Disegnare il nuovo diagramma di Gantt per mostrare come il progetto potrebbe essere riorganizzato.

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion