I've been using Team Foundation Server 2005 for the past 4 months or so on a winforms .net development project at work. It's a fantastic platform for managing source code and versioning, as well as managing tasks and bugs... and today I found that it is even more customisable than I ever imagined.
I wanted to add a task for a team mate to do, which didn't fit into any of the standard Discipline types (Architecture/ Development/ Release Management/ etc)... it's a documentation task (yup, I'm lucky enough to have somebody else handle that stuff most of the time :).
A little googling and I found this post (thanks Jimmy Li for the instructions - bottom post) detailing how to do it. For my own records, the process was as follows:
- In Visual Studio 2005, go to Team > Team Foundation Server Settings > Process Template Manager and download the template you wish to modify
- Find the folder you downloaded, and modify the type definition XML file under the folder WorkItem Tracking\TypeDefinitions. In my case the template i changed was Task.xml, and the change I made was to add the following line under the node < FIELD name="Discipline"... / >:
< LISTITEM value="Documentation">
Note: Don't copy the above line - i've added spaces so that it can display in the browser without being interpreted as xml - At this point, you can upload the new process template to the server, whereafter future projects will have the new field (not sure where to upload to though), or...
- To add the new process template to an existing project, run the witimport tool on your local machine, from the following directory:
\Program Files\Microsoft Visual Studio 8\Common7\IDE\witimport.exe
The syntax for this tool is as follows:
witimport /f filename /t tfs /p teamproject [/v] [/e encodingname]
so I ran something like the following command:
C:\Program Files\Microsoft Visual Studio 8\Common7\IDE>witimport /f /temp/task.xml /t dev-teamfound /p hcbs_viii
Note: To get an explanation of the syntax, just type witimport without any parameters - All tasks created from then on in the hcbs_viii project contain the new "Development" discipline... phew, now i can assign those tasks to somebody else :)
Looking over that Tasks.xml template file, it seems alot more than just Disciplines can be changed... In fact it seems like a whole new template can be created to match the requirements of your team and your project. I always knew TFS was a powerful tool, but now that I've started to scratch the surface of it a bit, it seems some serious digging may be in order to discover more... but for now it's back to development (damn them deadlines!)