How to Manage a Product Backlog with Visual Studio Team System 2008

Hi this is Marius Grigoriu, Program Manager of Risk Tracker and our BI system--which will both be introduced at a later time. Today I am going to share how I track and manage projects and requirements. Both my teams are Agile teams and use product backlogs to document requirements and to track progress against them. We’ve been using Visual Studio to write code and track bugs, and now we use it to manage our product backlog too. The benefits of using VSTS for managing our backlog is that we have a database persisting our requirements, and that developers can access information about what they are building very easily from their IDE.

Setup your process template and team project. To get started, you need to have a team project created in your Team Foundation Server. You will also need a process template that provides work items for requirements or user stories. The requirement work item should have fields to allow capture of requirement details, estimates, and any information you need to help you prioritize.

Define areas and iterations. Under the Team > Team Project Settings menu click Areas and Iterations. Use this window to set up a hierarchy of project areas if necessary, and releases and iterations. If you do use areas, you may find it helpful to create a copy of those areas in the iterations structure too.

image

Setup your work item queries. The next step is to setup a query for your product backlog. We actually have several product backlogs in our team project to support all the different components that are worked simultaneously by different teams. Work items under a single team project can be easily reassigned among teams, but copying a work item from one project to another is not an activity we enjoy doing.

image

Our product backlogs contains requirements and bugs that we could not address in the sprint they were logged. We also use Area Path to filter out items that belong to other backlogs.

image

Connect Excel to the Team Foundation Server. You could stop here and being working with the work items individually through Visual Studio. I prefer to use Excel to quickly change how I sort and filter my user stories. Excel is indispensible when it comes to auto filling many cells with the same information, which is frequently necessary with the process template we have to use. Finally Excel provides a quick way to plot a burndown chart. If you have Excel installed at the time you installed the Team Foundation Client component of Visual Studio you should have everything you need to get started.

Open a new workbook and go to the Add-Ins tab in the ribbon. You should see a number of buttons related to Team System. Click New List.

image

Point Excel to your Team Foundation Server and team project. Each list can be connected to only one project, but you can have multiple sheets in your work book each with another list.

Next click Choose Columns. You will want to setup the sheet to show only the information you are interested in working with in the spreadsheet version of your backlog. It is recommended to add the required fields as columns, especially if your process template does not automatically provide adequate defaults otherwise you will get errors when committing changes to the server.

Organize your backlog. The final step is to arrange the backlog so it is neat and usable. Having requirements in Excel poses some challenges. Space is one issue and having a long flat list of requirements is another. Use the Choose Columns command to order your columns in whichever way provides easiest access to the info you need most. If you have any columns that are required by the template but are otherwise useless, make them as small as possible. I prefer disabling word wrap to have a neat list that can show many stories (and their estimates) on one screen. When we need to get into the details of a user story, I expand the size of the formula bar to have a better view into all of the content of a story.

You will also want to create a custom sort order for the items in the backlog and arrange the work items in any way that makes the most sense for your team. My sort order is shown below:

image

Work with your backlog. Now you should have everything setup. You can use Visual Studio or Excel to work with your requirements, prioritize, estimate, and assign to a sprint or release. If you are using Excel to make changes, clicking Save is not good enough. That only saves a local copy of the sheet and your layout. You also need to click Publish to commit data to the server and Refresh (careful that you do not lose data) if someone made changes through Visual Studio or another spreadsheet.