Agile Project Planning with Team Foundation Server 2015
Many of the changes to TFS affect agile planning features, for the better. Here's a look at five areas.
There are many different aspects to project management when developing software, such as tracking work in progress, resource management of the amount of work to complete vs. the amount of time remaining, and bug tracking, just to name a few. Since its inception in 2005, Team Foundation Server (TFS) has played a critical role in supporting the project management aspects of a development project, through the use of its Work Item Tracking system.
Over time, the original TFS Work Item Tracking system has morphed and gained features to support new methodologies, such as Scrum and Kanban. And it added new tools, such as the Agile Planning Tools that came with TFS 2012. With the release of Visual Studio Online, Microsoft moved TFS into the cloud, making it easy to get started working with TFS. They also began releasing new updates to Visual Studio Online every three weeks, add new functionality into the online version of TFS that will also be incorporated in future on-premises versions.
This article will touch on a number of "new" agile project planning features that will be included in TFS 2015 when it releases. Note that I say "new" because some of these features have already been released as updates to TFS 2013 or Visual Studio Online, but will be rolled into the production release of TFS 2015, as well.
For this article, I'll use Visual Studio Online to demonstrate these features. You can sign up for a free Visual Studio Online account at visualstudio.com if you want to take some of these features for a test run before TFS 2015 is released.
I've also made the assumption that you're familiar with TFS, Visual Studio and application lifecycle management in general.
Licensing discussions are never fun, and I don't plan to dive into them too deeply here. But there has been a key change to the licensing of Visual Studio Online and TFS of which you need to be aware. And that's the addition of the Stakeholder license. Every project has stakeholders. These are the people who are part of the project, who need to be able to track work item progress or file bugs, but don't need the ability to access code or any administrative functionality. TFS on-premises has had something similar to this (called a Limited user), which will evolve into this Stakeholder license.
The Stakeholder license allows any number of users to be assigned a stakeholder license at no charge. Stakeholders have the ability to create and edit work items, view dashboards, and have read-only access to the Task and Kanban boards. The goal of this license is to eliminate friction in the project lifecycle by enabling the entire organization to participate in projects. If you want more information on the different licenses available with Visual Studio Online, see the pricing page.
Work Items Enhancements
Team Web Access (and by extension the Web interface for Visual Studio Online), provides the ability to manage the work that needs to be done using work items, without having to open Visual Studio. The specific work items available to you, such as task or bug, depend on the process template selected during the creation of the team project.
The TFS Work Item Tracking system supports the use of hierarchical work items, allowing you to specify parent/child relationships between the work items. For example, a product backlog work item can have multiple tasks as children. However, the Web interface for work item tracking has lacked a good bit of functionality. It works well for analyzing and tracking relationships, but in general has lacked interactivity. It allows you to reorder and re-parent work items, but only when looking at a flat backlog, which was more difficult than working with the work items in a hierarchy. In the current version of Visual Studio Online (and upcoming in TFS 2015), this problem has been fixed.
You now have the ability to reorder and re-parent work items using any view of the backlog. To show this, let's assume you have a product backlog consisting of tasks, product backlog items, and higher-level features. If you navigate to your team project in Visual Studio Online, and click the Work tab at the top of the screen, you open the Backlogs (see Figure 1).
The default for this view is a flat view of just the product backlog items. From here you can drag and drop the items up and down to reorder them. At the top left, you can click the Features link to view the defined features. This gives you a flat view of the higher-level features, which will be made up of multiple product backlog items.
To use the new hierarchical reordering abilities, first select the Backlog items link at the top left to view the product backlog. Then click the rectangle to the right of the Features link (see Figure 2). This will change the product backlog view into a hierarchy view that shows both the backlog items and their parent Feature items. Next, click the Mapping link as highlighted in Figure 1. This will turn the mapping functionality on and change the product backlog view into something similar to Figure 3.
Notice the new Features column on the right-hand side of the screen. You now have the ability to drag and drop backlog items under the appropriate feature request. As you do so, the middle pane will automatically update to display the new hierarchy. You can use this same feature to drag a backlog item to different feature request, to re-parent the item.
Task Board Improvements
The Task Board for a sprint has undergone several improvements to make agile project planning easier.
One of the biggest improvements is the ability to see bugs on the sprint Task Board. In Figure 4, you can see the bug, listed in red, at the bottom of the image. You can create tasks related to the bugs or product backlog items by clicking the New Item button. Tasks can also be reordered in a particular state by dragging and dropping the task in the appropriate state cell. The parent backlog item is also shown on the Task Board, and appears as a card similar to the tasks. You have the capability to collapse a particular swim lane, by clicking the arrow next to a particular backlog item or bug. Finally, tasks can be edited inline, allowing you to change the task title and who the task is assigned to, without opening the full work item.
Work Item Charting Another nice feature available is the ability to display work item queries as charts on the main page of the team site. Navigate to the main page of the site, and click the Queries link under the Work section. This takes you to the Queries tab, where you can create custom work item queries. Click the New button, and select New Query. This opens the New Query Editor, as shown in Figure 5.
Here, I've modified the query to display all product backlog items in any state. Make sure to save this query into the Shared Queries folder; otherwise, you won't be able to create a chart that can pin to the homepage. To turn this query into a chart that can be pinned to the site homepage, click the Charts link, then click the New Chart button. This opens the Configure Chart window for the selected query (see Figure 6).
Here, I've configured the work item query from Figure 5 to be displayed as a pie chart, grouped by status. This visualization makes it easy to see how many backlog items are in the backlog, as well as how many are in different states. Clicking the OK button will save the query as a chart. Now click the ellipsis at the top of the chart and select Pin To Homepage. This takes the chart and puts it on the front of the team site, where other team members can easily view it.
Kanban is becoming a process utilized by more and more development teams, as is the Kanban board. Microsoft added support for Kanban boards in TFS 2013, and continues to enhance that support for TFS 2015 and Visual Studio Online.
You now have the ability to add and reorder work items directly on the Kanban board, without having to switch to the backlog view, similar to what you can do in the Task Board with tasks. Columns in the Kanban board can also be split, allowing you to have a top-level column, such as Development, split into two sub-columns, Doing and Done. This makes it easy, for each state, to see what's being worked on, and what has been completed, to help determine what to pull into the next state.
A minor enhancement -- but an effective one -- is the ability to specify the definition of "done" for each column. You do this by adding a text description of "done" for each column, which will be displayed when you hover your mouse over an information icon added to the column header.
As you can see, Microsoft has add several new features to Visual Studio Online and Team Foundation Server 2015 that will enhance agile project planning. The addition of the new Stakeholder license will allow more project members to be involved in the planning aspect, and the new Work Item Tracking features will make project planning faster, easier and more effective.
About the Author
Mickey Gousset spends his days as a principal consultant for Infront Consulting Group. Gousset is lead author of "Professional Application Lifecycle Management with Visual Studio 2012" (Wrox, 2012) and frequents the speaker circuit singing the praises of ALM and DevOps. He also blogs at ALM Rocks!. Gousset is one of the original Team System/ALM MVPs and has held the award since 2005.