Today's businesses run on software. And like it or not, that software is getting
more complex. More moving parts, more frequent changes and more distributed developers.
As a result, understanding, managing and maintaining an accurate understanding
of exactly what source code, components, services and other software parts are
used to deliver your production business services and applications is more critical
than ever before.
That's why, as I mentioned in my last column, software configuration management
(SCM) is an important part of good IT management and governance. SCM solutions
help organizations keep track of different versions of software or source code.
But they can also fulfill important governance, record-keeping and auditing
functions as well. As with most software infrastructure components, organizations
have a range of options when it comes to SCM-they can invest in everything from
enterprise-class SCM solutions such as Rational ClearCase from IBM to free open
source solutions such as Subversion. In between are a wide range of SCM vendors,
including Perforce, AccuRev, Microsoft and many more.
However, even organizations that have already invested in commercial SCM products
have begun to consider using open source SCM solutions in addition (and sometimes
as a replacement). Frequently this happens when organizations decide to use
open source SCM solutions for smaller projects or projects where upgrading their
licenses or adding developers to the main SCM solution isn't cost effective.
While this can be a very cost effective solution, as I'll explore in this column,
it isn't always.
Using open source software configuration management (SCM) is an often an easy
choice in the short term that can turn into an expensive decision in the long
term. While open source SCM is an undeniable a great option for certain companies
and certain types of projects, it can also result in unplanned customization,
extension and the inability to easy and effectively fit with a company's software
development process and needs. Organizations considering open source SCM solutions
to meet tactical or strategic project needs should pause and consider the implications
of such solutions on their development process efficiency and effectiveness.
The important consideration when using open source tools for a development
effort is to realize that if the scope of the project goes beyond the initial
scope, or the project grows or changes into a significantly project (as many
development efforts have been known to do) there are a number of issues that
organizations should consider. I believe that organizations evaluating open
source SCM tools should take the time to look beyond the relative simplicity
and convenience of an open source SCM tool and make sure to consider the potential
overhead and administrative requirements of such products when they become part
of a larger development effort down the road.
There are a number of elements an organization should consider to understand
the implications of an open source SCM decision. However, for illustrative purposes,
I'll point out two issues that organization may want to consider including in
their SCM evaluation process when here, regardless of whether they're choosing
open source or commercial SCM solutions.