Sponsors

Microsoft


TechWell

We have 977 guests and 4 members online

Home Implementation Excellence CM Roles, Responsibilities, Skills, and Job Descriptions

CM Roles, Responsibilities, Skills, and Job Descriptions

E-mail
Written by Mario Moreira   
Friday, 16 December 2005 04:12

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.

1


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 production media).This will include validating the release once in production with appropriate smoke tests (ability to install, run, and execute minimal functional tests).This may include preparing the final Release Notes and notification of release completion.

Aligning CM Responsibilities to CM Roles
With an understanding of the key CM responsibilities in the development-to-production slice of the project lifecycle, let us look at what are the common CM titles or roles that we see in the workplace.Typically, we see roles like CM Tool Administrator (e.g., ClearCase Administrator, AccuRev Administrator, etc.), Build Engineer, Release Engineer, etc.How would they align with the responsibilities mentioned above?Below is a “CM Roles to Responsibilities Matrix” that provides a simplistic perspective on how certain CM roles would align with the responsibilities mentioned above.

2

Figure 1: CM Roles to Responsibilities Matrix

What this matrix attempts to highlight is that there really are different responsibilities for various CM roles. Of course, for many CM’ers, several of the CM roles are actually combined together to form their CM responsibilities. For example, a Build Engineer may also perform release packaging and migration responsibilities, or a CM Tool Administrator may also perform build responsibilities. To illustrate this, below is a diagram that shows where specific CM Roles live in the project lifecycle based on where their responsibilities may live. 

3

Figure 2: CM Roles across a Project Lifecycle

Building a CM Job Description
Using the responsibility definitions from “The CM Responsibilities in the Dev-to-Prod Lifecycle” section, we can begin to identify specific skills needed to perform the role.

Configuration Management Tool Implementer
Based on the major responsibilities classified in the ‘CM Roles to Responsibilities Matrix’ above (based on the “Establish the CM infrastructure” responsibility), here are the skills needed within this CM role. This role typically requires a senior-level CM professional.

  • Analysis skills – ability to evaluate the current environment, gather needs, and propose a recommended CM solution

  • Design/Architect skills – ability to define and design CM standards for the technology

  • CM Process skills – ability to define manageable CM processes (checkout/checkin, merge, build, release, etc) and implement them

  • CM Technology skills - ability to install CM technology based on needs and to integrate the CM technology with other technologies (development IDEs, defect tracking, etc.),

  • Scripting skills – ability to automate major processes

  • System administration skills - knowledge and ability to use the operating system(s) the CM technology runs on

  • Customer Service and Communication skills – ability to work graciously with users while resolving their issues

  • Training and Facilitation skills – ability to prepare CM technology and process training for users and the ability to deliver the training effectively

 Configuration Management Tool Administrator
Based on the major responsibilities classified in the ‘CM Roles to Responsibilities Matrix’ above (based on the “Manage/Improve the CM Technology” and “Manage/Troubleshoot the CM environment” responsibilities), here are the skills needed within this CM role. This role may be managed by a mid-level CM professional (or a junior-level CM professional of the CM system is very stable). 
 

  • CM technology skills - ability to maintain a CM technology, ability to upgrade, and ability to monitor and maintain CM technology

  • CM process skills – ability to understand CM processes and improve them

  • Scripting skills – ability to automate minor improvements

  • System administration skills - knowledge and ability to use the operating system(s) the CM technology runs on

  • Customer Service and Communication skills – ability to work graciously with users while resolving their issues

  • Training and Facilitation skills – ability to prepare CM technology and process training for users and the ability to deliver the training effectively

Build Engineer
Based on the major responsibilities classified in the ‘CM Roles to Responsibilities Matrix’ above (based on the “Perform builds” responsibility), here are the skills needed within this CM role. This role may be managed by a mid-level CM professional (or a junior-level CM professional of the build process and technology are well defined and very stable). 

 

  • Build Technology skills – knowledge of compilers, continuous build technologies, development technology build mechanisms

  • Build process skills – ability to establish build processes, understanding parallel and continuous build concepts and how to implement them.

  • Makefile and/or Ant skills – ability to establish or modify processes using Makefiles or Ant usage

  • Scripting/programming skills – ability to automate processes

  • Knowledge of product code structure – ability to understand how a product is architected to best design and build the product for increased build times

  • System administration skills with knowledge of Operating System(s) the code builds on

