Un progetto UP organizza il lavoro e le iterazioni in quattro fasi temporali principali successive:
- Ideazione: visione approssimativa, studio economico, portata, stime approssimative dei costi e dei tempi
- Elaborazione: visione raffinata iterativa del nucleo dell'architettura, risoluzione dei rischi maggiori, identificazione della maggior parte dei requisiti e della porta, stime più realistiche
- Costruzione: implementazione iterativa degli elementi rimanenti, più facili e a rischio minore, e preparazione del rilascio
- Transizione: beta test, rilascio
Queste fasi saranno descritte meglio nel corso dello studio.
Si noti che non si tratta del vecchio ciclo a cascata o sequenziale che prevede di definire tutti i requisiti, prima di passare a una progettazione completa.
L'ideazione non è una fase di requisiti, ma una fase breve in cui viene eseguita un'indagine sufficiente a sostenere la decisione di proseguire con il progetto o di interromperlo.
Allo stesso modo l'elaborazione non è la fase dei requisiti o della progettazione, ma una fase in cui viene implementata in modo iterativo l'architettura del sistema e vengono mitigati i rischi maggiori.
UP colloca le attività lavorative, come per esempio scrivere un caso d'uso del sistema che si vuole sviluppare, nell'ambito di discipline.
In UP quasi tutto è opzionale, tranne alcune pratiche come lo sviluppo iterativo e guidato dal rischio e la verifica continua della qualità.
Non è chiaro lo sviluppo iterativo o UP se:
- si cerca di definire la maggior parte dei requisiti prima di iniziare la progettazione o l'implementazione
- si cerca di definire in modo completo l'architettura e di affidarsi ad essa prima della programmazione iterativa e dei test
- si impiegano giorni o settimane a fare modellazione UML prima della programmazione
- si pensa che i diagrammi UML siano un modo per definire in modo completo e dettagliato i progetti
- si considera la traduzione meccanica dei modelli in codice
- si pensa che ideazione = requisiti, elaborazione = progettazione e costruzione = implementazione
- si pensa che lo scopo dell'elaborazione sia definire in modo completo e accurato dei modelli, che vengono poi tradotti in codice durante la costruzione
- si ritiene che la durata ottimale per una iterazione sia tre mesi e non tre settimane
- si ritiene che adottare UP significhi eseguire molte delle possibili attività e creare molti documenti, e si crede che UP sia un processo formale, complicato e rigido
- si cerca di pianificare un progetto nel dettaglio dall'inizio alla fine
- si cerca di prevede in modo speculativo tutte le iterazioni e cosa deve accadere in ciascuna
- se si preferisce un insieme piccolo di attività ed elaborati UP. Ci si concentri presto a programmare e non sulla documentazione iniziale.
- essendo UP iterativo ed evolutivo, i requisiti e la progettazione non vengono completati prima dell'implementazione, ma emergono durante le iterazioni
- se si applica UML con le pratiche dei metodi agili
- in UP non esiste un piano dettagliato per l'intero progetto:
- esiste un piano ad lato livello: piano delle fasi, che stima la data della fine del progetto e di altre milestone (grandi obiettivi intermedi e non finali) principali, ma non descrive in modo dettagliato i passi per raggiungere tali milestone
- esiste un piano dettagliato: piano dell'iterazione che pianifica in maggior dettaglia un'unica iterazione: la successiva e ciò avviene per ogni iterazione.