Software Configuration Management (David W. Eaton)

What is Configuration Management (CM)? There are a number of different interpretations. For purposes of this newsgroup, we are talking about tracking and control of software development and its activities. That is, the management of software development projects with respect to issues such as multiple developers working on the same code at the same time, targetting multiple platforms, supporting multiple versions, and controlling the status of code (for example beta test versus real release). Even within that scope there are different schools of thought:


 * Traditional Configuration Management - checkin/checkout control of sources (and sometimes binaries) and the ability to perform builds (or compiles) of the entities. Other functions may be included as well.
 * Process Management - control of the software development activities. For example, it might check to ensure that a change request existed and had been approved for fixing and that the associated design, documentation, and review activities have been completed before allowing the code to be "checked in" again.

While process management and control are necessary for a repeatable, optimized development process, a solid configuration management foundation for that process is essential.

David W. Eaton; "Configuration Management - Frequently Asked Questions" (CM-FAQ); FAQ posting for the newsgroup comp.software.config-mgmt