What is Software Configuration Management (SCM)?

"Configuration management is the art of identifying, organizing, and controlling modifications to the software being built by a programming team. The goal is to maximize productivity by minimizing mistakes. "

--Wayne Babich
Software Configuration Management: Coordination for Team Productivity

Addison-Wesley, 1986.

Here is another definition:

"Configuration management is the practice of handling changes systematically so that a system can maintain its integrity over time. Another name for it is 'change control'. It includes techniques for evaluating proposed changes, tracking changes, and keeping copies of the system as it existed at various points in time."

-- Steve McConnell
Code Complete

Microsoft Press, 1993

SCM is about tracking and control of software development and its activities, such as multiple developers working on the same code at the same time, targeting multiple platforms, supporting multiple versions, and controlling the state of development life cycle (for example, beta versus final release).

Since the Complexity and Heterogeneity of current development environment, the demand for SCM tools goes higher. Originally application development teams use SCM tools to do software revision control, version control. Now, SCM solutions provide more components such as defect tracking, feature request tracking. Hansky SCM solutions not only provide basic SCM functionality, but also encompass the process (or best practices) used to develop, deploy, and maintain software.

See our SDM suite for detail.