I’ve been working closely with Microsoft Team Foundation Server on the project I’m currently on and one thing that I’ve come to really appreciate about it is how much it sucks. It’s truly remarkable the level of suckitude that ships with TFS and every day that goes by just increases my awestruckedness at its suckiness. I’m sure that’s completely intended too. Look, if TFS worked like a decent source control tool, we wouldn’t even know it existed. If it just blended into the background like a mature SCM tool, it would be really hard to sell it to tons and tons of unsuspecting corporations. By moving source control out in front of developers, even in front of development itself, Microsoft guarantees that people will talk about it not to mention buy support contracts.
I should have known not to trust the people who gave us Visual Source Safe 2005 but I had some hope that they had learned from their past mistakes. Of course, they still operate under the mistaken assumption that a source control tool should be tied closely to the Visual Studio IDE and the very idea of solutions and projects which is such an unbelievably crappy assumption that it in and of itself strikes awe in my puny little heart. Instead, source control should be just that, a version control system completely and totally independent of the type of file. One of the beauties of Subversion or Perforce is that files are files. On top of that, since those types of tools have no knowledge related to the file type, there’s no chance that they’ll decide what’s best for you when it comes to check-ins, check-outs and merges unlike TFS which consistently checks in the most ridiculous things. Not only that, say you want to change some code but you don’t have latest. TFS, like that doting old aunt that always gave you underwear for Christmas and farted at the most inopportune times, just knows what’s best for you and forces you to get latest before checking out the files. Really TFS? What if I don’t WANT latest? Jeebus.
TFS is like VSS took steroids but forgot to work out and just got fat and disgusting. Please, Microsoft, for the sake of those of us who think source control is a foundation of solid software development, pretty please got out of the source control business. You just don’t do it justice. Source control should be painless, invisible and lightweight. Anything else is a ridiculous waste of time.