CM Roles, Responsibilities, Skills, and Job Descriptions

Summary:

What should title should we give a CM professional?There are various titles used such as CM Tool Administrators, Build Engineers, Release Engineers, Product Installers, and more.It may appear that these roles are somewhat similar.Upon closer inspection, there really are differences in the responsibilities and corresponding skills if you look at the context of the role.

What this article will attempt to do is identify the primary responsibilities of each CM role in the development to production part of the project lifecycle.Then it will look at the skills needed to handle those responsibilities and create a basic job description.If you are a hiring manager, this article can help you target the precise CM skills needed for the CM role(s) and help you create a job description.If you are a CM professional, this article can help you distinguish between the various CM roles and further identify the CM skills needed for certain CM roles.If you analyze the way companies across the world apply CM titles (a.k.a., CM roles), it becomes evident that there are no real standards.It fact, many companies use different CM titles to imply the same responsibility or the same title to imply very different responsibilities from one company to another (and a plethora of titles and responsibility differences in between).

The CM Responsibilities in the Dev-to-Prod Lifecycle

In order to distinguish between the various roles in the CM space, it is important to look at the responsibilities of CM related work.Please note that this article focuses on the CM responsibilities within the development-to-production slice of the project lifecycle.Other CM responsibilities are intentionally not included.Let us look at some CM responsibilities with a brief description of the work typically performed.

Establish the CM Infrastructure

This includes the responsibility of setting up a CM technology and process.This may comprise an analysis phase consisting of understanding the current environment; a CM technology selection phase consisting evaluating the best CM technology for your needs; a planning phase consisting of what needs to be done to have a working CM system; a CM design phase consisting of defining the processes and standards of using the technology; a CM implementation phase consisting of installing the CM technology, importing the code, and setting up user workspaces; a CM test phase to ensure all processes are working as expected (checkout/checkin, build, migrate, branch, etc.); and a CM release phase consisting of just-in-time training, cutting over to the CM infrastructure, and providing rigorous cut-over CM support.The book, “Software Configuration Management Implementation Roadmap” by Mario E. Moreira provides detailed steps for each phase and templates to more efficiently complete these steps.

Manage/Improve the CM Tool 

This includes the responsibility of maintaining and upgrading the CM tool on the server(s) and clients, managing the licenses, and establishing some level of automation such as writing triggers.In addition, it may include integrating the CM technology with other tools such as a development technology IDEs and/or a defect tracking technology.

Manage/Troubleshoot the CM environment

This includes the continuous responsibility of setting up new product repositories (and importing code into it), helping the users set up workspaces, perform regular troubleshooting for users, training the users in using the CM technology, environment and processes.

Perform builds

This includes the responsibility of continuous building of the product release, ensuring the compiler versions are up-to-date, working with a build technology (either inside or outside of the CM technology), establishing a build process, and the ability to improve the build process.

Package/Migrate the release

This includes the responsibility of capturing all of the pieces that are needed to establish a running system (a.k.a., release package that may be comprised of deliverables from the builds, items needed from databases, configuration instructions) and the tasks of preparing the preliminary Release Notes, and migrating the release to test and staging areas.

Install the release

This includes the responsibility of taking the release package and installing it into the production environment (onto a production server or onto

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.