Software Configuration Management (Joseph H. Rawlings III)

[Software] Configuration Management is a combination of tools and techniques for controlling the software development process and is implemented using software tools of differing natures. The tools used are the same for all personnel, regardless of position or responsibility.... The task of configuration management is to address the classic problems of shared data, multiple maintenance, and simultaneous update, overcome communication obstacles, and provide useful information to its users.

One of the basic paradigms of configuration management is that it provide a dynamic perspective of the project. To accomplish this, the entire project must be considered in a global sense. From requirements to and specifications to components, documentation and test, to the final product, each element of the product is as important as any other element ... [and] nearly every element will change in one way or another during the project lifecycle.

Different groups of personnel have different needs when the global perspective of the project is considered. A developer may need to know about the various revisions of a source code module. The project manager may need to know about varius versions or releases of the project. Higher level management or marketing may only want to know about released products. The developer requires a more intimate view, that is, a fine granularity, the project manager does not.

By using various options of the tool set, individuals acquire a perspective of the project suited to their particular needs. Using a single toolset, every need of each team member can be met as long as the tools used are adaptable. A good configuration management tool set should not require that the working environment be altered to conform to the requirements specified by the tools. The tool set should be adaptable to the environment. The tools should provide a vast functionality, enabling the user to match his or her needs, whether the user is a developer, documentation editor, project manager, or test engineer.

Joseph H. Rawlings III; SCM for Network Development Environments; McGraw-Hill, 1994.