Agile Project Management for Everybody
For teams using an agile software development methodology, Team Foundation Server 2010 offers new tools to help you easily visualize the backlog, the workload per iteration and the workload per developer. Jeff Levinson guides you through the new features.
- By Jeff Levinson
For those teams using an agile software development methodology, Team Foundation Server 2010 offers new tools to help you easily visualize the backlog, workload per iteration and workload per developer. Teams can quickly and easily break down the work and make adjustments as needed and get feedback immediately. Using Microsoft Excel to manipulate the data and TFS to store and report on the data, the new tools will help teams be faster and more accurate in their planning stages and helps them better keep track of their progress during iterations.
Team Foundation Server 2010 includes two Excel workbooks to help you with project management: the Product Planning workbook and the Iteration Backlog workbook. These files are part of the MSF for Agile 5.0 process template. They are located on the SharePoint site and so are accessible from the Team Explorer Documents node and are specifically found in Shared Documents (Product Planning) and Shared Documents\Iteration 1 (Iteration Backlog). The templates these are based on are both stored in Samples and Templates\Project Management on the SharePoint site. I'll discuss the usage of these templates towards the end of the article.
The process for using the workbooks is shown in Figure 1.
[Click on image for larger view.]
|Figure 1. The process for using workbooks.
The process starts with Product Planning, where teams will enter requirements into their product backlog. As part of this process the Product Owner attaches a priority to each requirement (the Stack Rank) and the team discusses the difficulty of each item in relative terms using a technique such as Planning Poker and fills in those values (Story Points). Note that story points can be anything -- they can even be hours if the team wants and agrees to it. However, we generally try to steer teams away from this because it is too easy for teams to pad their "estimates." Figure 2 shows the Product Planning Product Backlog page.
This worksheet lets teams order the requirements by the stack rank so they can easily ensure that the highest priority items are worked first. Note also that these are all User Stories -- there are no task breakdowns at this point, because the assumption is that the team does not have enough information to do a granular breakdown.
Figure 3 shows the relative work for each iteration. As teams make changes on the Product Backlog tab, this graph will update automatically.
One thing to note here is Iteration 1. There are only nine days in this iteration, as opposed to 10 in the other iterations. This is because there is one day off for Easter. The Interruptions tab contains the holidays that effect the overall planning.
Using this simple workbook, teams can easily determine the amount of work required to complete the product backlog. In this case, there are only three iterations defined and I still have items on the backlog, so it is easy to determine that I will have a fourth and possibly even a fifth iteration. I will show you how to add these later. Once you have made all of your changes, remember to publish the data back to TFS.
Once the product planning has been done (to the extent that it can be done -- remember that change is an integrated part of agile methodologies and this backlog will change over time) it's time to do the iteration planning. Figure 4 shows the Iteration Backlog workbook for Iteration 1. In this workbook, only those user stories and tasks that are present in Iteration 1 show up here.
In this figure you can see that Excel supports the hierarchical work item structure for parent/child relationships, which allows teams to add Tasks under their parent User Stories. The tasks are the breakdown of the user story and the actual work that the developer will perform. As you add each task, you assign it to an iteration, assign it to a developer and fill in the Remaining Work that is remaining work in hours. Notice that the Remaining work for the user stories is not filled in because this field isn't on the user story work item. The TFS reports will roll up this data for you.
Figure 5 shows the Capacity page for the iteration. Here there is a well-structured iteration because each developer is slightly under allocated.
On this page you can see and make adjustments to the assigned workload. As the iteration progresses this page is updated with the information gathered from the work items (developers reducing the remaining work and filling in the completed work). You can also set other items such as individual developer iterations and individual capacity in terms of hours per day. This all helps balance the capacity among the developers and lets teams plan for some developers being more productive than others. For example, Dev Leads are probably in many more meetings than the developers who work under them.
Adding New Iterations
How do you add new iterations? By default three iterations are configured for you, but only Iteration 1 is fully configured. By fully configured, I mean that if you expand the Iteration 1 node under Team Queries for your project you will see that there are 11 queries, whereas Iterations 2 and 3 have only the Iteration Backlog, which is required to support the Iteration Planning workbooks. Also, the Iteration 2 and 3 folders on SharePoint do not have the Iteration Backlog workbooks. In this example, I will walk you through adding a new iteration (Iteration 4) and you will see how to populate the information and workbooks you need.
Add a new iteration:
- Right-click the Team Project node and select Team Project Settings > Areas and Iterations
- Select the Iteration tab and click the Add Iteration button
- Enter Iteration 4 and ensure it is a child of the root Iteration node (optionally enter more as needed) and click Close
- Right-click the Server node (the root node in Team Explorer) and select Refresh
*Warning* Make sure you do not have any workbooks open when you click Refresh. It will break the connection between Excel and SharePoint and you won't be able to save the file directly back to SharePoint. If you accidentally do this, save the Excel file to a local folder and then upload it (drag and drop in Team Explorer) back to SharePoint.
Add documents to SharePoint:
Expand the Documents\Samples and Templates\Project Management folder
- Expand the Documents\Shared Documents folder
- Right-click the Shared Documents folder and select Add New Folder. Call it Iteration 4
- Click and drag the Document Template -- Iteration Backlog.xlsm (holding the Ctrl key so that it makes a copy rather than moving it) to the Iteration 4 folder
- Rename the file to Iteration 4 Backlog.xlsm (note that you do not have to do it -- it's my preference)
Add the supporting queries:
Expand the Work Items\Team Queries node
- Right-click the Iteration 3 folder and select Copy
- Right-click the Team Queries folder and select Paste. A dialog will be displayed asking what you want to name the folder -- call it Iteration 4
- Expand the Iteration 4 folder and right-click the Iteration Backlog query and select Edit Query
- Change the Iteration Path from Iteration 3 to Iteration 4 (Figure 6) and save the query
Hook up the Iteration Backlog workbook:
Double-click the iteration 4 Backlog.xlsm file to open it (it will probably have Iteration 1 data in it)
- Select a cell anywhere in the Iteration Backlog list and select the Team tab
- Select Configure > List from the Work Items section of the ribbon and change the query to Iteration 4\Iteration Backlog – this will clear all of the items
- The last thing you have to do is after you have added a work item to this list where it is set to Iteration 4 you can go to the Settings tab and select Iteration 4 from the Areas and Iterations section.
This seems like a bit of work, but in reality it takes about five minutes and you should not have to do this except maybe once an iteration.
The planning workbooks included with the MSF for Agile process template make the job of visualizing the workload far easier and makes providing a realistic plan quick and easy. Because the workbooks are saved to SharePoint, interested stakeholders can keep track of the progress and be even more involved -- without having to try and decipher the teams' note cards. This method also allows for very details reporting from TFS and lets teams monitor themselves with no effort.
Jeff Levinson is the Application Lifecycle Management practice lead for Northwest Cadence specializing in process and methodology. He is the co-author of "Pro Visual Studio Team System with Database Professionals" (Apress 2007), the author of "Building Client/Server Applications with VB.NET" (Apress 2003) and has written numerous articles. He is an MCAD, MCSD, MCDBA, MCT and is a Team System MVP. He has a Masters in Software Engineering from Carnegie Mellon University and is a former Solutions Design and Integration Architect for The Boeing Company. You can reach him at Jeff.Levinson@nwcadence.com.