I really like the TFS, I think that it is a great tool which we can use to gather all our needs, it also can be customized to the team's need, but I still have some doubts on it.
Why? OK, so Everything is possible with this cool tool, but it could be hard (believe me, very hard...) sometime.
Here are my thoughts, we can easily create new working item and customizing the project work flow as you need, but what if we need to change an existing project that we already work on it?
For example, I have current project which I found that in one of my working items, I need one more (little) field, to fill for example: description of bug, I can't just do the regular download-change-upload operation, this operation works only for new projects!
I must admit, that I didn't hear about that feature before and therefore I preferred not to change existing projects, which cause me to prevent changing misbehaved items, or thinking a lot before creating new work-item.
But here I found two command line operations witexport, witimport.
witexport - export a single work item file.
witimport - import work item file.
and now you can modify existing project templates.
Anther question I asked myself is why this cool thing came only with command line tools? why should I learn all this stuff? so I've searched a little and find some great articles talking about VSTS Customization Toolkit which give us graphically manage of the process templates. no more XML Based for changing/creating work-items, we can play with this tool to see what we are doing.
I didn't play with this yet, but I read some great posts, so it sounds cool, I'll test it and let you know what I am thinking about it.