I was discussing with one of our TFS specialists the costs of going down the route of Visual Studio Team System and Team Foundation Server – specifically in the context of comparing it with purchasing Visual SourceSafe (VSS). This conversation was kicked off by the poll I did in the UK MSDN Flash on source control system usage. The results were pretty interesting with 37% using Microsoft products (21% using SourceSafe, 16% Team System) and 32% Subversion.
I wanted to explore the SourceSafe vs Team System a little further and share some interesting numbers I found out during that discussion. But first a confession…
SourceSafe and I fell out a long time back
I want to be very open about my personal view of SourceSafe. I don’t trust it. I don’t trust it at all. Not for a moment. Why? Many years back SourceSafe corrupted the files on a large project I was working on. This is not something you ever forget OR ever forgive. That said, I know there are an amazing number of companies and more importantly developers happily using SourceSafe. They tell me it is fine for them, it does what they need well, it is easy to use, they have no issues etc. But … I was burnt badly by SourceSafe, so for me SourceSafe is just not an option, ever. I do have other issues and concerns with SourceSafe but as it happens Mike Hadlow sums them up rather nicely (copied here for simplicity – tx Mike):
- Commits are not atomic. If a file is changed you have no way of linking a set of file changes that implement a particular feature or fix a bug.
- Lacks usable branching support.
- It doesn’t keep a history of file renames. If you rename a file and than get a version previous to the rename, the file will have the new name.
- Permanently deleting a file also deletes its history. This means that versions of the software prior to the deletion are not valid.
- Requires a file share to work and does not perform well over slow connections.
- Randomly corrupts its own database.
- Many other issues, detailed here.
In contrast Team Foundation Server (TFS) is a very fine, modern source control system (and a lot more) that we use very successfully on our own internal projects. Check out this post on TFS adoption at Microsoft. Yep, over 14000 users, 43 million files and 2500 projects. I think we can safely say it works!
BUT … is TFS prohibitively expensive given it delivers much more in the box than just source control? The expectation of companies I meet is that it will cost a lot more. Lets look at the numbers for “small” and “larger” development teams.
Small Development Teams: 1 to 5 users
It turns out that the ‘cheapest’ way to get a copy of TFS is to buy a copy of Team Developer. Purchased without an MSDN subscription, this will come in at somewhere in the region of £3,350. The Team Developer license allows a copy of TFS Workgroup Edition to be installed, which can then be used by up to a total of 5 users. This means that 4 additional users in effect get TFS access for free. The cost is therefore:
- Two person team: in the region of £1,675 per person
- Five person team: in the region of £670 per person
- In comparison, SourceSafe costs about £340 per person.
TFS is approximately double the cost of SourceSafe for a five man team. However that extra money buys you peace of mind (see my experiences above), a more capable source control system and all of the benefits of TFS:
- work item tracking
- enterprise source control and a portal
- Team Build which allows things like Unit Testing, Code Coverage Testing and Code Analytics to be run as part of the build process.
Larger Development Teams: 6 users and above
What happens when you go above five users? At that point you need to buy a TFS License as the Workgroup Edition is limited to 5 users. All of the users (including the original four ‘free users’) also need a TFS client access license. A TFS Server license will cost somewhere in the region of £1,850. TFS CALs are in the region of £485. Which means:
- Twenty person team: the ‘basic’ TFS Solution (i.e TFS server plus CALs) is in the region of £11,500 (£575 per person)
- In comparison a SourceSafe solution is in the region of £6,800.
Ultimately TFS is more expensive than SourceSafe but I don’t think it is prohibitively so. IMHO with TFS the extra spend is easy to justify as it gets you a far better source control system plus a lot more to help teams deliver great solutions.
But what about Subversion?
I can hear some of you now saying “Interesting Eric, but … Subversion is free?”. Absolutely true but remember that Subversion is ‘just’ a Source Control solution, where as TFS manages the whole of the development lifecycle (or ALM - Application Lifecycle Management). With Subversion you would need to “stitch” together a number of different tools (either commercial or free) to create a level of functionality equivalent to TFS. Fun to do but that takes time and effort that simply isn’t needed with TFS.