Support rollup of work and other fields
Rollup provides summed values of select fields for all child work items of a parent. Because Visual Studio Online and Team Foundation Server (TFS) support multiple levels of nesting, when you perform rollup, you want to make sure you don’t double-count values. Most project managers are interested in getting rollup of estimated or completed work, effort, size, or story points.
Natively, Visual Studio Online and TFS provides rollup of Remaining Work for tasks on the Task board.
You can obtain rollup of additional data fields in Visual Studio Online or TFS data by using one of the following methods:
Method |
Visual Studio Online |
On-premises TFS |
---|---|---|
SQL Server Reporting Services report |
||
Microsoft Project |
||
Microsoft Excel |
||
TFS-Project Server integration |
||
Custom plug-in or extension |
In Visual Studio Online, you’re limited to the work item fields provided with the process template used to create your team project.
SQL Server Reporting Services report
Several OOB reports provide rollup. Here’s an example of rollup of completed and remaining work that the Stories Overview report provides. This report is part of the default TFS Agile process template.
If you have SQL Server Analysis Services deployed, you can get rollup for backlog items from these reports. The refresh frequency for these reports is 2 hours.
If you need to add reports to your on-premises TFS deployment, see Dodawanie raportów do projektu zespołowego.
Microsoft Project
Project natively supports rollup of summary tasks. With Project, you can round trip TFS data to obtain rollup values.
To learn how, see Zestawianie szacowanej i rzeczywistej pracy za pomocą programu Project.
Microsoft Excel
You can export a query to Excel that contains the work items you want to provide rollup. You can then write an Excel macro to get the sums and publish data back to TFS. To learn more about Excel and TFS integration, see Zbiorcze dodawanie lub modyfikowanie elementów roboczych w programie Excel.
To learn more about Excel macros, see Create or delete a macro.
TFS-Project Server integration
Like Project, Project Server natively supports rollup of summary tasks. If you have TFS-Project Server integration deployed, then you have rollup. To learn about how fields are synchronized, see Zasady zarządzania aktualizacjami określonych pól. If you need to add fields or change how fields are mapped, see Dostosowywanie mapowania pola pomiędzy TFS a Project Server.
Custom control or plug-in
You can write an extension using the client object model for Team Foundation to get rollup. Two code samples available on CodePlex that can get you started are TFS Aggregrator and TfsRollUp.
Rollup requirements
To support rollup, structure your work items according to the following recommendations:
Use parent-child links to link work items that contain values that you want to rollup.
Add required fields to the WITs that will capture the rollup values. Default fields used to schedule work are only present on the task work item. These fields are:
Original Estimate (Microsoft.VSTS.Scheduling.OriginalEstimate): The amount of work required to complete a task. (Agile and CMMI)
Completed Work (Microsoft.VSTS.Scheduling.CompletedWork): The amount of work that has been spent implementing a task. (Agile and CMMI)
Remaining Work (Microsoft.VSTS.Scheduling.RemainingWork): This field is used to support burndown charts.
If your team project was created using the Visual Studio Scrum process template, only Remaining Work is defined in the task.
To learn more about adding fields, see Definiowanie pól elementu pracy.
Determine the unit of time used to track work and make sure it is used consistently across your team or organization. For example, you can track tasks using hours or days.
Determine if you want to make rollup values read-only on the work item form. By making them read-only you prevent users from entering inaccurate data. You make fields read-only using the Control field Readonly attribute.
Q & A
Q: Can I get rollup of team capacity?
A: No. The data entered for team capacity isn’t stored in the regular data stores.