In the beginning, there was the spreadsheet, the white board and the release engineer. The release engineer ran from one cubicle to the next, trying to keep track of which developer was working on what module and when, as well as which bugs had been fixed, discovered and introduced. Needless to say, that process was fraught with problems and errors. And so, source control management systems were created.
A source control management system (SCM) is software that provides coordination and services between members of a software development team. At the most basic level, it provides file management and version control so that team members don’t write over each other’s changes, and only the newest versions of files are identified for use in the workspace. But that’s only the beginning. SCMs also give developers the ability to work concurrently on files (in branches that may or may not converge), to merge changes with other developers’ changes, to track and audit changes that were requested and made, to track bug-fix status and to perform releases. In some cases, SCMs may include other components to assist in managing a software process throughout the entire lifecycle. The difference between source control management systems and application lifecycle management (ALM) systems is really a matter of semantics and reflects the completeness of the tools provided in the system.
In spring 2007, Evans Data Corp. interviewed users of various source control management systems. The users were asked to rank the products they use across 16 different categories, on a scale ranging from “Excellent” to “Needs Improvement.” Only those IT managers and developers who actually used the products rated them, and they rated only the ones they use currently. Only products that achieved a certain threshold of rankings were included in the report. In addition, users were asked to rate the attributes as to their importance, so a truer evaluation could be made.
In studying these SCMs, it became clear that each product has its own story and its own appeal and drawbacks. Here are a few examples.
Borland’s StarTeam beat the competition in satisfying its users in several criteria, including file management, merge tracking, performing releases, speed of check-in/check-out, administrative overhead, bug tracking, artifact traceability and server usage. In addition, its users rated it within the top three in virtually all categories, giving it the greatest overall rating. However, StarTeam’s market share is low, Borland’s once-famous marketing muscle has withered, and the company’s stability is questionable after the recent spinout of its tools group.
Perforce, on the other hand, is a company that has been dedicated to and focused on producing an SCM throughout the company’s history. Perforce users valued the basic features of change management as well as the product’s security, which relies on LDAP or Active Directory for authentication and performance. This provides a very convenient means of authentication, though not so robust as encryption layered on. Perforce, founded by members of the Ingres team, is unusual in that it contains its own database in the software, rather than integrating with an external one. Perforce is used by small and large companies, though its major targets are companies with development team configurations of medium complexity.
IBM’s ClearCase is similar, in that it has a long history and presents some excellent capabilities; but like Perforce, the SCM originated during a time when geographically distributed teams were uncommon and so exhibits its main strengths in development environments that are centralized and tightly controlled. ClearCase’s pedigree comes from Rational and, before that, Pure Software—both companies well known for meticulous attention to quality. ClearCase’s proprietary database is embedded in the product; it supplies built-in baselines, though it also supports external databases. Not surprisingly, the product supports Universal Change Management (UCM), which was part of Rational’s Unified Process application lifecycle technology. ClearCase gets high marks from its users on file and change management as well as performing releases.
ClearCase, like PVCS and most SCMs in this study, supports atomic commits and changesets. These features are important in the effort to keep related files at the same version and maintaining consistent stability in the code repository. Essentially, changesets define related files—those files in which any changes will affect the others. Atomic commits view changesets as a discrete unit; they permit changed files to be checked in only if all files in the changeset are also checked in at the same time. They’re called atomic not for explosive reasons, but from the Greek meaning “uncuttable”—an important concept in transactional technology as well as SCMs&mash;and this is an important and expected function.
On the open-source side, Subversion is clearly a strong contender. It was ranked best by users for integration with other tools, value for price, scalability, support for geographically distributed teams, and branching or streams. All but the last of those attributes define top issues in open-source development. Whether or not your development team creates open-source software itself, these attributes have become more important today as teams become more collaborative and distributed.
Subversion was originally sponsored by Collabnet, and that company is still active in the development process, though it is officially housed at tigris.org. Subversion was devised to replace CVS, which at the time did not support atomic commits. Although the open-source community has addressed this issue in CVS, Subversion and other offerings are so much more advanced than CVS that it seems likely that CVS will fade away in time.
Whether Subversion will remain as popular as it is for open source may be dependent on IBM’s Jazz project. Jazz seeks to extend the Eclipse platform with all the collaborative tools that are found in traditional ALMs and SCMs—plus new ones. New functionality improves on previous approaches so that developers have better visibility into changes, bugs and team members’ actions. Jazz seeks to increase clarity and fluidity in the development process; and as an open-source SCM, it may well do for the SCM market what Eclipse did for IDEs. But not yet—IBM is still cooking it.
And Then There’s Microsoft
Of course, we could have no examination of this subject without talking about the SCM with the largest mindshare and its new big brother. Microsoft’s Visual SourceSafe received middle-of-the-pack ratings from its users, but it has, by far, the largest market share of any SCM. SourceSafe is targeted at small teams or even individuals; it is not meant for large, complex projects or those with geographically distributed teams. SourceSafe has basic version control and, of course, seamless integration with Visual Studio, the world’s most popular IDE.
Visual Studio Team is Microsoft’s newer and much more full featured ALM. Microsoft is trying to encourage teams that grow beyond the capabilities of SourceSafe to make a transition to Visual Studio Team and to the studio Team Foundation server. Visual Studio Team has several versions, including one for architects, one for developers, one for testers and a suite that combines them all.
We predict much success for Studio Team system. Not only does it enjoy Microsoft’s extensive market reach and dedication to producing high-quality tools, but also, when we asked developers (in a different survey) to identify the SCM that they would like to use if they could use any tool they wished, Visual Studio Team system was the product more users chose.
There are other SCMs on the market, but the products in this study represent the mainstream. Within the world of SCMs there is lots of variability in terms of cost, functionality, performance and security.
There are also the old and the new. Some of the most-used SCMs, like ClearCase, Perforce and PVCS, date back as far as the 1980s and are getting pretty long in the tooth. They were designed when centralized management and support over a LAN were cutting edge. None was intended for today’s complex projects, collaborative environment and geographically distributed teams. However, they are remarkably stable and well proven. Newer systems like Borland’s StarTeam, Microsoft’s Studio Team, Subversion and Jazz represent a next generation of SCMs built to scale to suit large projects and teams separated by geography and even culture.
Which type of SCM you need depends on your circumstances, budget, and the configuration of your development teams and projects.
For more information, see the Source Control Management - 2007 Rankings report, where you will also find plenty of other trend reports about the software development industry.
Janel Garvin is Founder of Evans Data Corp.