Project Description
A custom work item control for Team Foundation Server that allows timesheet data to be captured against a work item.

One of the key weaknesses (in my opinion) with Team Foundation Server work items at present is the difficulty to record time spent against a project. Sure you can track time in the 'Work Completed' field and can even report on what changes were made to this field over time ... but this assumes that developers will always update the work items on the correct day and still fails to give simple visibility of how much time different team members have spent on a given work item.

At the moment the code included is far from perfect. It was put together to allow me to learn about changes to custom work item controls in TFS2010 ... so there are still a few features that are less than ideal for anyone else to make use of this component. An example is some of the field names are still hard coded into the control etc.

We've used this control on a couple of projects now, and I've found that the control has helped to keep the work remaining / work completed values up to date by creating visibility of how much time team members are logging against work items on any given day. I've got a short list of changes that I plan on making, which I will log in the Issue Tracker shortly.

A basic description of this component can be found in the following blog posts I created earlier this year about creating custom work item controls for TFS2010;

One thing that isn't clear in the blog posts but is worth noting: I've decided to store the timesheet data for each work item attached to the work item itself. This has the advantage of not needing to either hack with TFS database, or add a new database as a dependency. It does however introduce a difficulty when it comes to project level reporting, but I have decided that is the lesser of two evils at this stage.


Note: This solution is in Visual Studio 2010 and will not work in Visual Studio 2008.

Last edited May 30, 2010 at 11:49 AM by nickhoggard, version 6