A CM System is essential for controlling the numerous Work Products produced by the many people who work on a common
project. Control helps avoid costly confusion, and ensures that resultant Work Products are not in conflict due to some
of the following kinds of problems:
Simultaneous Update
When two or more team members work separately on the same work work product, 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
Limited Notification
When a problem is fixed in work products shared by several developers, and some of them are not notified of the
change.
Multiple Versions
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 work products based on project policies
-
provides an audit trail on why, when and by whom any work products 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 organization's CM System is used throughout the product's lifecycle, from inception to deployment. As an
organization's 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 product directory structure represented in the CM System, contains all the artifacts required to implement the
product. As such, the Configuration & Change Management (CCM) discipline is related to all the other process
disciplines as it serves as a repository for their resultant sets of work products.These include:
|