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.\n\nA 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\u2019t write over each other\u2019s changes, and only the newest versions of files are identified for use in the workspace. But that\u2019s 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\u2019 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.\n\nIn 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 \u201cExcellent\u201d to \u201cNeeds Improvement.\u201d 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. \n\nIn studying these SCMs, it became clear that each product has its own story and its own appeal and drawbacks. Here are a few examples. \n\nProprietary SCMs\nBorland\u2019s 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\u2019s market share is low, Borland\u2019s once-famous marketing muscle has withered, and the company\u2019s stability is questionable after the recent spinout of its tools group. \n\nPerforce, on the other hand, is a company that has been dedicated to and focused on producing an SCM throughout the company\u2019s history. Perforce users valued the basic features of change management as well as the product\u2019s 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. \n\nIBM\u2019s 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\u2019s pedigree comes from Rational and, before that, Pure Software\u2014both companies well known for meticulous attention to quality. ClearCase\u2019s 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\u2019s Unified Process application lifecycle technology. ClearCase gets high marks from its users on file and change management as well as performing releases. \n\nClearCase, 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\u2014those 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\u2019re called atomic not for explosive reasons, but from the Greek meaning \u201cuncuttable\u201d\u2014an important concept in transactional technology as well as SCMs&mash;and this is an important and expected function. \n\nOpen-Source SCMs\nOn 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. \n\nWhether Subversion will remain as popular as it is for open source may be dependent on IBM\u2019s Jazz project. Jazz seeks to extend the Eclipse platform with all the collaborative tools that are found in traditional ALMs and SCMs\u2014plus new ones. New functionality improves on previous approaches so that developers have better visibility into changes, bugs and team members\u2019 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\u2014IBM is still cooking it. \n\nAnd Then There\u2019s Microsoft\nOf course, we could have no examination of this subject without talking about the SCM with the largest mindshare and its new big brother. Microsoft\u2019s 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\u2019s most popular IDE. \n\nVisual Studio Team is Microsoft\u2019s 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. \n\nWe predict much success for Studio Team system. Not only does it enjoy Microsoft\u2019s 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. \n\nThere 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. \n\nThere 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\u2019s complex projects, collaborative environment and geographically distributed teams. However, they are remarkably stable and well proven. Newer systems like Borland\u2019s StarTeam, Microsoft\u2019s 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. \n\nWhich type of SCM you need depends on your circumstances, budget, and the configuration of your development teams and projects. \n\nFor 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. \n\nJanel Garvin is Founder of Evans Data Corp.