TFS Versus Open Source
As I’ve stated before, I haven’t had the opportunity to use TFS in my programming lifetime yet. One of the things that has struck me about it is shear cost of all the stuff that is needed. TFS requires a server OS, a SQL Server database, and “prefers” to run on an Active Directory domain. Even on the cheap that easily tops $5,000. There are certain open source products that can provide similar functionality, so for a small business is the extra cost worth it?
Before we answer that question, let’s compare the ”stacks.” For argument’s sake, let’s assume that the goal is to produce a high quality .NET based application, and that Visual Studio 2005 is the base product used in development1.
For the supplementary server based components, some flavor of Linux would satisfy. MySQL or PostgreSQL could serve as a database supporting BugZilla or Mantis for bug tracking. I have already spoken about SubVersion as an excellent Source Control Management system, but you could certainly also use CVS or whatever else strikes your fancy.
Back in Windows land NUnit or mbUnit can more than adequately run unit tests, and CruiseControl.Net combined with NAnt or msbuild can create a build system. Lastly, there is FxCop and nCover for code analysis and coverage (the former was even originally built by Microsoft!).
For standard development, there isn’t a whole let else you need for a project’s lifecycle. So, what does the $5-$15,000 price tag give you over open source?
For starters, TFS does wrap all of those things up into one central location - Visual Studio. In the OSS world, you’ll have to switch through multiple apps to get the same functionality. This can be annoying, and does take a little while to get everything set up properly2.
Additionally, TFS does make it easier for non-programmers to have more input in the project. In my experience, email has been shoehorned as the “great” management tool; tasks are assigned, documents are passed around, bugs are tracked, and so on. Needless to say, this tends to be catastrophic. TFS, combined with SharePoint does take great lengths to make this work better, for the non-developer.
My feelings right now are mixed - there are certain aspects of TFS that I really like, and some that I do not. I don’t think that it is possible to render final judgement on anything until I get a little more experience with it. So stay tuned!