SCM had its origins around the time of 1950s when configuration management, which was being implemented in hardware development, started being applied to software, being first applied manually into the cards and tapes that were used at the time. It was a very crucial implementation due to having to keep a budget and a schedule. Eventually the tools used evolved into more practical systems and were used in a broader scope with company´s growing use of computers.
Having different versions of software can bring a lot of confusion and errors. That’s why “software configuration management” intends to establish policies and standards for evaluating, coordinating, approving or disapproving, and implementing changes. This is mainly done through design, implementation, testing, baselining, building, release, and maintenance.
Software configuration is quite important right now in order to keep track of all the creation, changes, and keeping together a correct visualization of what’s being done or how are the files used in a project. Metadata such as dates that a file was modified, date it was create, author, people that have modified it, is important in order to have a clear and transparent representation of the work that is being done in certain projects. The CM also helps to have less confusion that can be caused by having different versions of the same file. It also helps in keeping a correct order of things when working in a project.
Several practices (which you can find here https://www.pearsonhighered.com/samplechapter/0321200195.pdf) are commonly considered best for CM. Let’s try explaining them…
1: identifying and storing artifacts in a secure repository, so that it’s easy to keep track of and identify artifact versions. This repository should be able to accept faults in the code, as in this stage interaction between artifacts is not expected to be