Posted by: ahmedashfaque | November 12, 2014

Configuration & version management system – part 1

For software projects, a configuration & version management system is a must. Let us see what is a configuration & version management system.

First let us understand what is a version management system. When software product is built then there are many versions of the product as well as associated work in progress materials (requirement specifications, design specifications, source code, documents etc.) are created. To incorporate any change request, the work in progress item is maintained as it is at that time and the change is incorporated into another copy of that work product. So now we have 2 copies (versions) of the same work product (one without change request & another with change incorporated). By the end of the project, there will be a large number of versions of various work products.

How efficiently can you manage all these versions? One good method is that you keep separate branches for different versions of the software product & its associated work products. This way, all versions of the software product & its associated work products can be kept separately without any mixing.

Configuration management system is used to make builds of the source code and maintain those builds. Build of a software product is the successfully compiled collection of all source code. When development is in progress, software developers write source code. This piece of source code when completed has to be added to existing build of the software product. There are 2 main problems which can happen. If there are any problem in compiling any piece of source code then the current build will fail and error message is thrown. The failed build does not run and if you add further source code to a failed build then no matter if your source is clean, the resulting build will always fail.

A good configuration management system will never allow addition of source code to a failed build. If a build fails then the configuration system should allow the build to revert back to last successfully built version. the developer should change his source code and after checking again submit the source code to the build. if the source code is good then the build will not throw any error messages and the source code will compile successfully.



  1. […] part 1 of this series we had seen basic idea about configuration & version management systems. Today we will see some […]

  2. Excellent article! We will be linking to this great post on our website.
    Keep up the good writing.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s


%d bloggers like this: