Team Foundation Server (TFS) 2012 and Visual Studio 2012 represent the next stage in the evolution of the Microsoft Application Lifecycle Management (ALM) tools. Specifically in TFS 2012, Microsoft has responded to customer feedback on the previous product version, improving the project manager experience by relinquishing the product backlog and iteration backlog worksheets in favor of an enhanced user experience on the web. Developers will see changes in Team Explorer that improve workflow efficiency. There are also new features such as the Feedback Manager and storyboards to facilitate communication within the team. I'll summarize these and other improvements in TFS 2012 from the perspective of the project manager, developer, stakeholder, and business analyst. I also provide two videos that go into more depth about TFS 2012's project management, local workspace, and code review features. For more information about Visual Studio 2012, see Tim Huckaby's article "My Favorite Visual Studio 2012 Features."
Project Management Features
TFS 2010 introduced product backlog and iteration backlog worksheets in the Agile Team Project template. The product backlog worksheet is a spreadsheet in which potential new features are added and prioritized. During iteration-planning meetings, user stories are selected from the backlog and added to the next iteration using the iteration backlog worksheet. This worksheet includes capacity planning, a burndown chart, and a way to manage when team members are unable to work -- for example, because of holidays or vacations.
TFS 2012 removes the worksheets and adds these features to the Team Web Access web interface. Each team project has its own web application for managing the work of a project. This isn't the SharePoint portal from previous versions, which still exists in the new version, but a newly designed Web Access application. From here, project managers can view and manage their project, administer iterations and work areas, manage team members, and access reports.
A project's home page in Team Web Access displays an overview of the project, as shown in Figure 1.
Figure 1: Web Access home page
This page provides information about the current sprint or iteration, including the number of work hours remaining in the iteration, the remaining capacity, the number of backlog items still in progress, and the start and end date of the current sprint. For the first time in TFS, you can assign dates to a sprint. Also shown on the project home page are the burndown chart and a Team Favorites section. The Team Favorites section provides a customizable dashboard view of any query, recent source control changes, and a build definition history.
The concept of a team has been enhanced in the new version. Figure 1 shows the sample team project FabrikamFiber; within that team project is a team called Fabrikam Fiber Web Team. It is now possible to create distinct and separate teams within a single team project that contains the product backlog, sprints, members, and other information for only that team. Because a team is assigned a parent iteration, reports can be run just for a specific team using the iteration filter found on the reports. This enhanced team orientation helps organizations avoid having to create new team projects for each development team and provides more flexibility in managing sub-teams within a team project.
Each team within a team project is assigned a product backlog iteration. Any work item that is given that iteration path will show up in the product backlog, discussed in the next section. Figure 2 shows the iteration path assigned to the backlog for the FabrikamFiber Web Team.
Figure 2: Backlog iteration for the FabrikamFiber Web Team
Product Backlog, Sprint Backlog, and Taskboard
Figure 3 shows the product backlog for the Fabrikam Fiber Web Team.
Figure 3: Product backlog for the FabrikamFiber Web Team
From here, backlog items can be prioritized simply by dragging and dropping them. Also from this screen, you can add new backlog items and assign an item to a sprint by dragging it to the sprint on the left side of the screen. In the top right corner is a bar graph icon for velocity. Clicking this icon opens the Velocity window, which shows what has and has not been done in the current iteration or sprint, using different colors on a bar graph.
The sprint backlog contains the product backlog items assigned to the sprint along with any tasks associated to the product backlog item. From this screen, you can add tasks to a product backlog item. You can also view the team's capacity grouped by the entire team, activity, or members, as shown in Figure 4.
Figure 4: Sprint backlog for the FabrikamFiber Web Team
You perform capacity-planning tasks for the team via the capacity tab. Each team member is assigned the number of hours per day that can be worked, the member's activity (e.g., development, requirements, testing), and the number of days off during the sprint. You can use this information to determine whether the team or its members are overallocated or underallocated. If the team is underallocated, you can add more tasks to the sprint. If any member is overallocated, you can reassign one or more of the team member's tasks.