A while ago I wrote a post ‘What is Configuration Management?’ in which I outlined the four principles of configuration management. This prompted several readers to ask, ‘what about software configuration management?’.
Software configuration management differs from the core configuration management discipline in detail only. It is common for organisations to include disciplines like build management (the discipline of transforming source into product) under the job description configuration management and it is common to see people discuss build management as if it were part of software configuration management but this is an error. Build management is closely associated with configuration management, but is most certainly not a part of configuration management.
Build management uses configuration management. Configuration management supplies the input to build management (a source baseline). Build management then creates product from these sources and delivers these products to configuration management. Configuration management places those products into a product baseline, often alongside the source baseline. The important point is that build management can operate without configuration management (not a good idea, but it is perfectly possible). Similarly, configuration management in no way depends upon build management. Attempting to integrate them leads to confusion and gains us nothing but creating an artificial dependency.
A discipline more closely, and correctly, included under the title software configuration management is version control. Version control is a crossover discipline, part asset management and part configuration management.
Asset management is primarily concerned with recording and securing things of value. Configuration management is concerned with more than simple recording and custody, it also needs too maintain information about the relationships between the items it holds. Importantly version control maintains the history of each asset, its ancestry. Of course all configuration management is concerned with this version control issue, but software configuration management requires that the version control system not only records these relastionships but also holds all of the actual files. It is this particular that software configuration management differs from configuration management.
In addition to the normal configuration management skills, a software configuration manager should also be adept at conceiving and managing version control of systems and the files that constitute them