Order From Chaos: Configuration management tools and the development life cycle

While some of the terminology used to describe the world of software configuration management can be quite foggy, the fundamental importance of configuration management to development is crystal clear: The fast-changing environment of applications, operating systems and hardware platforms that businesses need to keep current makes having tools to manage these changes vital.

Part of the fog surrounding this terminology stems from people using the terms "change management" and "configuration management" interchangeably, when there are distinct differences between the two. It is true that both terms refer to the overall process by which an organization can make and manage changes to hardware and software in their networks and operating systems and, hence, manage the "configuration" of these systems. Change management can be thought of as a subset or element of configuration management. Change management typically describes the process of what happens when something in the IT system needs to be changed, and the way to go about changing the system's configuration to minimize the risk and impact on productivity.

Configuration management, on the other hand, encompasses a larger set and has to do with the whole field, from version control to process management. Change management is only one part of the spectrum of configuration management, referring to the highest level of process management.

James Smith, executive vice president of the Customer Group at Starbase Corp., Santa Ana, Calif., explains the difference this way: "Change management is managing the process of change. In other words, how does a customer and/or a user submit a change request, [and] how is it prioritized, tracked or implemented? Configuration management is the versioning, labeling and tracking of code and content components during the development life cycle."

Because configuration management includes change management, we will focus on the former in this article. Configuration management plays a significant and necessary role in the development life cycle. Without some sort of configuration management tool in place, companies are "treading on very thin ice," according to Michael Flickman, chief technology officer at Concrete Media Inc., a New York City firm that builds Internet companies.

Configuration management provides security and insurance against losing valuable source code in much the same way auto insurance keeps the insured from going bankrupt as a result of an accident.

"The first time you lose your source code," commented Flickman, "[or] the first time you roll back your site and it crashes, it's too late." If companies do not have some form of configuration management system in place, he added, "they're living dangerously." Not only that, said Stephen Friedl, a software consultant in Tustin, Calif., but "If you're not using a change management system, you're not professional."

In addition to security, configuration management offers additional benefits. One of the biggest advantages is version control—storing previous versions of applications in progress for later reference. Another benefit is history through an audit trail. And a key advantage is collaboration through a repository so developers do not overlap by making the same changes to the same code at the same time. As Friedl said, "not losing your mind with multiple developers having their hands in the same source trees" is the biggest benefit of configuration management.

While configuration management tools offer many benefits, they raise a number of issues as well. One issue is being able to manage change and configuration efficiently. "An IT department may have hundreds or even thousands of users, and having the tools necessary to migrate users from one app to another or from one OS to another can be a big task," noted Fred Broussard, senior research analyst at IDC, Framingham, Mass. Because this can be an overwhelming task, it takes a lower position on many firms' priority lists.

Another issue is modern methodologies. Developers in particular need to be sure their software repository and configuration management tools are embedded in their environment. Organizations need to have a methodology in place and developers that are trained in the methodology. It also helps if developers understand the role change management plays in the whole process.

"The entire methodology is important to make sure change management has a minimum impact on risk and productivity in an organization," said Bob Stalick, chairman and CEO at Internosis, an Arlington, Va.-based Microsoft-centric e-business consulting firm that focuses on preparing IT organizations for technology change. The name Internosis is a combination of two Greek words meaning "between minds," which is what the company believes change management is all about.

Many developers are confused about the dilemma of creativity vs. engineering discipline, according to Stalick. The emergence of the Web has created opportunities for developers to express themselves artistically. "You find real problems with change management when the artiste mode gets overblown and there isn't enough engineering understanding," explained Stalick. "Change management is more readily accepted by people with formal engineering training." Training those artistic developers in the discipline through methodological process is key to effective change management.

Chris Seiwald, president at Perforce Software, Alameda, Calif., agrees that educating people is a major issue with change and configuration management. "You get a little bit of resistance from developers who could do what they wanted when they wanted [but] now have to cooperate with a [Software Configuration Management, or SCM] system." Effective change and configuration management requires people to work together. "The SCM tool becomes the means of communication," Seiwald added.

Configuration management tools are not only effective and beneficial for large shops; smaller shops can also realize their benefits. For example, consultant Friedl has worked with configuration management tools for about 15 years. He currently uses Perforce, a developer-driven SCM tool from Perforce Software that manages the software development process for large, complex projects across more than 40 different development platforms.

