Ciclo di vita di un sistema software
Ogni sistema attraversa cinque macro-fasi sequenziali ma parzialmente sovrapposte:
- Development: si concepisce e realizza la prima versione del prodotto.
- Deployment: la soluzione viene rilasciata nell’ambiente di esercizio.
- Operation: il sistema eroga valore agli utenti finali; è la porzione più lunga e costosa del ciclo di vita.
- Maintenance: indispensabile per correggere difetti, adattare il software a nuovi requisiti o piattaforme e migliorare prestazioni e sicurezza.
- Retirement: dismissione controllata e migrazione verso soluzioni sostitutive.

Dettaglio della fase di sviluppo
Lo sviluppo si articola in tre fasi fondamentali, ciascuna seguita da un controllo formale:
- Requirements definition, che produce un requirements document e culmina in una requirements inspection per assicurarne chiarezza e completezza.
- Design phase, alimentata dalla validazione del documento, genera un design document sottoposto a design inspection per individuare incoerenze architetturali prima di codificare.
- Implementation, da cui scaturisce il codice sorgente, oggetto di code inspection e test.
Tutte le attività sono sorrette in continuo da due processi trasversali:
- Project management: pianificazione, avanzamento, gestione del rischio.
- Configuration management (CM): preserva coerenza e tracciabilità degli artefatti lungo l’intera pipeline.

Perché serve il Configuration Management
Numerosi attori devono collaborare artefatti - requisiti, specifiche di design, codice, manuali utente, set di dati - per periodi che coprono sviluppo, esercizio e manutenzione. Senza CM sorgono domande critiche:
- Dove risiedono i documenti aggiornati?