I think the most well known classical workaround like in TFS2008 and TFS 2010 is to assign a work item to a group of people.
How to do it?
- You have to create for each combination of persons you want to be able to assign a user group in TFS
- You have to adapt each work item which should support this by adding these groups to the assigned to field as allowed values.
Assume that you are working in a team with 5 persons and want to be able to assign your work items to the following combinations.
- Group: Team
- Group: PersonAPersonB (Person A, Person B)
- Group: PersonAPersonC (Person A, Person C)
- and so on ….
You have to create for each combination a new group in TFS and assign the persons to it.
You have to adapt your work items and change the definition of your Assigned To field to something like this:
<FIELD name="Assigned To" refname="System.AssignedTo" type="String" syncnamechanges="true" reportable="dimension">
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="[project]\PersonAPersonB" />
<LISTITEM value="[project]\Team" />
<LISTITEM value="[project]\PersonAPersonC" />
</ALLOWEDVALUES>
</FIELD>
And in webaccess it will look like this (test is the only user in this screenshot and is assigned to the team group):
Limitations?
One of the most interesting question is how it will integrate with the new agile features in TFS2012.
General issues and workarounds:
- Custom work item queries have to be adapted to also work with groups
- Hardcoded work item queries are not working with groups like “My Work in Team Explorer“
Taskboard
For the taskboard it doesn’t make a difference if a work item is assigned to a user or a tfs user group.
Capacity planning Calculation is broken!
As we can see in the screenshot below the capacity planning calculation does not work together with the group assignments.
Conclusion
For special use cases this can be a valid approach with the downside that you cannot use the new capacity planning features. Each work item query which relies on the @me keyword has to be adapted for each team member to include the custom groups. This means that we won’t be able to have a generic query like “Assigned to me” anymore.