Does the title of this article sound silly? I mean, doesn’t everyone know what a configuration management (CM) tool is? Isn’t a CM tool something that provides version control functionality? Well, the short answer is yes but only in its most simplistic form. CM as a discipline goes well beyond simple version control. It is important to look beyond what vendors define as classic CM tools and consider CM in terms of the full practice and processes they offer. CM at its very essence covers identification, control, audit, and report. Many would expand control to include version control, change control, build management, and release engineering.
It is important to take a step back from the conventional term of what a CM tool offers and what capabilities you may think a CM tool provides. As development becomes more complex, there are demands to add capabilities to handle the complexity. This is very true with CM. While it may have started as a simple version control tool, the better CM tools are now far more complex and rich in their capabilities. Before you begin the evaluation, do some pre-work so that you have more clarity on the capabilities that you desire.
Dividing up the CM Tool space
This section will attempt to identify the various CM capabilities within a rough framework. Even if you do not agree with this division or you think that some of these areas are misplaced, it is important to ascribe a clear understanding of these capabilities. It is not meant to be comprehensive but to provide a framework to understand that there are different areas in CM and to ensure that the evaluation team understands what they are really looking for.
Version control: These are tools that offer the capability to store elements and then manage whole or incremental changes of an element (aka versioning), most commonly source code, but often executables and documentation. The more advanced tools in this space offer workspace management and branching & merging capabilities. In addition, there is an expectation that a reporting ability exists that can list the elements within a version control repository specific to a release. This helps in the ability to audit the repository. More details include:
· Tools in this category typically fall into the development phase but can live throughout the full project lifecycle if documents and other artifacts are being managed.
· Some people consider document management tools as a type of version control tool since they offer version control functionality and a means for identifying information (a.k.a., attributes) on items.