Friedl has also used Source Integrity from Mortice Kern Systems (MKS) Inc., Waterloo, Ontario, over a 56K Frame Relay line and found it mostly capable, but slow and lacking in platform support. He found Perforce to be much faster over slow links. Friedl also found Perforce to have a powerful branching mechanism and excellent support. "Support is spectacular," he said. "I routinely get a response from a real person in less than an hour."

When Avaya Communications, Basking Ridge, N.J., realized that its development needs outpaced the capabilities of its homegrown configuration management tools, it turned to ClearCase from Rational Software Corp., Cupertino, Calif. Collaboration capabilities and a powerful platform drew the telecom products producer to ClearCase, which provides numerous options for different paradigms.

"Other tools cornered you into one paradigm of doing things," said Doug Blondin, a member of Avaya's technical staff. "ClearCase is a very rich tool that lets you do a lot of stuff differently. It doesn't really box you in." In addition, ClearCase makes collaboration easy. "Sometimes two or three people need to combine code," Blondin explained. With ClearCase, Avaya "was able to set up little teams to work on their own."

Concrete Media's Flickman also wanted a tool that facilitated collaboration and was tightly integrated with a defect-tracking system. "At the time, I had two separate products and integration was minimal at best," he noted. Collaboration capabilities had to be such that both non-technical and technical people would be able to use the system because the company is in the professional services business, which caters to both.

Flickman considered PVCS from Merant, Rockville, Md., Visual SourceSafe from Microsoft Corp., and Source Integrity from MKS before finding Starbase's StarTeam. The other tools were good at source-code control and defect tracking, he said, "but as far as being tightly integrated and able to collaborate around the process using the tools, they really weren't very good at that."

Flickman likes the collaboration Star- Team brings to the whole development process. "We have a lot of non-technical people or people not involved in the day-to-day building of software, but who are very much involved in the process of it," he said.

"I now have many different [people] involved with the creation of a site who are not necessarily technical but can collaborate, keep an audit trail and know what's going on," Flickman noted.

Siemens Information and Communications Networks (ICN), Lake Mary, Fla., needed to support a lot of features and functions in its request change management process that it could only find in a combination of tools: Microsoft Word, Microsoft Excel, TeamRoom in Lotus Notes, and an in-house request management tool. The company decided that would not work for capturing, reporting and collaborating change requests because of duplication of data and an inability to integrate between applications.

Siemens ICN found that Caliber-RM from Atlanta-based Technology Builders Inc. met all of its change management requirements. "With the use of Caliber, we're able to have a single repository for all our requests," said Ken Battles, IT process and project manager at Siemens ICN. In addition, Caliber allows the company to collaborate on those requests, provide a documented record of collaboration, show dependencies between requests, keep everyone informed concerning requests, and provide the ability to run all kinds of reports to help manage requests and measure request disposition performance.

Caliber includes "Live Link" integration with leading software configuration management tools. This allows any artifacts (source code, documentation, help files, Web content) residing in SCM tools to be traced to requirements (business, functional, hardware and so on) that are managed within Caliber so that project teams have a better understanding of the impact a potential requirement change could have on a project.

Clearing things up
While murkiness may surround the terminology of configuration management to some extent, it is clear there is a need for these types of tools in the development life cycle. In fact, according to research firm Ovum Inc., Wakefield, Mass., configuration management tool revenue has been increasing at an average rate of approximately 50% a year since 1995. In 1999, the global market for configuration management tools and services had grown to nearly $1.5 billion and is expected to climb to $6.9 billion by 2005.

Configuration tools offer more benefits than drawbacks. Regardless of the preferred name, configuration management is insurance against losing critical source code.

"We're all companies trying to develop products and kick them out the door. A whole variety of needs arrive because of that," noted Avaya Communications' Blondin. "Change and configuration management is a tool, a means to get these products accomplished, tying work together with people who are geographically dispersed."

Organizations need to implement good configuration management tools and familiarize themselves with them because in the future, they will have to make some important decisions about how to extend these tools to mobile and wireless devices. They will also have to decide what level of support to provide, how to protect their applications and investments in various technologies, and what security measures to enact.

"Moving forward," said Starbase's Smith, "next-generation change, configuration and content management solutions will also require mobile device support, long-term archiving and storage, rollback capabilities, integrated source-code management, records management, portal extensions, security and auto-tagging support to address the full Web development life cycle."

Working through the kinks in change and configuration management today can help prepare organizations for the future and ease transitions to updated tools and technologies. Will your company be ready?