Tip #1: Choose Your Team Project Names Carefully
TFS has never allowed you to rename team projects once they have been created. Since it is also tedious and time consuming to export and import a team project you should give the name you give a team project some due consideration. Once you’ve chosen the name you’re ready to live with double check it for spelling or any other errors before hitting the save button. You’ll save yourself a moment of frustration every time you look at the project if you follow this trick.
Tip #2: Use Custom Groups to Manage Permissions
If you try to manage permissions on an individual basis you will be quickly overwhelmed unless you have a team of one. Also, the out of the box TFS groups are not typically granular enough for a development team. Create your own custom groups to manage the reality of how your teams are divided. It will save you time and simplify the process of adding new users to TFS.
Tip #3: Use One Team Project Per Product
I used to try to manage multiple products with Areas within a single team project in TFS. This doesn’t scale well. Each product should have its own team project. As long as all team projects are in the same collection you can access source code for any of them.
Tip #4: TFS Isn’t Good as a Time Card
If you need to track effort hours on a daily basis TFS doesn’t offer a good way of doing that. I’ve experimented with various techniques of querying the TFS database and data warehouse only to be foiled at every turn. I’ve turned to third party vendors to solve this problem for me and avoid the headache of constantly pounding my head into this wall.
Tip #5: Enable Changeset Comments Policy
Developers universally hate this policy when you first turn it on. They will be very vocal about it for a week or two and then it will turn into habit. If you pair this with a periodic quality check on the content of comments being entered (prevent the “checked it in” comment syndrome) you’ll end up with some valuable information. This will save time later on when trying to discern the purpose of a particularly arcane bit of code that was checked in at some wee hour of the morning.
Question: What TFS tricks have you learned that saved your sanity?