2. Overview of Software Configuration Management

This section gives an overview of Software Configuration Management(SCM) in general. It focuses on defining what is SCM, the benefits of SCM and the adoption of SCM for OpenSource projects.

2.1. What is Software Configuration Management

Software Configuration Management is the ability to control and manage change in a software project.

Change is inherent and ongoing in any software project. The ability to track control such changes in a proper manner form the basis of a good software project. Software Configuration Management tries to bridge this gap by defining a process for change control.

Change Management defines processes to prevent unauthorized changes, procedures to follow when making changes, required information, possibly workflow management as well. Change management is orders of magnitude more complex than version control of software.

2.2. Why is Software Configuration Management required

SCM is the process that defines how to control and manage change.

The need for an SCM process is acutely felt when there are many developers and many versions of the software. Suffice to say that in a complex scenario where bug fixing should happen on multiple production systems and enhancements must be continued on the main code base, SCM acts as the backbone which can make this happen.