Version Control: The Future is Adaptive
The Version Control space is undergoing a renaissance right now thanks to the increasing popularity of Distributed Version Control Systems (DVCS) such as Arch, Bazaar, DARCS, Git, Mercurial, Monotone and SVK. Many really smart people believe these systems have the potential to dramatically change how software is built and I agree with them! But which ones actually will and why? I think the answer to that lies in a closer examination of the criteria teams use to adopt collaboration tools.
Beyond market acceptance, there are 6 main criteria I consider when evaluating collaboration tools:
- Reliability
- Adaptability
- Usability
- Extensibility
- Integration
- Administration (including Total Cost of Ownership)
The order given above is the one I use for version control tools - different collaboration tool categories deserve different orders. Every team is different so the criteria they consider may not be identical, but the ones above are those I’d expect every team to include in their evaluations.
While few people would be surprised to see Reliability at the top, few systems do a really good job of delivering the features that implies, so I plan to return to Reliability in another post. Today though, I want to explain why I think Adaptability is #2, even if that makes me “dumb and stupid” in the eyes of one of my heroes. 
If you haven’t seen it already, I recommend watching the Google video of Linus Torvalds talk about Git. He makes a lot of excellent points about the advantages of Distributed VCS. Unfortunately in my mind, he also suggests that anyone using Central VCS tools, particularly CVS and Subversion, is dumb and stupid. I strongly disagree! The future of version control is neither Central nor Distributed - it’s Adaptive. It’s all comes down to the numbers …
(more…)
Syndicated 2007-06-21 04:52:13 from Agile Teams, Open Software, Passionate Users