Software change and configuration management is an accepted part of the application lifecycle and is well established in most organizations. However, the use of outdated tools and processes is creating unnecessary challenges for many. If your organization is one of those that is struggling to reap the benefits of SCM, it may be time to look closely at the tools and processes you’re using to see if there’s room for improvement.
According to WhatIs.com, software configuration management (SCM) enables developers to “keep track of the source code, documentation, problems, changes requested and changes made” to software.
When SCM is done well, organizations benefit from repeatability, traceability and auditability, says Stephen Berczuk, Engineer, Humedica. “Code is easier to reproduce and you have a more reproducible process. You have fewer people scratching their heads, wondering why something isn’t working,” he says. “People can move more quickly and be more predictable.”
Challenges associated with SCM
If the results of our 2011 SearchSoftwareQuality.com survey are any indication, fundamental challenges with SCM prevent a majority of readers from achieving these benefits. The top three challenges readers report with change and configuration management are a lack of standard and consistent procedures, lack of coordination with other groups and the need for additional automation to reduce human error.
These challenges likely stem from the use of outdated tools or inadequate processes, according to Sean Kenefick, Research Director, Application Platform Strategies, Gartner Inc. “In so many cases, some of the older tools have weaknesses and issues due to their age. They were low cost or free solutions. There wasn’t a lot of time spent trying to improve them, and they had major problems. Folks still using those tools are going to run into problems,” says Kenefick. He cites Microsoft Visual SourceSafe and CVS as examples.
In other cases, organizations are using older tools that are simply difficult to use. “They still perform their duties well, but they’re not efficient,” says Kenefick. He cites ClearCase, which is still a popular option among developers but well known for its administrative overhead.
It also isn’t unusual for folks to use a lot of different tools within an organization, which can make coordination difficult. “One group might be using an old tool that doesn’t work well while another group is using a new tool,” says Kenefick.
But Kenefick says the use of outdated tools is less of a problem than the processes that surround the tools. “Mostly folks need to improve processes. The tools are strong; they do what they are meant to do for the most part. It’s how you use the tools that’s the real problem,” he says.
Oftentimes the processes organizations establish to support SCM tools are overly complicated or not complicated enough, says Kenefick. “Even if [a process] doesn’t work, they continue to use it instead of continually looking at their processes and making improvements,” he says.
Trends in SCM tools
If your organization takes a continuous improvement approach to SCM processes and still struggles with automation, cross-group coordination or maintaining consistent procedures, then perhaps its time to standardize on a new tool. “A lot of developers are switching to open source SCM tools,” says Jeffrey Hammond, Principal Analyst, Forrester.
The rising popularity of open source SCM tools is the result of the tools’ natural progression, says Kenefick. In the 1990s, developers had to choose between free or very expensive tools. There weren’t any quality midrange tools that were also cost-efficient. Subversion came and filled that void, paving the way for other open source tools. “Because people trusted Subversion, they started trusting others – Git and Mercurial – in ways they wouldn’t have if that history hadn’t taken place,” says Kenefick.
Several commercial tools are also popular. Hammond cites IBM Rational ClearCase, Microsoft Team Foundation Server, Serena Dimensions and AccuRev.
Must-have SCM features are relatively common amongst both open source and commercial tools. The experts we spoke to commonly cited integration, and branching and merging as core functions. While most tools have these capabilities, organizations should look for tools that are particularly strong in their areas of interest. “If your process requires a lot of branching and merging then this is an important consideration,” says Kenefick.
The latest generation of tools emphasize integration capabilities. “You need some level of integration between SCM and [continuous integration] tools,” says Hammond. “It makes the process of changing features and tracking their evolution less painful.”
Berczuk agrees. The most important aspect of choosing an SCM tool is finding one that works well in the organization’s environment and can be made transparent. “If you have a tool that doesn’t integrate well, then people will check in less often,” says Berczuk. Ideally, the tool integrates into your work transparently so that people don’t have to think too much about what they’re doing, he says.