Software Configuration Management (SCM)

The Software Engineering discipline of tracking and controlling software development assets and the activities supporting these efforts. SCM encompasses the management of software development projects with respect to issues such as parallel development, heterogeneous environments, staggered and overlapping release cycles, and Change Request Management (CRM). SCM includes Traditional Configuration Management, also known as version control, as well as Process Management, the enforcement of process and policies governing the software development effort. To be successful, an SCM solution must be flexible enough to allow software developers to easily and effectively develop software, while remaining rigid enough to safeguard assets and prevent unauthorized modifications. A solid software configuration management foundation is essential to a repeatable, optimized software development process.