Configuration management (CM) is a set of management disciplines within the software engineering process to develop a baseline. It includes the responsibility to initiate, evaluate, and control changes with products during development and after release. It ensures that all software and hardware assets which a company owns are known and tracked at all times—any future changes to these assets are known and tracked. You can think of configuration management like an always up-to-date inventory for your technology assets, a single source of truth.
There are four inter-related activities to configuration management:
- Revision Control - Revision control is concerned with controlling access to project artifact and maintaining a history of changes to each artifact.
- Configuration Identification - Before you can control any artifact you must identify what it is, what information it is going to contain and how it will be controlled.
- Change Management - When an artifact has to change, Change Management controls when, or even if, the changes may be performed.
- Release Management - Release Management focuses on the delivery of software outside the development department.
Benefits of Configuration Management
- Disaster Recovery
- Uptime and Site Reliability
- Easier Scaling
- Aiello, Bob. Sachs, Leslie. "Configuration Management Best Practices": Practical Methods that work in the real world. Addison-Wesley. ISBN: 978-0321685865 http://www.amazon.com/dp/0321685865
- William C. Brown. (2002). Version Control is not Configuration Management. Accessed from http://www.spectrumscm.com/WhitePapers/vcnotcm.pdf
- Software Engineers Handbook/Supporting Processes/Configuration Management. (2017, August 16). Wikibooks, The Free Textbook Project. Retrieved November 24, 2019 from https://en.wikibooks.org/w/index.php?title=SoftwareEngineersHandbook/SupportingProcesses/ConfigurationManagement