SCM systems continue to evolve on many fronts, encompassing distributed teams, handling agile methodologies, embracing other ALM tools, and focusing on increasing development productivity. We spoke with 10 SCM and application life-cycle management vendors to determine what each of their tools provide for a developer, and how developers can determine which tool is best for their projects.
AccuRev: AccuRev Enterprise Edition
AccuRev’s tool can be integrated with other tools used by quality assurance teams and by testers, using AccuBridge for Atlassian JIRA, Bugzilla, HP Quality Center and IBM Rational ClearQuest. The solution creates change packages that can be grabbed by individual teams and then reviewed in their IDEs or issue tracker systems. After that, they can be provisioned for testing. It is a centralized version control system, but also allows developers to work offline.
“Most actions done in AccuRev Enterprise Edition—code modifications, change packages, etc.—can be done [if a developer is disconnected from the network], but some, like writing or committing the code changes, require a connection,” said Damon Poole, founder and CTO of AccuRev.
He added that AccuRev’s tool allows for an agile development environment, as it ensures the requirements set at the beginning of development are met in the deployment package.
“AccuRev compares the release plans with the actual content that is being delivered to make sure the right [portions of the product] are going to market,” Poole said. AccuRev defines SCM as software change and configuration management for all development process models.
Rocket Aldon: Aldon Software for Change Management
Daniel Magid, business area executive of Aldon, said the software’s definition of SCM includes three solutions: Aldon Community Manager, Aldon Lifecycle Manager and Aldon Deployment Manager.
“[SCM] will evolve as development [processes] evolve and as vendors automate more and more procedures in the solutions,” Magid said. He added that Aldon’s solutions will be moved out to interfaces for mobile devices as more IT professionals choose to monitor workflows from mobile devices.
Magid said the change managements tracked in Aldon Community Manager allow a team member to ensure that “things move through some defined process,” particularly in regulated industries, like those regulated by HIPAA or the FDA.
Borland has an SCM solution that also allows developers to work in a distributed fashion. StarTeam is a server-based product that has a central repository, but it allows team members to be geographically distributed, working on local copies of the codebase, according to product manager Joan Isenbarger.
StarTeam has components, she said, for files, defects, tasks and topics. Topics, she added, “is a tree of topics that link to a file,” somewhat like a wiki system, allowing collaboration to be tracked.
Isenbarger added that a centralized system allows customers in regulated industries to keep track of their files and processes in order to report back their progress to regulation agencies.
BitKeeper is a distributed version control system (DVCS), similar to the Git model.
“The distributed system allows a user to check in code, and monitor the history and workflow, when you’re connected to the network and when you’re disconnected,” said Larry McVoy, founder of BitMover.
He said the company didn’t intend to be in the SCM space, but because of his association with Linus Torvalds, the creator of the Linux Kernel, he ended up creating a version control system after which Torvalds modeled Git.
The check-in process in a decentralized system is what sets the two version control systems apart. McVoy said that in a centralized system, the only way to share portions of code from one developer to another on the same team is to publish the portion of code to the entire codebase, and then allow the new team member to take it. In a decentralized system, local version control database systems can be shared from team member to team member as other documents are shared throughout a company network.
McVoy believes that sharing individual changes to the main codebase in a central repository pollutes the code, whereas saving changes to local files and then connecting them to the main codebase at the end of the development process keeps the main codebase clean.
Codice: Plastic SCM
Codice Software CEO Pablo Santos said its product, Plastic SCM, also uses a distributed version control model, with branches and merging capabilities, allowing developers to keep the code clean in a different way.
“[Plastic SCM focuses] on the enterprise, in terms of security precautions, visibility and traceability, and advanced tools like GUIs and GUI factor support,” he said. “There is also support for parallel task-driven development with branches and a branch explorer to graphically visualize the history of a code line.
“Subversion basically said, ‘Don’t use [branches] because they are dangerous.’ Plastic doesn’t copy all the code files; the branches are very lightweight. Open-source DVCS with branches also offers a lightweight and fast experience.”
Additionally, Santos said merging branches back to the main codebase after team members edit and update the code for a week allows for greater traceability in the end.
“A week of check-ins on a branch [an individual team member’s workflow for a given period of time] can be merged later on, and then merge tracking allows [a manager or other developers] to view changes,” he said. “Branches in version control systems become a delivery mechanism: You can check in as often as you need because you aren’t working against the main line of code.”
Additionally, intermediate check-ins can be made into the version control system to determine what issues need to be turned into branches for debugging or other fixes to the code. Santos said that Plastic SCM integrates with a variety of tools, including Eclipse, JIRA, Mantis, Rally’s issue tracker, VersionOne and Visual Studio.
The future of SCM, in Santos’ mind, is in DVCS. “DVCS is changing everything; the version control system has adapted to how people work. You can make changes to a DVCS without being plugged into a [private network],” he said.
He agreed with other software providers that the future is also in integration with other tools in the space. He added that the version control systems also need to understand source code, not just serve as a repository.
CollabNet: Subversion and Subversion Edge
Richard Murray, senior vice president of worldwide engineering, operations and support at CollabNet, said SCM is often the core of a software development management strategy and that many companies “build out from SCM solutions” to add-on products like Team Forge and other management systems that allow for “traceability across the requirements, design documents and discussions.”
“CollabNet always viewed digital assets as part of SCM,” Murray said, referring to all the graphics, documents and wiki workspaces that ensure that the code design is following the requirements or user stories set forth at the beginning of the development process.
“Subversion and Subversion Edge use a centralized version control [system], a governable repository. Subversion controls the access to the code with basic audit features, but TeamForge adds more,” said he said.
TeamForge is part of CollabNet’s software development management tool suite, available at different price points for small, medium and large businesses. Subversion Edge is a free open-source tool, which includes the Apache Web Server, Subversion Server 1.6 and ViewVC for repository browsing. All of this is accessible via a Web-based, secure console. Commercial licenses are also available for the tool.
GitHub, the SCM solution created for developers by developers, is a Web application used to share Git repositories, user stories and share collaboration, according to Tom Preston-Werner, GitHub’s cofounder.
“Git wasn’t as powerful as it could be; as Web developers, we know it could be better, easier to use,” he said.
GitHub has a built-in wiki system, which allows developers to manage teams of people working on the same codebase and also manage their communications.
“GitHub will package features at will; we don’t call it ALM. We create the tools people need to do their jobs,” said Preston-Werner. He added that version control systems, which monitor when code is changed, show who changed it and what versions have been deployed, allow developers to reduce time to market and produce more iterations in a short period of time.
To date, Preston-Werner said he sees the trend coming in distributed version control systems, such as the Git repository and the GitHub managing Web portal solution.
GitHub currently has 680,000 users and hosts 2 million code repositories, with some notable companies like Facebook and Twitter keeping their open-source code on GitHub exclusively.
“GitHub makes it easier to share code. People do it naturally,” Preston-Werner said.
Perforce’s eponymous VCS system is centralized and has management capabilities built around it. Randy DeFauw, Perforce’s technical marketing manager, said developers want their tools to “play nicely with one another,” and often they want one that also stores their digital assets.
Perforce’s system is built for an agile development workflow, the company claimed, with a variety of plug-ins and integrations for Eclipse, Visual Studio and its own defect tracking system, among other features. These features add a layer to the VCS, giving management a way to track and audit the software development process from requirements to development and deployment.
This year, Perforce will also introduce a new technology that offers a local or distributed solution with integration to the central repository.
“The gaming industry [stores graphics with their code because] the products are a lot more than source code; the artwork, animation and graphics are a core part of the code and need to be included in the SCM repository,” DeFauw said.
Seapine: Surround SCM
Surround SCM, Seapine’s SCM solution, focuses on quality-critical companies that are subject to regulations, according to Jeff Amfahr, Seapine’s director of product management.
Regulated companies require, as other vendors explained, an auditable tracking system to monitor where the code has been changed, to verify that required security features have been added, and to monitor which employees have access to the codebase.
Additionally, Amfahr said, security scripts are built into Seapine’s suite of tools. This allows vendors to have further evidence, in the event that they should be audited, that the proper security precautions have been taken throughout the software development process.
He said that in addition to the growing trend for integration of tools, he has also seen a trend in other team members, beyond developers, needing to look at the code repository and interact with the code. Graphic designers, he said, often need to add their digital assets to the codebase files, which is where SCM solutions come in.