When I think of software configuration, I think of a file that is read by runtime - said file would contain things like the port a server might use, whether to use encryption, and paths of various resources.

When I first came across "Software Configuration Management", I thought it meant the management of configuration files only, but I quickly realized SCM tools concerns not just the configuration files, but the software code, software executable/binary, and resources as well.

So why do we use the term "Software Configuration Management"? Wouldn't "Software Management" be more encompassing? Or is my understanding of what is considered to be "configuration" lacking?


The term configuration management belongs to the general engineering vocabulary.

Its purpose is to keep record of the characteristics of all the parts/components of a complex system (e.g a car, a missile, an electronic device), and of course the change of these characteristics when a component is replaced with a similar component. A configuration describes exactly a specific product.

In other words, configuration management is version management for industrial products. It allows at any moment to assemble a previous version of a product.

In software there's no industry catalogue of parts that could allow to uniquely identify a piece of software and its successive versions and find it back in some warehouse to assemble (configure) an older version of the product. The software part/ component is best described by its code in its entirety. So configuration management for software means to manage the versions of the source code. This is why the term software configuration management is used for source code version management.

Note however that SCM is larger than only source code versioning. It may also include management of external dependencies (e.g. third party libraries or frameworks with versions managed somewhere else), external resources (e.g. third party binaries or dlls or API definitions to interoperate with external systems), as well as digital assets (e.g. pictures or videos to be packages with the end product).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.