News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 
Download Current Issue
ISSUE 3/15/2010 PDF

Need Back Issues?
DOWNLOAD HERE

Receive the print Edition?


 
blogs tab
ASP.NET MVC 2 Ships
ASP.NET MVC 2 has shipped.
03/12/2010 10:26 AM EST

Microsoft plans 'open' Silverlight analytics framework
Microsoft is going to announce a multipurpose analytics framework for Silverlight at MIX.
03/11/2010 09:51 AM EST

About CSS processing
Two sites that lead to a startling CSS conclusion.
03/10/2010 02:29 AM EST

 

Events calendar tab
3/14/2010 to 3/18/2010
Seattle, Wa.
SHARE

3/15/2010 to 3/18/2010
Santa Clara, Calif.
TechWeb

3/15/2010 to 3/17/2010
Las Vegas
Microsoft

3/16/2010 to 3/19/2010
Las Vegas
Penton Media

3/17/2010 to 3/19/2010
Las Vegas
TechTarget


 
Most Read Latest News Blog Resources

Why Commercial SCM Tools Are Better Than Open-Source Tools




December 15, 2005 — 
Your organization has a core competency that has a direct bearing on your competitive advantage. The more of your time you can spend leveraging your core competency—whether it is financial transactions, network protocols or something else—the more you can enhance your competitive advantage. Therefore, it makes sense to delegate as much unrelated work as possible.

Delegation can come in many forms, such as third-party libraries, outsourced development and automation. When considering what to delegate, many organizations overlook a huge opportunity—software configuration management (SCM).

According to the analyst firm Ovum, most professional developers are still using homegrown SCM tools. Homegrown tools are either built entirely from scratch or more commonly built atop one of the free version-control tools such as CVS or Subversion.

Unlike major open-source projects such as Linux, which receives corporate support in the form of salaried engineers from such companies as IBM and Red Hat, open-source SCM projects receive very little corporate sponsorship. As a result, features and innovation in the open-source SCM tools lag far behind the commercial SCM tools.

Some of the major features that are available only in the commercial tools are refactoring (rename operations that preserve history and merge operations), issue-based change packages, tight integration with issue tracking, stream-based development, caching, replication, full support for mixed Unix and Windows environments, and process workflow. In addition to these examples, there are literally hundreds of smaller features that are available only in the commercial tools.

CVS, introduced in 1986 and now the most popular open-source SCM tool, is missing not only the features above, but also some of the more basic features, such as atomic transactions, fast branching, rename tracking and merge tracking.

In 2000, a group of open-source developers (with the help of a commercial sponsor, CollabNet), set out to address this deficit by creating a tool from scratch, called Subversion. Their goals and road map do not include the more advanced capabilities listed earlier. In the five years since inception, they have accomplished only the first two of their four goals, atomic transactions and fast branching. It comes as no surprise that rename tracking and merge tracking are still missing from Subversion, as those are both difficult SCM problems that are typically either part of the original architecture or never implemented (as is the case with CVS).

Open-source SCM tools are written by open-source developers primarily to meet their own needs. This leaves out key constituencies such as release engineers, QA and management. The commercial SCM tools need to appeal to all constituencies and thus offer a more balanced set of features and benefits for the whole organization.

Since most organizations require far more than what the free tools offer, the organization ends up spending a large amount of time doing manually what commercial SCM tools automate. A common result is the creation of a homegrown tool via automation of some or all of this work via scripts using the open-source tools as a starting point.

Reinventing the Wheel
Creation and maintenance of the homegrown SCM tool soon becomes a full-time job. Many organizations have small development groups dedicated to extending and maintaining the homegrown tool. As a case in point, CVS started out as a homegrown tool developed to automate common tasks when using RCS, an open-source SCM tool introduced in 1982.

It is certainly true that any SCM tool will require customization to fit your environment. However, there are fewer differences between the development process employed at different shops than you might imagine. I’ve looked at the development process at hundreds of shops, ranging from a single-person shop all the way up to 10,000-user shops, including ISVs, financial institutions, networking vendors and governmental organizations. The bottom line is that source code moves from a state of immaturity to a state of maturity through a set of stages and integration points that is similar to an organization chart.

Creating an SCM tool that provides a simple world view is hard; customizing the exact set of stages and integration points is relatively simple. Therefore, the amount of effort required to customize a commercial SCM tool to fit your needs is a fraction of what is required to build and maintain the equivalent homegrown tool.

Homegrown tools tend to be built to satisfy current business requirements, and thus, they lack the flexibility to adapt quickly to changing business needs. Reconfiguring usually means partial rewrites or adding new functionality. The need for SCM vendors to meet the requirements of many organizations requires them to design SCM tools that easily adapt to a wide range of business requirements via customization. When it comes time to change your process, it is far easier to change customizations in a commercial SCM tool than it is to rewrite or add new functionality to a homegrown SCM tool.

One large software application company that I’ve been involved with had been doing development in a very compartmentalized way whereby each group used its own repository and different tools were used by each group. Shared code was copied around, and changes were merged together manually. Merging changes from a maintenance release to a new release took three months. The company decided to change its process to using just one repository so that it could benefit from tool-assisted merging. At the same time, it was acquiring new companies and had a need to move to a more distributed development model. Instead of creating a homegrown tool to solve these issues, it decided to purchase a commercial SCM tool. As a result, it can now merge changes from one release to another in days instead of months.

Another large company created a homegrown tool on top of RCS 10 years ago. That tool was considered too costly to extend and maintain, and three years ago, the company decided to create a new homegrown tool on top of CVS. At this point, it has a group of 14 engineers (in a development group of 300) dedicated to extending and maintaining the tool, and has finally decided to move to a commercial SCM tool. The company expects to be able to redirect the majority of those 14 engineers from maintaining the homegrown tool to concentrating on process improvement efforts.

Don’t Get Left Behind
Anybody can realize that faster hardware will increase productivity, but most companies have not yet made the leap to a commercial SCM tool. That means there is an opportunity for companies to gain competitive advantage by adopting a commercial SCM tool.

Commercial SCM tools are rapidly gaining in popularity. In 1994, according to IDC, just US$173 million was spent on commercial SCM tools. In 2004, $1,062 million was spent, with double-digit growth in both 2003 and 2004. Looking forward, IDC expects this growth to continue.

With this growth has come an increase in innovation, both from the established vendors and from new entrants in the market. In short, this is a great time to consider stepping up to a commercial SCM tool.

Damon Poole is the CTO of AccuRev, which sells commercial software configuration management software that competes against open-source tools like CVS and Subversion.


Share this link: http://www.sdtimes.com/link/29026
 

Add comment


Name*
Email*  
Country     


  • Comment
  • Preview
Loading