What is a CM Tool?

Summary:

Does the title of this article sound silly?  I mean, doesn’t everyone know what a Configuration Management (CM) tool is?  Isn’t a Configuration Management 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. 

Now the answer to “what is a CM tool” becomes complex.  And what makes this even more challenging is that there are tools that include CM functionality but are referred too otherwise.  Examples include application lifecycle management (ALM) tools, requirements management tools, defect tracking tools, and document management tools (amongst others).

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.  So 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 (a.k.a., 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.
  • Change Control – these are tools that help you document, manage, and track changes.  This may often be called ‘Change Management’ although this term is often applied to a broader meaning of the word ‘change’ (e.g., organizational change management).  These tools offer the capability to identify a change and then establish a workflow by which the change can be tracked along a change lifecycle.  In addition, there is an expectation that there is the ability to identify and report on the status of configuration items known as a baseline.  This helps in identifying baselines for requirements, design, code, build, test, and release and the capability to audit each.  More details include:
    • Tools in this category typically live throughout the project lifecycle if changes that impact the project baselines of are being managed.
    • Some times Requirements Management, Change Control, and Defect Tracking tools are included in this since each provide similar capabilities.
       
  • Build Management – these tools offer the capability to identify a code baseline and then generate executables.  More advanced tools in this space offer bill-of-materials reports and dependency and traceability checking that help with integrity and audit.  Some people see tools in this space as separate from CM tools but are very closely aligned.  More details include:
    • Tools in this category typically fall into the development phase of the project lifecycle.
    • This category may be

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/ . You may reach Mario by email at Mario.Moreira@cmcrossroads.com.