A source code management system (SCM) provides coordination and services for software development teams. It provides file management and version control to prevent developers from overwriting each other's work. SCMs also allow developers to work concurrently through branches, merge changes, track requested changes and bugs, and manage releases.