Approaching the Implementation of CM

[article]

46

 

this in mind, it is important to assess the risk of the application(s) in question because this may help (and ergo your management) to decide on the level of CM rigor applied on the application and their respective projects (e.g., just version control or version control and change control, or version control, change control, and audit, etc.). Hopefully, if a potentially critical application is being developed, industry standards are also applied for added rigor, as appropriate.

Below is an example table to illustrate the application criticality as it relates to the usage and the ramifications of the application not operating as expected.

 


If application named:


Has a most important function(s) called:


 The ramification of most important function(s) if it does not operate is:


Then the SCM rigor should be (as an example):


Space-pump


Fuel delivery


Explosion (great danger to anyone in vehicle using this device)


High: apply change control on all item changes, ensure audits occur (consider applying standards like MIL-STD-973 or IEEE Std 828-1990, etc)


Coldmail


Email system


Mail system down (no delivery of mail)


Medium: apply change control on requirements, environment, and production baseline (maybe apply the CM KPA from CMM)


Ace label


Labels pizza boxes


Wrong type of pizza


Low: apply change control on production baseline

 

If risk assessment is performed, and one application is part of a critical system for the space shuttle and the other is the toothbrush that the space shuttle astronauts will use, which would you apply the most rigor if you have an allocation of resources that cannot fit over both of these applications? You cannot say both. This way, when a CM professional has a certain amount of resources, they can most appropriately apply a level of CM rigor that is appropriate for the criticality of the application in question. This does not imply that no CM should occur on lower criticality applications, but that in most of our lives, we have to ultimately prioritize, and make trade-offs, when attempting to build and perform the CM practice.

Development Methodology

Does the development methodology being used on a project have an impact on the CM implementation approach? Before we answer this, for awareness and consistency let us look at some of the high-level development methodology categories. Please understand that there is great debate on the definitions and applicability of each of these methods and this is just one perspective. They include:

 

·       Waterfall: A methodology that describes linear/sequential development where the overall lifecycle is composed of several phases that lead to the delivery of one release. Each phase of development proceeds in a particular order and it is implied that once you have completed a phase, there is no turning back. While more commonly associated with larger projects, it has its basis in smaller linear incremental projects. An example of a waterfall method is Summit-D.

·       Incremental: A methodology that focuses on developing a small manageable set of functionality and externally releasing it to the public upon completion. It can be associated with waterfall (short time span linear project), but is more commonly associated with iterative (see below). Examples of incremental methods may be evolutionary and RAD.

·       Iterative: A methodology where the overall lifecycle is composed of several continuous iterations where a small set of functionality is developed per iteration and internally released for review and modification. Additional iterations are built upon prior iterations until the functionality is adequate for external release to the public. In modern iterative methods, the recommended length of one iteration is between one and six weeks. Sometimes, iterative and

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!