Introduction à la gestion de la configuration et des changements
Pour paraphraser le Software Engineering Institute's Capability Maturity Model
(SEI CMM) 'La gestion de configuration et des demandes de changement
contrôle le changement et maintient l'intégrité des artefacts d'un projet.

La gestion de la configuration (CM) et la gestion des demandes de changement (CRM) impliquent :
- l'identification des éléments de la configuration,
- la restriction des changements à ces éléments,
- l'audit des changements effectués sur ces éléments,
et
- la définition et la gestion des configurations de ces éléments.
Les méthodes, processus, et outils utilisés pour la gestion de la configuration et des changements au sein d'une organisation peuvent être considérés comme le système de gestion de la configuration (CM) de l'organisation.
Le système de gestion de la configuration et des demandes de changement (Système CM) d'une organisation contient les informations clés sur le développement de son produit,
la promotion,
les processus de déploiement et de maintenance, et tient à jour la base des artefacts potentiellement réutilisables, provenant de l'exécution de ces processus.
Le système CM est une partie essentielle et intégrale des processus globaux de développement.
Un système CM est essentiel pour contrôler les nombreux artefacts produits par les nombreuses personnes travaillant sur un projet commun. Ce contrôle aide à éviter une confusion coûteuse et assure que les artefacts produits ne sont pas en conflit à cause de certains des problèmes suivants :
Mise à jour simultanée
Lorsque deux ou plusieurs membres de l'équipe travaillent séparément sur le même artefact, le dernier à effectuer des changements détruit le travail de celui qui le précède. Le problème de base est que, si un système ne supporte pas la mise à jour simultanée, ceci peut conduire à des changements en série et ralentit le processus de développement. Toutefois, avec la mise à jour simultanée, le défi consiste à détecter les mises à jour effectuées simultanément et à résoudre les problèmes d'intégration lorsque ces changements sont incorporés.
Notification limitée
Lorsqu'un problème a été résolu dans les artefacts partagés par plusieurs développeurs, et que l'un d'entre eux n'a pas été averti du changement.
Versions multiples
La plupart des grands programmes sont développés en versions évolutives. Une version peut être en cours d'utilisation par le client alors qu'une autre version se trouve en cours de test et que la troisième se trouve en cours de développement. Si des problèmes sont détectés dans l'une de ces versions, les correctifs doivent être propagés à toutes. Une confusion peut surgir, conduisant à des correctifs et des reprises coûteux, à moins que les changements ne soient soigneusement contrôlés et supervisés.
Un système CM est utile pour la gestion de plusieurs variantes de systèmes logiciels évolutifs, le suivi des versions utilisées dans les constructions logicielles, la réalisation de constructions de programmes individuels ou de versions entières selon des spécifications de version définies par l'utilisateur et la mise en application de règles de développement spécifiques à un site.
Certains des avantages offerts par un système CM sont :
- le support de méthodes de développement,
- le maintien de l'intégrité du produit,
- l'assurance de l'intégralité et de la correction du produit configuré,
- la fourniture d'un environnement stable dans lequel le produit est développé,
- la restriction des changements aux artefacts basés sur les règles du projet et
- la fourniture d'une piste d'audit indiquant pourquoi et quand un artefact a été changé, et par qui.
Par ailleurs, un système CM stocke des données 'comptables' détaillées sur le processus de développement lui-même : qui a créé une version particulière (et quand et pourquoi), quelles versions des sources ont été utilisées dans une construction particulière et autres informations pertinentes.
Le système CM d'une organisation est utilisé à travers tout le cycle de vie d'un produit, de la création au déploiement. En tant que référentiel des ressources d'une organisation, le système CM contient les versions actuelles et historiques des fichiers sources des exigences, et des artefacts de conception et d'implémentation qui définissent une version particulière d'un système ou d'un composant du système.
La structure des répertoires produit, représentée dans le système CM, comporte tous les artefacts nécessaires à l'implémentation du produit. A ce titre, la discipline Gestion de la configuration et des changements (CCM) se rapporte à toutes les autres disciplines du processus et sert de référentiel aux ensembles d'artefacts qui en résultent.