To pre-cap, I'll be speaking at Kentucky Day of .Net this coming weekend.  Here's the schedule.  My topic is "How to Customize your TFS Process Template to meet your actual Business Process"  or something like that. 

Basically my opinion is that a company's process(es) should not try to fit in the wrong sized box.  Every organization has slightly different requirements for documentation, process, collaboration, and reporting.  My presentation demonstrates how an organization can create custom process templates for TFS 2008 to help manage their process (not change their process). 

When I decided to do this presentation, I had never customized a template.  I only knew that you could do some customizations.  I figured the best way to learn something is to teach it and now I know that TFS is very extensible and customizable.  By using a very componentized approach, you can plug into a bunch of facets of the application lifecycle management suite that is TFS.

What is TFS?
  • TFS is a Project Management Tool
  • TFS is Work Item Tracking
  • TFS is Version Control
  • TFS is Reporting
  • TFS is a Build Server

I'm obviously not going into detail on each topic.  I'm going to focus on the first bullet, Project Management Tool.  TFS is not a replacement for Microsoft Project.  On the contrary, MS Project is a compliment to TFS.  There are add-ins for TFS available for MS Project.  Instead, TFS offers a guidance template to assist in the non-task tracking part of project management.  Microsoft packaged two templates in with TFS 2008 but several others are available for download.  My assumption for my presentation is that an organization will want to either customize one of the available templates or create one from scratch. 

Planing

Project management is a tricky beast.  It is important to plan out your standardized way(s) of managing the lifecycle of a project just as you would plan the actual project.  Analyze what your requirements are for types of activities, reports, workflow, and level of documentation before you try to customize the template.

Customize

Before trying to customize a template, you should explore what a template is made of.  To do this, download the TFS 2008 Power Tools.  After installing it, you'll notice some new options in the VS 2008 menu.
image image image

I started by opening up the Team->Team Foundation Server Settings->Process Template Manager dialog:
image

Note that you can download either of the pre-packaged templates.  I downloaded the Agile template to my hard drive and renamed the folder to XP Process Template.  Here is a make-up of the folder structure:
image

The main file in the template is ProcessTemplate.xml in the root directory.  It contains references to the name of the template, a description and the collection of plugins.  If you open the file in VS, you get a nice GUI that allows you to navigate not only the ProcessTemplate.xml file but also the child directories and their configurations.

While each piece can be customized, it's important to spend time planning for what and how you need to monitor and manage your projects.  Keep in mind that you may have multiple templates within your organization.  Each type/size/department/purpose of an application is potentially a horse of a different color.

Here's a copy of my presentation.