Approaching the Implementation of CM

[article]

46

 

incremental are combined to be referred to as iterative and incremental development. Some examples of this method may be Agile, XP, Scrum, RUP, and Spiral.

In all of the above methodologies, it appears that identification and control are important. While it can be argued that some of the iterative methodologies such as Agile and XP do away with process control, the reality is that identification with control of requirements and control over design with coding changes is core to the fast-paced iterative nature.

With this in mind, that I advocate before any development project occurs, irrespective of the development methodology, that a CM system, including both tools and processes, is implemented. I have witnessed unknown requirements during the time of release, loss of code, and schedule slippage when an iterative, increment, or waterfall method is being used when no CM system is in place. I have seen this particularly from those who claimed to be following an iterative methodology like Scrum, Agile, or XP who think they can begin the project without any CM infrastructure. Effectively, it becomes almost impossible to manage change without a level of CM rigor that focuses on identification and control.

The question then becomes, are there specific areas of a CM system that should be focused on more than others per the methodology used on a development project? Let us examine this:

·       Using the waterfall methodology, consider having a change control infrastructure for processes and tools in place prior to the requirements gathering phase, and then have the version control infrastructure in place prior to the coding phase. You can take a phased approach at having elements of CM in place throughout the project lifecycle as and when they are needed.

·       Using the iterative or incremental methodology, due to the short development cycles and because coding occurs within weeks or days of the project being started, then consider having a change control infrastructure (processes and tools) and the version control infrastructure in place prior to the coding phase.

Ultimately, it is important to understand that a CM system or parts of a CM system, change control infrastructure and/or version control infrastructure, take time to establish and are an infrastructure-building project in-and-of-itself. Therefore, this infrastructure should be in place at the appropriate times irrespective of the development methodology. If you have a developer or project manager telling you that their methodology does not need CM, then they mostly likely do not understand the methodology in question.

Summary

Since most CM professionals have numerous challenges, considering the way you approach CM may be beneficial. As suggested, focusing on which target level CM should be implemented, understanding the critical nature of the application, and understanding the development methodology used may provide some insight in approaching CM. Consider the following key points:

 

·       Identifying the target level helps you increase the chances for a successful implementation because you can identify the personnel (at the organization, application, or project level) that can be most helpful to the implementation and adoption of CM.

·       Identifying the critical nature of an application by applying risk assessment helps you perform better resource management as it relates to applying CM rigor (more rigor to more critical applications).

·       Identifying the development methodology helps you know when elements of CM needs to be in place and this can help you best apply CM resources during particular times.

As you wrestle with where to best place your resources and where to apply the most CM rigor, I hope that these areas may help in considering your CM approach.

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!

Upcoming Events

May 04
May 04
May 04
Jun 01