In-Depth

SCM: Through the maze

Brian White can recall the days when an application was written by “two or three developers sitting in nearby cubes, working off a white board while conversing with each other.” In those simpler times, developers would work on a single version of software, release it, then move into the maintenance phase of issuing updates.

“The goals and objectives of creating a software app were easy to understand, and so was what an individual’s contribution was supposed to be,” noted White, a former developer who today oversees product strategy for the IBM Rational Clearcase software configuration management solution.

Today, it is another story -- one with a labyrinthine plotline. Demands for software functionality have led to applications so complex that creating them may involve hundreds of developers working on a million lines of code, spread over tens of thousands of source files. The process is so time-consuming that to accelerate it many firms have multiple teams working on a code base, simultaneously developing patches, maintenance releases and updates, all the while delivering variants of the code for different platforms, OSs and databases.

Then there is the coup de grace of complications. Developers do not sit next to each other anymore. They may not sit on the same floor, share the same building, or even work in the same city or country.

“More outsourcing to partners, suppliers and remote development centers in India and the Asia-Pacific has increased the need to manage and secure both the software assets and deliverables from a geographically distributed environment,” said Ash Owen. Owen is director of product marketing at Merant, a Hillsboro, Ore., provider of software that delivers control of code, content and other business-critical assets. “And all these separate inputs from across the globe need to be coordinated,” he added.

Makers of configuration management systems include Borland/Starbase, Cybermation, IBM Rational, Merant, Microsoft, MKS, Perforce Software, Seapine Software, Softlab, Telelogic, Visible Systems and others. Related change management tools vendors that offer software configuration capabilities include Computer Associates, Serena, TechExcel and others.

As the development team grows and occupies more locations, conflicts arise. The biggest problem is communication, especially as it relates to what each person is supposed to do. If you have one development team in Canada and one in Bangalore, India, making changes to the code, “coding conflicts are going to happen because you’re not working in real time,” noted David Martin, vice president of product management at MKS, a vendor of enterprise software configuration management (SCM) software in Waterloo, Ontario. “Since you only know what is happening to changes in the code once they’re synchronized, you only find out you’re in trouble after the fact. When the left hand doesn’t know what the right hand is doing, you spend a hell of a lot of time cleaning up the mess.”

This is why SCM is essential for controlling, managing and organizing daily development activities. SCM safeguards work, enabling teams to collaborate while co-developing the same system, and automates the mundane tasks of storing and managing thousands of individual files. Change management software works in conjunction with SCM to track and control changes to code, ensuring that everyone on the team knows why a change was made and where that change is.

“For software developers, SCM has become de rigeur,” said Christopher Seiwald, founder and CTO at Perforce Software Inc., a maker of SCM software in Alameda, Calif. “People rarely start a project anymore without SCM in play.”

The current generation of SCM software must perform six basic functions: object management, process management, work-area management, build management, change tracking and distributed development. Distributed development, in which teams work on common files from multiple sites, has had a profound impact on SCM requirements.

“One of the greatest challenges in the SCM space is integrating the work of individuals who are working remotely more and more, due to the Internet and geographically distributed development teams,” said IBM Rational’s White. “For example, if I’ve checked out a file and I have a question about a method that was added, if I could right click on a source file and start a chat with the person who changed the predecessor version that would save time over my trying to figure it out on my own. But even more interesting is if SCM tools can provide awareness on what your core teammates are changing right now.”

For team members in all locations to see and use the latest files and project artifacts, the repositories at all the sites need to be synchronized. If co-development is to occur when there is more than one physical repository, an SCM system provides a single logical repository view.

Focusing on a single repository was one reason Verio Inc. decided to upgrade its SCM environment. The company operates Web sites for businesses and provides global IP solutions, including Web hosting services to customers in more than 146 countries.

Verio develops the software that runs its Internet business for both Windows NT and Unix, and works in standard languages like Java, C and Perl, plus Macromedia ColdFusion MX to build Web apps. The firm has some 80 developers located in its Englewood, Colo., headquarters as well as in an office in Dallas.

Several years ago, Verio executives decided a more standardized development process was needed for the geographically divided development groups, each of which had its own database. In late 2000, the company began to evaluate change and configuration management solutions. In the end, officials decided to move to the Synergy suite of tools from Malmö, Sweden-based Telelogic, a supplier of development solutions.

The deployment of the Synergy suite was highly iterative, said Stephen Getty, Verio’s director of IT, QA and configuration management. The IT group first deployed Telelogic’s ChangeSynergy change management tool for testing and defect tracking, then turned on the suite’s CM Synergy SCM component.

“We approached it with one product group as our guinea pigs to make sure everything was configured correctly,” said Getty. “Then we ramped up to two more groups, then turned it on again until everyone had migrated to CM Synergy.” The entire deployment took nearly two years, he said.

One goal of the Telelogic deployment was enterprise standardization. “We were able to do our work before, but we had a mix of tools across our different groups and everything was siloed,” said Getty. “Also, we were using products that worked for either Unix or NT, like Visual SourceSafe, but not both. We wanted to have one tool that all of the relevant departments could consolidate on.”

