What is a CM Tool?


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.


About the author

Mario  Moreira's picture Mario Moreira

Mario Moreira is a Columnist for the CM Journal, a writer for the Agile Journal, an Author, an Agile and CM expert for CA, and has worked in the CM field since 1986 and in the Agile field since 1998. He has experience with numerous CM technologies and processes and has implemented CM on over 150 applications/products, which include establishing global SCM infrastructures. He is a certified ScrumMaster in the Agile arena having implemented Scrum and XP practices. He holds an MA in Mass Communication with an emphasis on communication technologies. Mario also brings years of Project Management, Software Quality Assurance, Requirement Management, facilitation, and team building skills and experience. Mario is the author of a new book entitled “Adapting Configuration Management for Agile Teams” (via Wiley Publishing). It provides an Agile Primer and a CM Primer, and how to adapt CM practices for Agile Teams. Mario is also the author of the CM book entitled, “Software Configuration Management Implementation Roadmap.” It includes step-by-step guidance for implementing SCM at the organization, application, and project level with numerous examples. Also consider visiting Mario’s blog on CM for Agile and Agile adoption at http://cmforagile.blogspot.com/.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!