Introduction to
Configuration & Change Management
To paraphrase the Software Engineering Institute's Capability Maturity Model (SEI CMM)
'Configuration and Change Request Management control change to, and maintain the integrity
of, a projects artifacts'. Configuration and Change Request Management (CM and CRM)
involves identifying configuration items, restricting changes to those items, auditing
changes made to those items, and defining and managing configurations of those items
throughout the software development process. The methods, processes, and tools used to
provide change and configuration management for an organization can be considered as the
organizations CM System.
An organization's Configuration and Change Request Management System (CM System) holds
key information about its product development, deployment and maintenance processes,
and retains the asset base of potentially re-usable artifacts resulting from the execution
of these processes. The CM System is an essential part of the overall processes.
A CM System is essential for controlling the numerous artifacts produced by the many
people who work on a common project. Control helps avoid costly confusion, and ensures
that resultant artifacts are not in conflict due to some of the following kinds of
problems:
When two or more workers work separately on the same artifact, the last one to make
changes destroys the work of the former. The basic problem is that if a system does not
support simultaneous update this leads to serial changes and slows down the development
process. However, with simultaneous update, the challenge is to detect that updates have
occurred simultaneously and to resolve any integration issues when these changes are
incorporated
When a problem is fixed in artifacts shared by several developers, and some of them are
not notified of the change.
Most large programs are developed in evolutionary releases. One release could be in
customer use, while another is in test, and the third is still in development. If problems
are found in any one of the versions, fixes need to be propagated between them. Confusion
can arise leading to costly fixes and re-work unless changes are carefully controlled and
monitored.
A CM System is useful for managing multiple variants of evolving software systems,
tracking which versions are used in given software builds, performing builds of individual
programs or entire releases according to user-defined version specifications, and
enforcing site-specific development policies.
Some of the direct benefits provided by a CM System are that it:
- supports development methods,
- maintains product integrity,
- ensures completeness and correctness of the configured product,
- provides a stable environment within which to develop the product,
- restricts changes to artifacts based on project policies, and
- provides an audit trail on why, when and by whom any artifact was changed.
In addition, a CM System stores detailed accounting data on the development
process itself: who created a particular version (and when, and why), what versions of
sources went into a particular build, and other relevant information.
An organizations CM System is used throughout the products lifecycle, from
inception to deployment. As an organizations asset repository, the CM system
contains current and historical versions of source files of requirements, design and
implementation artifacts that define a particular version of a system or a system
component
The Implementation Model, represented in the CM System, contains all the artifacts
required to implement the product. As such, the Configuration & Change Management
(CCM) workflow is related to all the other process workflows:
- The Business Modeling workflow,
- The Requirements workflow,
- The Analysis & Design workflow,
- The Implementation workflow,
- The Test workflow,
- The Deployment workflow, and
- The Project Management workflow.
as it serves as a repository for their resultant artifacts.
| |

|