That tool was the Synergy suite and, once it was deployed, Verio was able to get down to one synchronized database for storing developer code, with permissions for code access. With all the code in one database, development was faster and more accurate, and backups became easier. “Since teams didn’t have one server they were working on, we didn’t have to worry about them skipping a backup or not backing up with the proper protocols,” said Getty.

Using Synergy, the IT team created customized workflows, including defect tracking, scope change requests, project issues, auto notification and document sign-off requests. With customized workflows to draw from, said Getty, “we’re able to focus on further implementation of a single repository for any versionable item we choose -- code, scripts, database schema or documentation.”

Quality and standards can have a profound effect on a company’s SCM requirements and development processes. Teams with different quality requirements use different development processes. SCM systems must therefore be able to support formal processes such as ISO 9000 or the Software Engineering Institute (SEI) Capability Maturity Model (CMM), a de facto standard for assessing and improving a firm’s software processes.

Attaining SEI CMM Level 2 certification for its point-of-purchase check authorization system was what spurred Certegy Check Services to move from a desktop versioning product to an enterprise SCM solution from MKS. Certegy Check Services, a division of Alpharetta, Ga.-based Certegy Inc., enables businesses to have checks approved online in real time. The division provides check risk management to more than 6,000 financial institutions and 117,000 retailers worldwide, which have the capability to match against Certegy’s database of 100 million writers of good checks.

Most of Certegy ’s developers work in St. Petersburg, Fla., where the Check Services division’s IT department is located, but some are in England, France and Australia. Outsourced mainframe applications still account for part of the company’s business, but Certegy’s in-house development is built around a Compaq Tru64 environment. Developers build applications for Windows and several Unix platforms, primarily in C and Visual Basic. Certegy has recently moved into Web applications that allow merchants to sign up for services and access applications online; for these applications, the firm uses IBM WebSphere Studio in Java.

Certegy already had an SCM tool, but to attain CMM Level 2 certification, its IT team felt it needed better automation of its processes. “The actual process was already in place, but the MKS tools helped us to reduce the manual work of that process,” said Mark Andrews, senior vice president and CIO, check technology.

Certegy purchased two components from MKS: the Integrity Manager process and workflow management solution, and the Source Integrity Enterprise Edition SCM component, which is aimed at cross-platform and distributed development.

“We bought the MKS tools to integrate with our source control and to manage the changes to our software,” said Andrews. “Developers can check in and check out the code using the development tool of their choice, since WebSphere Studio, Visual Basic and C all integrate with MKS Source Integrity.”

Today, Certegy uses MKS to manage all of its software and documentation changes for its check authorization system. “The MKS enterprise SCM technology has given us greater reliability in our release management,” said Andrews. “Now we can accurately trace and track all change requests.” The firm attained its CMM Level 2 certification in December.


Different breed of SCM issues

Web services create a different breed of SCM issues. Traditional SCM is file- and asset-driven; all developers need to do is to check in and check out code. But developers of Web services are not merely generating code, they are designing XML components. Web services cannot be managed as flat files.

According to IBM Rational’s White, the fact that multiple large apps communicate with each other in Web services introduces runtime versioning issues. To have versioning of Web services, one needs to store the meta data associated with the relationships between the apps and the configurations that the Web services operate in.

“Since developers may not have control over when a Web service is updated, the issue for them is how to build an app so that it behaves well in an environment they don’t have control over,” said White.

Changing a Web services component leads to a chain reaction of determining which other components are affected by that change, and whether those affected components are in your applications or in one of your partners’ apps.

“It’s not so much a matter of managing the code and raw physical Web service components,” said Merant’s Owen. “It’s managing the interfaces the Web service components have with the applications built on top of them and the increasing amount of communications between the pieces of those apps. Because the communication pieces often go off to a business partner, they are often external to the application. To bring SCM into that environment requires a good deal more management and control.”

That control had best come soon, according to Jim Duggan, vice president and research area leader in application development at Gartner Inc. “The more Web services you build, the more delicate the maneuvering [of] versions in and out becomes,” he said. “Managers are going to realize too late that it’s gotten beyond what they can do, and the quality of Web services will be poor because of operating inconsistencies. As companies get more ambitious, there are going to be some spectacular failures.”


Counter-trend

Ironically, there is a counter-trend to distributed development. Many companies are once again embracing the mainframe and the centralized processes that go with it. “With IBM’s success in re-purposing the mainframe [with the introduction of its zSeries of mainframe servers], people who were saying the mainframe was dead are instead focusing on integrating these legacy apps with distributed and Web components,” said Merant’s Owen.

Now that these companies are leaving some of their critical business applications on the mainframe and extending them with Web front ends, “the need is increasing to coordinate software assets and change activity across distributed and mainframe environments,” Owen added.

And while some organizations have separate SCM solutions and repositories for their mainframe and distributed environments, others are pushing to create one distributed/mainframe/Web enterprise SCM solution.

Please see the following related stories:

Change, always change” by Jack Vaughan

Oil and water” by Peter Bochner

Briefing Book: SCM