There’s no perfect software. If it would exist, we’d never build a newer one.
There’s also software that should never be built from the beginning. TFS is one of those.
I’ve used it for the past 3 months, and it was way far more than just an unpleasant experience. I have previously worked with VSS, TFS, and Mercurial. I am somewhat biased, yet towards proper work experience and quality of tools. These are the issues that I have had with this software.
1. When getting latest of the project, the UI doesn’t show what’s coming down. In order to be able to see it, one has to go through “View History” on solution, which shows changes on a solution file only. After than, and extra step is to remove solution (.sln) file from the path and refresh to see the log. Possibly there’s another way, but boy this is painful.
2. Changed password on TFS server caused VS.NET 2010 to freeze.
3. Renamed and committed file was reported as missing on a following commitment.
4. File marked as checked-out despite undoing changes (this is one of the biggest issues I’ve had with TFS. The notion of checking file out is so native to old and ugly VSS, that it just felt like going years back into dark ages).
5. Online/Offline explicit concept – horrible. Great if you work in the office only and never work out of office. But when you do, it just becomes an annoyance.
6. Going online/offline requires to re-enter credentials. Really? Why not to keep it optional? Why not to allow credential saving? The tool is supposed to work for you, not against you. Big deal you say. Well, when you work with external (to organization) TFS server, and have to enter domain_name\user_name and password that is for security purposes generated as an insanely sequence of random characters – it is painful.
7. Remember how VSS one day would just loose your commits? Same feeling you get when TFS doesn’t detect changes done “offline” and throwing this message at you (yes, laundry services where required at that moment).
8. Non intuitive UI (some commands are in context menu, some in toolbar menu, like Exclude file). You can’t call VS.NET 2010 interface “a lick-able” UI, though TFS is complete fiasco on that. A good example – select all files for commit (highlight all files, and click spacebar).
9. Merging conflicts is cumbersome (non-intuitive UI, file marked as in conflict, and just opening it resolved it, believe it or not!?!).
10. Bulk checkout when unneeded – edited ASCX file, but code behind AND designer files were “checked out” and committed… old good VSS days bubble up in my head.
11. Explorer based visualization doesn’t work when you are offline at all, something that other tools providing.
12. Undo Pending Checkins not always actually does what it claims to do… Surprise, surprise.
13. Can’t search comments history. Wow.
I can go on and on, but at this point it’s enough. As for our group – we won’t utilize TFS after this project. As for myself, I will not touch this thing that can’t even do one thing, but do it well. Yes, it’s coming from MS, yes it can manage project, items, etc. But if it can’t properly serve the sole purpose it was created for, what’s good in it then? The good part - there are plenty of alternatives (SVN, Hg, Git, etc.).
14. Today it just blew in my face when I tried to commit changes. Apparently, the database behind the monster refused to cooperate with the message “Database is full. Contact your administrator”. Wow, for the whole time I’ve used Subversion never I encountered a message/issue like this one. Great job, TFS. Not to mention wasted time till the issue was fixed by system administrator…