Software development is a dynamic process in which engineers constantly modify and refine their systems. Fundamental sources of change are usually associated with error correction, adaptations required to accommodate changes to external environments, and changes caused by changing requirements, design, or extensions of system functionality. Confusion among software engineers will develop when changes are not analyzed before they are made, recorded before they are implemented, reported to those with a need to know or controlled in a manner that will improve quality and reduce error. The discipline of identifying, organizing, and controlling modifications to a software system is called software configuration management (SCM). The ultimate goal of SCM is to maximize productivity by minimizing mistakes and to maintain software integrity, traceability, and accountability. This article summarizes the state of the art in both research and practice, as well as the well‐established and advanced technologies in the area of SCM.