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):
![Task work item with groups in assigned to field Task work item with groups in assigned to field](//lh5.ggpht.com/-VmFB-wPWmVc/UJFMxH0TVUI/AAAAAAAAAVA/NwCB_ilUWsk/image_thumb%25255B25%25255D.png?imgmax=800)
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.
![agile taskboard with group assigment agile taskboard with group assigment](//lh5.ggpht.com/-g-rbsGCteKQ/UJFMzHSvTnI/AAAAAAAAAVQ/8hmZ4CVaZYA/image_thumb%25255B40%25255D.png?imgmax=800)
![agile taskboard with person filtering agile taskboard with person filtering](//lh6.ggpht.com/-xYDTneebuUg/UJFM1AQ8ciI/AAAAAAAAAVg/bAEAFD7AMjY/image_thumb%25255B51%25255D.png?imgmax=800)
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.
![image image](//lh6.ggpht.com/-zEN9VaJjPmE/UJFM3Cow0PI/AAAAAAAAAVw/yoLD1HJtG3Y/image_thumb%25255B32%25255D.png?imgmax=800)
![image image](//lh6.ggpht.com/-xAJ5NiJG0rg/UJFM5H9gVUI/AAAAAAAAAWA/05PZOglsvfQ/image_thumb%25255B35%25255D.png?imgmax=800)
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.