Software Configuration Management

SCM stands for Software Configuration Management. But how should we parse these words? As it happens, all the following three alternatives make sense:

In fact Software, being so ubiquitous here, becomes redundant. This is one way of understanding the shift to speaking plainly of ConfigurationManagement, without any change in the meaning. -- MarcGirod

Kin configuration items are thought as building families, an instance of which at most is met in any configuration. One prototypical example of such a family is a source "element", the instances of which are called versions. This basic level of SCM is VersionControl.

In the same vein, one can group derived objects, identified by their name and path. The members of the family are then discriminated according to the exact build rule and the tree of dependencies, down to leaves element versions. This requires that the build has been audited. The identification is indirect, but suitable workspace management tools may make this transparent (example: ClearCase).

Of course, nothing a priori maps these "elements" or "objects" to files: it depends on the SCM tool to select the support for its generic management.


SoftwareConfigurationManagementPatterns is a new book whose title makes its subject clear. It is a good book, and worth getting if you are interested in SCM.

The CmBodyOfKnowledge? CmBoK - The Configuration Management Body of Knowledge is being developed at CmWiki a Twiki web hosted by CmCrossroads or at

CmCrossroads is the webs largest developer community and resource center dedicated to Configuration Management. CM Crossroads hosts interative discussion forums, bookstore, newsletters and the Configuration Management Body of Knowledge CMBoK -

EditText of this page (last edited August 28, 2009) or FindPage with title or text search