La gestione della configurazione in un progetto è costituita da un insieme di processi finalizzati a:
- garantire la consistenza tra requisiti e caratteristiche funzionali dei deliverables di progetto e la loro performance;
- gestire in modo integrato le informazioni di sistema e le eventuali modifiche da introdurre rispetto alle specifiche concordate con la committenza.
La configurazione è intesa come l’insieme delle caratteristiche funzionali e fisiche di un prodotto stabilite nei documenti tecnici e realizzate nel prodotto stesso.
La gestione della configurazione si applica pertanto ai prodotti implementati od utilizzati da un progetto tra cui anche i documenti di progetto in modo da assicurare che le varie componenti siano tra loro integrate e consistenti.
Il Configuration Management è un approccio metodologico sviluppato inizialmente dall’USAF per il Dipartimento della Difesa degli Stati Uniti negli anni ‘50.
Successivamente è stato fatto proprio dalle ditte fornitrici del Dipartimento e successivamente si è diffuso in tutto il mondo ed in tutti i settori di applicazione.
Oggi esistono diversi standard che regolano l’applicazione del Configuration Management in contesti diversi.
I processi di Project Configuration Management sono:
- Configuration Planning
- Configuration Control
- Configuration Status Accounting
- Configuration Verification
Configuration Planning
Questo processo è finalizzato a predisporre il piano di configuration management contenente:
- L’individuazione degli elementi (Configuration Items) che si intende gestire in termini di configurazione. Non tutti i prodotti rilasciati od utilizzati nel progetto devono essere gestiti in questo modo. Ad esempio se in un progetto è compreso lo sviluppo di moduli software è opportuno gestirli dentro un sistema di configuration management mentre gli altri deliverables possono anche non essere inseriti tra i configuration items.
- La definizione delle modalità e strategie utilizzate per il configuration management.
- L’articolazione dei processi e delle procedure impiegati (ad esempio per il controllo di versione).
- La definizione dei ruoli coinvolti nelle attività di configuration management.
- Le modalità e le metriche per gestire gli avanzamenti rispetto al piano di configuration management;
- I controlli e la loro frequenza.
I Configuration Items (CIs) possono essere prodotti dal progetto oppure utilizzati nel progetto e provenienti da altri cicli di produzione.
Esempi di configuration item possono essere:
- Management plan
- Requisiti tecnici e funzionali
- Specifiche di disegno
- Codice sorgente e codice eseguibile (software)
- Specifiche e dati di test
- Log information
- Documentazione utente
- Librerie e software di supporto
- Bug reports, etc.
Per ciascun tipo di configuration item è necessario definire nel piano di configuration management le modalità di gestione della configurazione. Inoltre è necessario definire le modalità per gestire l’integrazione tra i configuration items.
Un insieme di versioni di items che sono state verificate e approvate costituiscono una versione di configurazione (configuration baseline) che può costituire la base per successivi sviluppi. La baseline può essere modificata solo attraverso specifici processi di change management.
Configuration Control
Il controllo della configurazione riguarda la valutazione delle richieste di modifica, la gestione del workflow per l’approvazione delle modifiche, l’implementazione delle modifiche.
- Definizione della baseline
- Censimento delle richieste di modifica
- Verifica e concolidamento delle richieste
- Analisi degli impatti
- Revisione delle richieste e pianificazione dei cambiamenti
- Applicazione dei cambiamenti approvati
- Valutazione dei risultati ottenuti
- Chiusura del processo di modifica e produzione della nuova baseline aggiornata
Il Project Manager ha la responsabilità della gestione dell’intero processo di change management. In particolare ha il compito di condurre l’analisi e valutazione delle modifiche richieste in collaborazione con il Change Control Board.
Configuration Status Accounting
Questo processo si occupa del tracciamento e del reporting delle informazioni sullo stato dei vari configuration items durante il ciclo di vita di un progetto. Inoltre:
- Fornisce indicazioni per verificare che le modifiche approvate siano effettivamente compatibili con gli obiettivi e con l’ambito del progetto.
- Supporta il processo decisionale in merito ai cambiamenti da introdurre
- Richiede la disponibilità di un repository in cui raccogliere tutte le informazioni sui vari items, le richieste di modifica ed i records di avanzamento
- Richiede la definizione di metriche per sviluppare le analisi delle richieste di modifica
- Produce un reporting basato sulle metriche definite
Questo processo utilizza metriche specifiche per definire cosa e quando è cambiato e l’impatto prodotto
A sua volta il sistema di reporting traccia lo stato delle varie richieste di modifica rispetto ai possibili stati di avanzamento:
- Open
- Assigned
- Investigated
- Resolved
- Deferred
- Approved
- No action required
- Expired
Configuration Verification
Il processo si occupa di verificare che gli items identificati e le eventuali modifiche siano registrati, valutati, approvati, tracciati e correttamente implementati. In tal senso i controlli saranno:
- di tipo fisico, per verificare che l’attuale configurazione rispecchi quella stabilita
- di tipo funzionale, per verificare la consistenza delle funzionalità implementate
- di processo, per verificare che sia applicato il processo di gestione della configurazione e change management
Pertanto, le attività da svolgere sono:
- Pianificazione delle verifiche e dei controlli di configurazione. In fase di pianificazione deve essere definito un piano degli audits sulla base di specifiche interne o definito “ad-hoc”
- Svolgimento dei controlli. E’ importante che i project managers riservino tempo per effettuare i controlli di configurazione e coinvolgano le risorse nel supportarli durante lo svolgimento di questa attività
- Reporting. Riguardante sia i risultati dei vari controlli effettuati, sia le note di rilascio dei vari delivereables, le eventuali non conformità rilevate, le versioni di prodotto e le correzioni adottate
- Comunicazione agli stakeholders dei risultati dei controlli