4.1. Configuration Management Basics

Basically, configuration management is a very important process in software engineering. You may be a star programmer. Or you may be very creative at what you do. But if you are not able to do some basic configuration management, your productivity would be reduced greatly.

There are many aspects of configuration management. A dedicated book can be written on it. But in this book we will just try to cover the basics and some practical aspects of it.

Configuration management is not only applicable to source code, but also the non source code items like images, documents, requirements, etc.

Using Configuration Management we, achieve the following.

4.1.1. History / Chronological evolution

Using configuration management we can get history of our work.

For example, what was the status of our work:

  • Six months ago

  • Five days ago

  • Even, Four hours ago

4.1.2. Version / Revision management

Similar to what we listed in the previous sub-section regarding history of the evolution of our product, a good configuration management system can help you easily give some number to your work, and thus we can know and communicate versions/revision of that product. A configuration management system can give you unique revision identifiers automatically. This becomes very much useful when you are coordinating with various stake-holders simultaneously.

4.1.3. Collaborate

You can share your work with others, get their feedback. In some cases you can get their contributions as well.

4.1.4. Compare / Find Differences

The way we can find historical evolution, we can also find the differences between current and some older revision, as well as between two different revisions of the code base.