I believe strongly that you need great tools to support a great development process. There are a few core tools every team should have: work item / defect tracking system, automated build system, developer testing tools (including unit testing tools), and source code control. A lot of places I go it seems that source code control is the only tool that most teams have in place. And I find it baffling that in 2006 most people are reporting that Visual SourceSafe is their SCC tool. Look at these stats: http://www.codinghorror.com/blog/archives/000660.html.
Jeff Atwood makes some good points in that post about why you should avoid SourceSafe. The biggies are the illusion of safety and the bad habits that SourceSafe encourages. SourceSafe is still hanging around because Microsoft had to do something withit. The SCC with Team System ain’t free and people have gotten used to havinga free source code control system from Microsoft. I fully expect that we’llsee a lite version of Team System SCC come out to replace SourceSafe (with a wizardto suck in your VSS data). But of course it will come after the first few bigpushes to get folks to buy the full Team System line (including Team Foundation Server). If a VSTS SCC Lite came out now, I think too many people would just opt for that insteadof going for the full deal with work item tracking, automated builds, reporting, andall that great integration.
I recommend one of three products if you are ready to move away from SourceSafe oryou are not using a SCC system at all (and I’ve seen places using informal processeslike network shares and verbally “checking in” and “checking out” code – seriously!):
- Visual Studio Team System – if you have the budget for it, the integration with the other parts of VSTS is awesome. The only thing I’ve found missing is edit-merge-commit functionality. I had heard that it was coming – I haven’t checked to see if it’s there now. Bear in mind that the cost of Team System includes so much more than just source code control.
- SourceGear Vault – this is what I use now and I absolutely LOVE IT. It costs a bit per developer but it is pretty much hassle-free. It works perfectly over HTTP / HTTPS so it’s awesome for a distributed development team.
- Subversion – I have the least experience with Subversion but I have been very pleased with it when I’ve used it. I have used the TortoiseSVN client with it and it’s nice. If you don’t have the budget for Team System or Vault, you’ll need to have a “time budget” for Subversion. I haven’t set it up myself but I’ve been told it’s not quite as painless as Vault.
If you’ve got some money and want a full suite of development process tools, get TeamSystem. If you’ve got some money and only need source code control, look atVault. If you don’t have $$$, look at Subversion.
Oh, and if you “only need source code control”, it better be because you already haveadequate work item tracking, automated build, and developer testing tools. Withso many great tools available, why would you cripple your dev process?