Ciclo di vita del progetto
IT Project Management
Lezione 2 – Ciclo di vita del progetto
Federica Spiga
A.A. 2009-2010
1
Ciclo di vita del progetto
Il ciclo di vita del progetto definisce le fasi che collegano l’inizio e la
fine del progetto stesso.
•Rappresenta un modello prescrittivo che aiuta ad organizzare le
attività del progetto.
•Stabilisce l’approccio interno che si intende adottare e descrive il
processo che si vuole seguire
•Descrive anche i contenuti del progetto e le attività che si devono
eseguire ed i relativi artefatti (“deliverables”)
2
1
Ciclo di vita del progetto
Ciclo di vita del progetto
Non esiste un modo in assoluto migliore per definire il ciclo di vita
del progetto.
•Alcune strutture organizzative hanno adottato delle regole che
consentono di standardizzare tutti i progetti attraverso un solo ciclo
di vita, mentre altre strutture organizzative preferiscono affidare al
gruppo di Project Management la scelta del ciclo di vita migliore per
il progetto assegnato al gruppo.
•Le pratiche comunemente adottate nel settore specifico conducono
generalmente all’utilizzo di un ciclo di vita preferenziale per il settore
in questione (es RUP per progetti di sviluppo software)
3
Ciclo di vita di un progetto: PM approach
4
2
Ciclo di vita del progetto
PMBOK – Project Management Areas & Processes
5
PMBOK – Project Management Areas & Processes
6
3
Ciclo di vita del progetto
Criteri di scelta del processo di sviluppo
La strategia di sviluppo del software stabilisce la modalità con cui si condurrà il
progetto e la realizzazione del prodotto finale. Dipende da:
•Caratteristiche del prodotto: requirements chiari e stabili oppure instabili o
confusi, funzionalità, livello di prestazioni, ecc
•Tipologia di rilascio: rilascio singolo, rilasci multipli
•Grado di coinvolgimento del cliente nel progetto: determina la tipologia e
quantità di review, documentazione formale. Alto coinvolgimento fa aumentare i
costi, ma assicura una maggiore comprensione dei requisiti, basso
coinvolgimento riduce i costi, ma aumenta la probabilità che ci possa essere uno
scollamento dalle aspettative del cliente
•Costi/budget di progetto: costi calcolati su requirements vaghi o ben precisi??
E’ un budget fisso oppure c’è una possibilità di negoziare dei cambi di budget?
7
Ciclo di vita del Software – Modello a Cascata (Waterfall)
• Requisiti stabili
• Adatto quando è richiesto un solo rilascio
• Durata del progetto ben definita e non troppo lunga
(per avere la certezza di mantenere i requisiti)
•Una fase inizia dopo che la precedente è terminata
• Responsabilità precise per ogni documento o
artefatto
• Ruoli differenti
• Comunicazione tramite documenti
• Processo stabilito e formale
• Modificare un sistema software in fase di avanzato
sviluppo è troppo costoso: Meglio fare tutti gli sforzi
possibili per farlo giusto sin dal principio!
• Si portano anche nel software le tecniche
dell’ingegneria
8
4
Ciclo di vita del progetto
Ciclo di vita del Software – Modello a stadi (Staged)
• Analisi dei requisiti e
progettazione preliminare
effettuata per l’intero progetto
• Progetto scomposto in più
componenti
•I componenti più critici o
prerequisiti vengono
sviluppati subito (1° stadio)
•Gli altri vengono sviluppati
in fasi successive
• Adatto quando il prodotto finale
può essere rilasciato in più step
•Struttura dell’intero prodotto è
conosciuta sin dall’inizio
9
Ciclo di vita del Software – Modello prototipale
• Due cicli distinti:
•Prototipo
•prodotto
•Ci si concentra nella analisi,
design, test del prototipo al fine
di acquisire informazioni sul
prodotto
•Quando finisce la fase
prototipale si inizia la fase di
realizzazione del prodotto vera e
propria
•Adatto anche per investigare su
parti critiche
10
5
Ciclo di vita del progetto
Ciclo di vita del Software – Modello iterativo
• Rappresenta uno scambio
continuo di feedback tra la fase di
sviluppo e le attività svolte o in
corso
• Adatto allo sviluppo di
appplicazioni OO
• Il numero di iterazioni e di fasi
non è previsto a priori, ma
dipende dal raggiungimento degli
obiettivi di progetto
•Adatto a progetti di grandi
dimensioni, complessi e con
requisiti non stabili
11
Ciclo di vita del Software – Modello a spirale
• Ciclo di vita come lo sviluppo di
una serie di prototipi, sempre più
completi ed evoluti, fino al
prodotto finale.
•Adatto a progetti con requisiti
non stabili e tecnologie poco
conosciute
12
6
Ciclo di vita del progetto
Ciclo di vita del Software – Modello iterativo - incrementale
• Estensione del modello iterativo
•Ciclo di vita come serie di singoli cicli completi di sviluppo (“iterazioni”), che permettono il
rilascio in esercizio di una serie completa di funzioni
•Ogni iterazione INCREMENTA le funzionalità del prodotto finora rilasciate
•Il modello permetti di rendere disponibili all’utente in esercizio parti di prodotto
autoconsistenti
•Adatto a progetti di grandi dimensioni, complessi, con requisiti non stabili e che permetta la
suddivisioni in parti di prodotto autoconsistenti
13
Processo di sviluppo – Rational Unified Process (RUP)
• Processo industriale per lo sviluppo del software, per ottenere:
•Prodotti di qualità
•Prodotti rispondenti ai requisiti dell’utente
•Controllo forte dei tempi e dei costi di progetto
•Racchiude in se le “best practice” del settore
• Guidato dai casi d’uso (“Use Case”)
•Fondato sull’architettura
•Iterativo e incrementale
Nel RUP, il ciclo di vita di un processo software viene suddiviso in cicli di sviluppo, a loro volta
scomposti in fasi. Le fasi previste sono:
•Inception Phase (fase iniziale)
•Elaboration Phase (fase di elaborazione)
•Construction Phase (fase di costruzione)
•Transition Phase (fase di transizione)
Ogni fase ha un certo insieme di obiettivi e si conclude con la realizzazione di un deliverable
(prodotto) di qualche genere. Le fasi sono ulteriormente scomposte in iterazioni, che sono associate a
periodi temporali e hanno deadline precise.
14
7
Ciclo di vita del progetto
Processo di sviluppo – Rational Unified Process (RUP) - Fasi
Inception Phase
L'Inception Phase si può considerare come una particolare elaborazione e precisazione del concetto
generale di analisi di fattibilità. Fra gli strumenti utilizzati ci sono un modello dei casi d'uso, la
pianificazione iniziale del progetto, la valutazione dei rischi, una definizione grossolana dei requisiti e
così via. Se il progetto non supera questa milestone, detta "Lifecycle Objective Milestone", esso dovrà
essere abbandonato o ridefinito.
Elaboration Phase
La fase di elaborazione definisce la struttura complessiva del sistema. Questa fase comprende l'analisi
di dominio e un prima fase di progettazione dell'architettura. Questa fase deve concludersi con il
superamento di una milestone detta "Lifecycle Architecture Milestone". Devono essere soddisfatti i
seguenti criteri:
•deve essere stato sviluppato un modello dei casi d'uso completo all'80%
•dev'essere fornita la descrizione dell'architettura del sistema
•dev'essere stata sviluppata un'"architettura eseguibile" che dimostra il completamento degli use case
significativi
•dev'essere eseguita una revisione del business case e dei rischi
•dev'essere completata una pianificazione del progetto complessivo
•Se il progetto non passa questa milestone, potrebbe ancora essere abbandonato, oppure dovrà
essere rivisitato..
15
Processo di sviluppo – Rational Unified Process (RUP) - Fasi
Construction Phase
In questa fase viene portato a termine il grosso degli sviluppi. Viene prodotta la prima release del
sistema. La milestone di questa fase si chiama "Initial Operational Capability" e rappresenta la prima
disponibilità delle funzionalità del sistema in termini di implementazione.
Transition Phase
Nella fase di transizione, il sistema passa dall'ambiente dello sviluppo a quello del cliente finale.
Vengono condotte le attività di training degli utenti e il beta testing del sistema a scopo di verifica e
validazione. Si deve in particolare verificare che il prodotto sia conforme alle aspettative descritte
nella fase di Inception. Se questo non è vero si procede a ripetere l'intero ciclo; altrimenti, si
raggiunge la milestone detta "Product Release" e lo sviluppo termina.
Iterazioni
Tipicamente, un progetto gestito usando il RUP viene suddiviso in iterazioni. Questa scomposizione
presenta numerosi vantaggi (in particolare rispetto alla valutazione dell'avanzamento del progetto e
alla gestione dei fattori di rischio) ma implica un overhead specifico. Il RUP definisce una "Project
Management Discipline" (disciplina di gestione dei progetti) a cui il project manager può affidarsi per
amministrare le iterazioni
16
8
Ciclo di vita del progetto
Processo di sviluppo – Rational Unified Process (RUP)
17
Ciclo di vita di un progetto
Processo di
sviluppo
software
18
9