Release Engineer
Based on the major responsibilities classified in the ‘CM Roles to Responsibilities Matrix’ above (based on the “
Package/Migrate the release” responsibility), here are the skills needed within this CM role. This role may be managed by a mid-level CM professional (or a junior-level CM professional of the release process is well defined and very stable). 

 

  • Packaging Technology skills – ability to automate the packaging of build deliverables, database deliverables, and other deliverables needed to establish a run-time testing environment into a release package or the skills to perform this task manually.

  • Migration Technology skills – ability to automate the migration of release packages from environment to environment or the ability to perform this task manually

  • Makefile and/or Ant skills – ability to establish or modify packaging and migration processes

  • Technical writing & communication skills – ability to design a Release Note standard and template and the ability to write draft Release Notes per release

  • Defect Tracking and Requirements Technology skills – ability to pull data from these technologies of defects or requirements that have been worked on for Release Note preparation.

  • SCM Audit skills – ability to design an audit process to determine the integrity of the release package baseline and the ability to initiate and lead an audit to determine the integrity

Product Installer
Based on the major responsibilities classified in the ‘CM Roles to Responsibilities Matrix’ above (based on the “Install the release” responsibility), here are the skills needed within this CM role. This role may be managed by a mid-level CM professional (or a junior-level CM professional of the installation process is well defined and very stable). 

 

  • Product Installation skills – knowledge and skills of using a production installation technology

  • Application knowledge – knowledge to understand how a product works in production and its product deliverables structure

  • Facilitation skills – ability to establish and run a release readiness meeting

  • QA/Test skills – ability to smoke and UAT test once it has been installed to ensure that it meets the minimal run criteria after installation

  • Communication skills – ability to write appropriate cutover notifications of the new release and to update the Release Note of the contents of final package deliverables

Summary
CM professionals have a variety of titles today. Reviewing the CM responsibilities is a reasonable way to help prescribe the skill sets needed to handle the responsibilities. This can help differentiate between the various CM roles and help the hiring manager identify the right person for the CM job. In some cases, the CM professional handles a variety of different responsibilities that cross over the CM role boundaries. The important point is to align the CM title with the responsibilities and skills (as much as possible). If what you need is a person who just does builds, then you need to hire someone with build skills calling the role a “Build Engineer”. If you need someone who packages and migrates releases and performs CM tool administration, then you need to hire someone with a wider range of skills and call it (something like) “CM Release and Tools Engineer”. That way the name is reflective of the responsibilities and therefore the skills. From the skills needed, you can establish a better job description to identify the best CM professional to meet you needs. 

References
 

Software Configuration Management Implementation Roadmap” by Mario E. Moreira, 2004, John Wiley & Sons, Ltd John Wiley & Sons, Ltd



Mario Moreira is a Columnist for CMCrossroads Journal, a Director/Architect of Technology, an Author of CM publications, and has worked in the SCM field since 1986. He has experience with numerous SCM technologies and processes having implemented SCM on over 100 applications, which include establishing global SCM infrastructures. He has an MA in Mass Communication with an emphasis on communication technologies. Mario also brings years of Project Management, Software Quality Assurance, Requirement Engineering, Release Management, IT Governance, functional management, facilitation, and team building skills and experience. 

Mario has released a SCM book entitled, “Software Configuration Management Implementation Roadmap”. This book includes step-by-step guidance for implementing SCM at the organization, application, and project level and includes a CD with useful templates to jump-start the SCM effort or task. 

You may reach Mr. Moreira by email at Mario.Moreira@cmcrossroads.com

Trackback(0)

Comments (2)add comment

Mario Moreira said:

Mario Moreira
...
Hi Gary, The graphics to this CM R & R article are fixed. Thanks for bringing this to our attention! Mario
 
September 11, 2010
Votes: +0

gliau said:

gliau
...
It seems all the graphics are missing, can I have a copy?
Thanks,
Gary
 
August 30, 2010
Votes: +0

Write comment

You must be logged in to post a comment. Please register if you do not have an account yet.

busy
Last Updated on Tuesday, 31 August 2010 15:30
 
509 Bandwidth Limit Exceeded

Bandwidth Limit Exceeded

The server is temporarily unable to service your request due to the site owner reaching his/her bandwidth limit. Please try again later.