This is an old revision of the document!
Configuration Concepts and Challenges
In software engineering, Configuration Management (CM) refers to the systematic process of identifying, organising, controlling, and tracking all changes made to a software system throughout its lifecycle. It ensures that:
The correct versions of software components are used.
Changes are controlled, reviewed, and documented.
The entire system remains consistent and reproducible across teams and environments.
According to ISO/IEC/IEEE 828:2012, CM is defined as:
“A discipline applying technical and administrative direction and surveillance to identify and document the functional and physical characteristics of a configuration item, control changes to those characteristics, and record and report change processing and implementation status.”
In other words, Configuration Management keeps the software stable while it evolves. Configuration management exists to:
Ensure traceability – every change can be traced to its origin (e.g., requirement, issue report, or design change).
Prevent chaos – without CM, multiple developers could overwrite each other’s work or deploy incompatible versions.
Enable collaboration – teams distributed globally can work on the same product using consistent artefacts.
Maintain compliance – in safety-critical domains (automotive, aerospace), regulatory standards require version control and change tracking.
Support automation – CI/CD pipelines rely on version-controlled repositories and configuration metadata.