Making SCM Agile

[article]
Summary:
When the notion of implementing software configuration management (SCM) on a project is considered, the first thing that usually comes to mind is a methodology that uses a generous amount of process and documentation.

When the notion of implementing software configuration management (SCM) on a project is considered, the first thing that usually comes to mind is a methodology that uses a generous amount of process and documentation.

There’s nothing new about this impression – SCM practitioners are often faced with resistance from management and developers who perceive SCM as a labor-intensive activity and cost driver.  For the most part, large software development projects or programs need a significant amount of SCM to ensure product integrity.  So why do so many companies impose a lot of process and documentation on small projects?  Do they really believe that all that process and documentation will bring value to the small project?  The reasons are simple – ignorance!  That is, there’s a significant lack of SCM understanding or know-how, and anything not understood (like benefits and value) is generally ignored.  How much SCM is necessary on a small software project to ensure integrity?  What is absolutely necessary and what is “nice to have?"  What can be done to make the SCM process more efficient?  These are questions asked frequently by management and practitioner alike, because they are the ones who must plan and implement SCM.  Reliable software (software integrity) means that customers will come back for more business.  How can SCM practices used in process-heavy methods be reduced or tailored without adverse risk to product?  Why can’t we just “pick and choose” the activities and processes that add value to our immediate business culture needs?  There are answers to all of these questions, but we need to know a few important things about a project before development begins.

  • How many activities are needed to adequately manage and control software work products?
  • How many activities are needed to adequately manage and control software work products?
  • What are the absolute “must have” SCM requirements (activities and work products)?
  • How much tailoring of SCM activities and work products is necessary?

Who is responsible for project-level SCM activities and work products? Well, the SCM group, of course. Who or what is the SCM group? That’s a trick question, right?  Not really. The “SCM group” may be one person or a group of individuals responsible for performing SCM activities and producing SCM work products. The SCM group gets busy quickly when a new project gets underway. Immediate and typical SCM tasks involve strategic SCM planning and determining resources (people, tools, and equipment), training needs, establishment of multiple and/or multi-level libraries and repositories for the range of objects expected to be produced, determination and implementation of appropriate build and release processes, among others. If a SCM tool is available for project use, the SCM group has to make all worthwhile tool features available to the development team. If a SCM tool is not available, then the amount of project development preparation the SCM group has to do becomes staggering.

When should SCM be brought into a new project? Well, it depends on the organization’s understanding of the value that SCM brings to a software project – throughout its development lifecycle and beyond. However, if a SCM group is not established or identified at project initiation, then project risks increase significantly. Once a SCM group has been identified, established, and becomes part of the project’s software engineering activities, the SCM group must determine:

    • The level of SCM support for the lifecycle methodology to be used
    • Scheduling of software baselines and critical work products during each development lifecycle phase, and each release
    • If the SCM budget and resources are adequate
    • What must be built (the software product or application)
    • The size or magnitude of the project
    • All necessary SCM activities and work products (as agreed-to

Pages

About the author

TechWell Contributor's picture TechWell Contributor

The opinions and positions expressed within these guest posts are those of the author alone and do not represent those of the TechWell Community Sites. Guest authors represent that they have the right to distribute this content and that such content is not violating the legal rights of others. If you would like to contribute content to a TechWell Community Site, email editors@techwell.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

Nov 09
Nov 09
Apr 13
May 03