Software configuration management (SCM) is used to manage changes to software projects. It provides structure to identify and control documentation, code, interfaces and databases throughout the development lifecycle. SCM ensures safety, stability, control, auditability, reproducibility and traceability of projects. It uses version control to track revisions of files and enables features like branching to allow parallel development and isolation of changes.