Principles of
Software Configuration Management
Software Configuration Management (SCM), or
Software Change Management, as it is sometimes called, consists of four
major activities:
Configuration Identification
This is the process of identifying all of
the components of a project and ensuring that these components can
be found quickly throughout the project life cycle. As was previously
mentioned, a typical extranet project is like a software development
project and is comprised of much more than source code or HTML.
Configuration identification breaks a project into smaller, more manageable
subprojects, such as design documents, special graphic files, and so
forth.
A good automated SCM package will support the mapping of a project
tree, indicating the logical configuration hierarchy, as well as
the directory structure, or physical configuration hierarchy. The version
control and SCM product must be able to cross all departmental boundaries
to include a wide variety of project participants.
Configuration Change Control
This important activity coordinates access
to project components among team members so that data don't "fall
through the cracks," become lost, or fall prey to unauthorized
changes. To provide protection from lost changes, most SCM systems offer
a check-in/check-out process that allows write access to a single
user for a project file. Current and previous versions of a file are
identified and tracked, with the ability for a user to request a copy
of a previous version of a file at any time.
Configuration Auditing
Configuration auditing is a process that confirms
that a software or extranet project is on track and that the developers
are building what is actually required. By developing a series of
checklists that specify what components are in a given baseline,
you can audit the degree to which your project is complete.
Configuration Status Accounting
The goal of configuration status accounting
is to record why, when, and by whom a particular change is made
to the source code of a project. In the past, developers would manually
keep notebooks and insert comments into the code, but good SCM systems
keep automated histories of all changes and generate reports
that describe the changes over a period of time.


