| 
Right-Sizing Software Configuration Management for Agile Projects PDF Print E-mail
Monday, 31 March 2003

Software Configuration Management (SCM) implementations often apply tools and processes to projects, arguing that it’s “the right thing to do.” Some of these tools and processes can dramatically decrease the development team’s velocity and increase overall cost to the project while gaining only marginal benefits, if any at all. Any time an Agile development project implements new processes and/or tools, the team must measure the benefit over the cost, keeping in mind the fundamentals and principles outlined in the Agile Manifesto.

The scope of SCM is not merely Version Management (i.e. CVS). It is also setting up and automating your build, managing business level units of change (i.e. User stories, refactoring exercises, etc.) and their relationship to the code, keeping track of relationships between releases of dependent software, etc. SCM is not simply the installation of a tool, but shaping how your team will manage software artifacts and meta-data, then determining how to automate parts of that process to create predictability and team velocity. 

There are two types of SCM enhancements to evaluate for your project: Immediate Value SCM and Insurance SCM. Immediate Value SCM includes tools and/or processes that result in improved team velocity while maintaining or improving software quality. The costs of these enhancements are more often than not minimal when measured against the benefits, and thus are easy to justify. Insurance SCM processes and tools are far more difficult to justify and require a bit more thought before deciding to implement. They will save you from potential disaster as your project proceeds.

Immediate Value SCM can be best described by discussing early vintage automobiles. When cars were originally built back in the early 1900’s, they had manual engine timing on the steering column. To start the engine and run the car, the driver needed to know how to adjust the timing as the engine changed speed in order to maximize efficiency and performance. Technology quickly evolved to automate that part of the engine and removed that “work” from the driver. Engine timing is an excellent metaphor for Immediate Value SCM. There are SCM tools and/or processes that have very limited cost and provide huge value, in both team velocity and release quality. Examples are basic version management and automated builds. Basic version management includes topics like file level revision management, multi-user support, branching, labeling, and basic release management. Automated builds not only improve velocity, but document the build time dependencies and process required to build your software. The benefits of basic version management and automated builds far outweigh the costs involved in implementation, maintenance and usage for most software projects. So put some thought into these practices and “put them under the hood.”

High Altitude Mountain Climbing has many characteristics similar to Insurance SCM and Agile development methods in general. When you climb high-altitude mountains, you do it with a small team, there’s a window of opportunity to do the assent, it requires flexibility, it is adventurous, and it can be dangerous. Sounds like many of the Agile teams I’ve worked with! When a climbing team gets to a dangerous part of the climb, many times they will decide to rope themselves together. The benefit is they won’t fall to their death if they slip, but the cost is that it will slow the team’s progress, which can cause the team to fail to reach the summit. Insurance SCM tools and processes are like roping your team together. They often decrease team velocity but protect you from disaster. There are three factors to consider when assessing the value of an Insurance SCM enhancement: Likelihood of the disaster, Consequence of the disaster, and Cost to put it in place, maintain and use it. Some examples of Insurance SCM include periodic integration builds, code security, restore capability of prior releases, associating change requests to code, management of code dependencies across releases, etc.

You cannot develop software without doing SCM – the question is how much process and when to automate. Never choose a process and/or tool without first determining if the enhancement is Immediate Value SCM or Insurance SCM, and if the latter, measure the Cost against the Likelihood and Consequences. Agile methods are very “cost sensitive” and therefore justify less Insurance SCM than other development methods. Time spent up front justifying your proposed SCM solution in this way will pay off when getting buy-in from the development team, as well as ensure the solution adds real value to the project.

 



Steve Konieczka
is President and Chief Operating Officer of SCM Labs, a leading Software Configuration Management solutions provider. An IT consultant for 14 years, Steve understands the challenges IT organizations face in change management. He has helped shape companies’ methodologies for creating and implementing effective SCM solutions for local and national clients. Steve is a member of Young Entrepreneurs Organization and serves on the board of the Association for Configuration and Data Management (ACDM). He holds a Bachelor of Science in Computer Information Systems from Colorado State University.

You can reach Steve at
steve@scmlabs.com 
Trackback(0)
Comments (0)add comment

Write comment
smaller | bigger

security image
Write the displayed characters


busy
Last Updated ( Sunday, 05 August 2007 )
 
< Prev   Next >
If you already have an account on CM Crossroads, Login Now. If you do not, register using the link below...

NOTE: Once you register you will need to activate your account by clicking the link sent to you by email.

Video News

Agile in turbulent times Webinar