Back in January of 2007, we purchased SourceGear Vault and Dragnet (later, Fortress) as a replacement for Microsoft Visual SourceSafe and Serena TeamTrack. This has been a fantastic experience, a great success, and we have never looked back! My name is Mark Caldwell, and at the time of this writing, I hold the position of Software Engineering Manager for Interior Specialists, Inc. Below is a summary of why we made that move.
Our story actually begins in the middle of 2006 when, as a lead developer, I started getting reports from other development team members that they were getting errors while trying to check-in or check-out code from the repository. We quickly realized that our SourceSafe database (their term for repository) was corrupt. After spending several hours trying to figure out what it really menat; what could have caused it; and what to do about it now; we finally made the hard decision to restore a backup of the hard drive from the previous day and then try to remember what files had been modified in that time and re-apply the changes. Unfortunately that backup also reported corruption in the analysis tool and we had to go back a couple more days. UGH!
After recovering from that problem, we decided it was time to upgrade to the 2005 version of SourceSafe (we were still running 6.0) and hoped that the upgrade would make our troubles go away. But, a few months later, the entire scenario repeated itself, so I began looking for a replacement. One of the things that I uncovered in my research was that "[one of the] most common reasons for data corruption [is] general network problems, for example, an unreliable remote connection causing Visual SourceSafe to drop communication midway through a file check-in." (see Best Practices for Preventing Data Corruption
on the Microsoft web site. As it turns out, we had a couple of contract developers who were working from home with VPN connections to our SourceSafe, and I think one of them was also working on a wireless connection in their home...high chance of a dropped connection, especially with the horrendously slow performance of SourceSafe across the Net. I believe this was the cause of our problems, and as I put together my list of required features in our next source code management system, reliability in handling dropped connections topped the list (this feature is known as "atomic commits").
In my opinion, when you're talking about a system being responsible for handling your source code, reliability is number one, two, three, four and five on the list of top priorities. Any other feature is far below that. Once we got past that, a few of the other criteria that we compared were: reliable branching and merging capability; cost (not just price to purchase but also lost productivity due to learning curve, installation/configuration and maintenance); reputation; availability of support; and IDE integration. I personally analyzed five alternatives (Visual Studio Team System with Team Foundation Server, Concurrent Version System (a.k.a. CVS), Subversion, Serena Version Manager, and SourceGear Vault). Vault (and now Fortress) was the only one that met all of of our criteria. Icing on the cake was that Vault had a tool to import all of our SourceSafe content with history (HOORAY!!!).
As I mentioned at the beginning we also purchased Dragnet which was the Item Tracking system before it got merged into Fortress. The primary reason for this was that we found Serena TeamTrack awkward to use; whereas Dragnet was simple and far more intuitive. And we were able to purchase our Dragnet licenses and maintenance for thousands of dollars less than we were about to be billed for our next year of maintenance for TeamTrack. With a little creative SQL querying, and the help of the Dragnet API, I was able to write a simple Import tool of our own in order to load Dragnet with the items and notes from TeamTrack.
Then, a short while later, Fortress (the merging of Vault and Dragnet into a unified system) was released and we upgraded to it. This has been another fantastic experience for us, especially gaining the ability to link code check-ins to tracking Items. It is a huge benefit to us to be able to look at the details of an item and know what code was modified in order to address it. And the reverse has been even more important...imagine looking at a file's DIFF or history and wondering, "why did we change THAT?". Now I can easily find the item that triggered the change and I am a long way down the road to solving the mystery.
One more thing I need to mention is the fantastic support available here on the SourceGear Support Forum. We have only had one or two challenges (usually of our own making) and when I turn here for support, I get quick, reliable, friendly answers. I have also used the forum to request new features, and inquire about best practices or other recommendations when we are improving our process and procedures. Every time I get solid answers. This is far superior support to most, if not all, other software vendors I have dealt with. SourceGear definitely shines in this area!
Finally, I have to give a ton of credit and a big thank-you to Eric Sink and his article series on Source Control HOWTO
which I ask all of my team to read. Thanks Eric for the articles (looking forward to your new book) and for making a great company that makes a great set of products!