Using a different unit of measure in task planning in TFS

With TFS 2012 you can do work planning with the new agile board, where work is decomposed from PBI to task and task are usually estimated in hours.


Figure 1: Task estimation is made in hours.

Using hours is only a matter of convenience, but many agile team does not like hourly estimates and prefer using some other empirical values such as Effort, Story Points, or Cup Of Coffee, where the latter is the number of Cup Of Coffee you need to finish that task :) (dev are caffeine addicted). Avoiding using hours, gave the idea that we are not estimating precisely, especially because we are interested in team Velocity and not knowing how many hours do we need for a certain task. For this example suppose our team is used estimating in coc = Cup Of Coffee, and we want the board to reflect this fact.

The crude fact is that the Estimated effort for task in TFS is just an integer number, and TFS does not care if this number is actually representing hours, Cup Of Coffee or whatever else, it is just a number that can be aggregate with the add operation. The only problem is that the board shows 4 h, and this immediately gives you the idea that you need to plan in hours.

If you want to show something like coc = Cup Of Coffee, you first need to import in your computer the CommonConfiguration of the process template with the command

witadmin exportcommonprocessconfig /collection:http://localhost:8080/tfs/fabrikamfibercollection /p:"test project" /f:c:\temp\commonconfiguration.xml

This is issued against the Brian Keller’s Virtual machine, you should only change the address of the collection to match your collection and the name of the project to match your project. Once the file is downloaded you can edit the xml file changing theMicrosoft.VSTS.Scheduling.RemainingWork (I’ve used scrum template), and **change the format from {0} h to {0} coc **.


Now you should update the team project with this new configuration with this command:

witadmin importcommonprocessconfig /collection:http://localhost:8080/tfs/fabrikamfibercollection /p:"test project" /f:c:\temp\commonconfiguration.xml

Basically is the same command as before, just change the command from exportcommonprocessconfig to importcommonprocessconfig. If you open again the board you can now verify that** the format used to represent the amount of work is now expressed in Cup Of Coffee **.

image** Figure 2: ***Task estimation is now show as Cup Of Coffee unit of measure*

The only change is the label: coc instead of h, all the rest is the same because it is just a change in how the RemainingWork value is formatted to the user. This changes is reflected in all the part of the agile planner, as an example the capacity of the team is now also measured in Cup Of Coffee.


Figure 3: Capacity of the team uses the same format, so you have now capacity in Cup Of Coffee

If you always use a different unit of measure instead of hours, you can simply download the entire process template, change the xml file and upload the process again on the server, so every new Team Project created with that template will use this new configuration. Just remember that, if you update a common process template, you should  pay attention when you will upgrade TFS with newer version, because you should double check if automatic process template upgrade procedure have not broke the standard upgrade procedure. You can find lot of detail on procedures needed to upgrade process template in MSDN, especially the second link, that shows how to update the process manually if the automatic procedure does not work.

Gian Maria.