metro-visualstudio-128-link

There are many reasons that you would want to Create a Portfolio Backlog hierarchy in Team Foundation Server 2013 not least of which is modelling your existing processes.

You can have a hierarchy five items deep with a parent child relationship between them. You will get a backlog for each one as well as cumulative flow and a board. This is awesome as you may have, for instance, Goals that break down into Feature. These goals would be the company or product goals and the features would be those things that go to achieve them.

Only have Features by default
Figure: Only have Features by default

In order to add a level to the hierarchy we need to customise a Work item Type, the Work Item Categories and the Processing Configuration:

  1. Export all of the configuration to XML
  2. Create Goal work item type definition
  3. Update Category’s list to include new type and category
  4. Add new Portfolio Backlog to the Agile Portfolio Tools
  5. Import all of the new configuration to Team Foundation Server

These steps will allow you to create a Portfolio Backlog hierarchy in Team Foundation Server 2013.

Export all of the configuration to XML

We need access to first export as XML the configurations that we need from our Team Foundation Server:

These command will create feature.xml, catagories.xml and a processingconfig.xml files that we can edit offline and then upload into Team Foundation Server 2013 to make the changes.

Create Goal work item type definition

I am going to make things a little bit easy for me and just copy the Feature type and rename it to Goal. The simplest way to create a new work item type is to diff from an existing one and Feature has the layout that I want to start with.

image
Figure: Changes to make for Goal

In order to make a new Work Item Type you need only change the name and then import the file. However there in a “Implementation” tab that shows, for Features, the child Product Backlog Items. We need to also change this to load child features instead and feature is going to the be child of Goal.

Here you can see the standard implementation tab that you find on many of the work items that come out of the box. It is basically a query box that shows whatever results that you want. Here it is filtered to “Hierarchy” link types which really just means parentchild and for a particular work item type which in this case is “Feature”.

You could obviously customise this work item type to your hearts content and now we need to add it to a category.

Update Category’s list to include new type and category

To create a portfolio backlog we need a custom category so that we can use that for the portfolio backlog.

image
Figure: Adding a custom category for Goal

A  category can have multiple Work Item Types listed but only one default. This means that you could have multiple Work Item Types for different sorts of Goals. I am however trying to keep this simple…

A simple category that holds a single work item type is fairly easy to create. Just add it to the list of categories below.

 Once we have the new category and the new Goal work item type we are ready to use them to create the portfolio backlog.

Add new Portfolio Backlog to the Agile Portfolio Tools

There are three things that we need to do in order to create the new portfolio backlog for Goals in the Team Web Access site.

image
Figure: Customising the Process Configuration for Portfolio Backlogs

We need to not only add the new portfolio backlog above but also set the parent property on child portfolio backlog and optionally set a colour for our Goals cards and lists.

Because I just copied the Feature work item type for this I can just copy the Feature entry in the Portfolio Backlogs section. If you have a more customised work item type you may want to customise the States, Columns and the fields that are available in the Add Panel for that Work Item Type in the web UI. Here I am just going with the simple option of copying.

In addition I need to tell the Feature portfolio backlog that anything in the Goal category that we created is now its parent. This is done simply by adding the category to the parent attribute of the PortfolioBacklog element in question.

Note You can also check out customise the colours in Team Foundation Server 2013 Agile Planning Tools

Simples… now that we have completed all of the changes necessary we are ready for the import.

Import all of the new configuration to Team Foundation Server

This is really just the revers of the commands used to create the files in the first place.

We just call them as “import” rather than “export” statements.

DONE

Conclusion

We now have a lovely green Goal work item type that sits on its own backlog and is ordered above Features.

image
Figure: Viewing Tasks from the lofty heights of Goals

Customising the hierarchy for Portfolio Backlogs is easy and the hard part is making sure that you are making the correct change.

When you are working with any sort of work item tracking customisation in Team Foundation Server it is best to think twice and customise once.
-Me

Make sure you always make the right changes to Team Foundation Server to improve your process and never enshrine dysfunctions…

Create a Portfolio Backlog hierarchy in Team Foundation Server 2013 was last modified: July 8th, 2013 by Martin Hinshelwood

-Every company deserves working software that successfully and consistently meets their customers needs on a regular cadence. We can help you get working software with continuous feedback so that your lean-agile teams can deliver continuous value with Visual Studio ALM, Team Foundation Server & Scrum. We have experts on hand to help improve your process and deliver more value at higher quality.