Obstacles to an enterprise DVCS
On 26 January 2010 I gave a presentation to Software GR. The talk was an overview of
several trends that we have seen in the version control tools market over the
last 40 years. I often like to follow a talk like this by publishing the same
content here on my blog in the form of a complete article. This time I think
I'll just eliminate a lot of the tldr problem
and summarize the highlights:
- The two big trends in version
control today are Integration and Decentralization.
- Integration is driven by ALM.
It is the desire to have all tools used by a development team fully
- Decentralization is driven by
the recent wave of DVCS tools like Git and Mercurial. They offer
compelling benefits such as performance, a different kind of scalability,
and more flexible workflows.
- The ALM trend is happening in
the enterprise market. Enterprises want everything integrated with
everything else, and they want everything to support their ability to
- The DVCS trend is happening in
the open source community. Born of the legendary cat fight between
BitKeeper and the Linux kernel developers, Git and Mercurial are maturing
and gathering momentum at a remarkable rate.
- These two trends are going to
clash in a big way. SourceGear's graphic designer drew me a nice diagram
to depict this.
- The two trends cannot stay
separate. Each one has advantages which are too important for the other community
- But the two trends and their
respective communities are a bit like oil and water.
- Enterprises want tools that
constrain. The open source community wants tools that empower.
- The benefits of a DVCS would
be diluted by integrating it with a bunch of other tools that are highly
- Enterprises need a least a
little centralization for things like user administration. In their eyes,
complete decentralization without accountability and auditing features is
- Even as enterprise attitudes
about open source are changing, that change is happening slowly, and the
GPL (used by both Git and Mercurial) is still considered the scariest
- So Git and Mercurial are not even
close to being enterprise-ready. Similarly, none of the leading
enterprise ALM tools are even close to being a DVCS.
- I believe that the main enterprise
ALM providers (IBM/Rational, Microsoft, Serena and Borland) will all
attempt to add DVCS features to their products. At least two of these
companies (IBM/Rational, in a talk by Jean-Michel Lemieux at the Rational
Conference in 2009, and Microsoft)
have already made public remarks about a desire to move in that direction.
- And I predict that they will
all fail. It is impossible to turn any of these systems into a true DVCS
without a nearly complete rewrite. The D in DVCS is not a feature which
can be added.
- But all of them will do it
anyway, by making compromises. They will try to add "just enough"
Decentralization. Some of their customers will find the results to be
- Meanwhile, the true DVCS tools
will continue to move forward, but their progress toward credible ALM will
be slow. Enterprise-level integration is grunge work, not the kind of coding
that hackers do as a labor of love. Nobody does this stuff without
- So these two trends will
continue to be distinct for a while, but the pressure and tension between
them will remain, and the areas of overlap are going to continue getting