In-Depth

Oil and water

Developers have always had a love-hate relationship with software configuration management (SCM) technology. In the early days of SCM, they tended to view such systems as obtrusive and constraining, and often relegated them to the back end of the development process, using them primarily as an archive for the final result.

“If developers are in the editor and compiler, and they have to do something with an SCM tool, and [if] the tools take them twice as long, they’ll stop using them,” said Chris Seiwald. Seiwald leveraged that displeasure in 1995 by founding Perforce Software, a company that makes performance-oriented SCM software.

While SCM tools have improved, that does not mean that developers are any happier. When creating software, they are part of a team, and their teammates are often project managers, quality administrators and the like. “The developers are dealing with check-in/out types of things, and the extended management team is asking ‘What is the number of defects and how fast are we fixing them?’ In general, those two worlds -- the code and artifacts being changed, and the decision-making process -- have been largely disconnected,” said Brian White, manager product strategy, enterprise change management at Rational Software, IBM Software Group.

But sometimes, there are good reasons for management to be concerned. “Anytime you change a system, you open yourself up to process errors,” said Jim Duggan, vice president and research area leader in application development at Gartner Inc. “Maybe someone wanted to change the way the line looked for aesthetic reasons and ended up changing the way it functions. Developers tend to be extremely confident in their ability to handle the task on hand, and completely oblivious to consequences. They tend not to like versioning because it distracts them from [their] true love: creating code.”

It is a constant tug of war. Too much control frustrates the developers, while too much “bucking the system” annoys managers. “Now that everything from new projects to fixing a bug flows through the same life cycle, one way to manage that is to administer the repositories,” said Perforce’s Seiwald. “If you’re a really Draconian-type of operations guy, you’ll buy lots of process software and force everyone to walk within the painted line, but that slows everything down to a crawl.”

So what is the best solution? “The best process is just enough: more than the developer wants, but less than the quality administrator wants,” said Seiwald.


Please see the following related stories:

SCM: Through the maze” by Peter Bochner

Change, always change” by Jack Vaughan

Briefing Book: SCM