TFS as perfect tool for Scrum (Part 2) – Product Backlog Grooming

This is the second part of the series TFS as perfect tool for Scrum. The series is based on my session that I presented at Microsoft TechDays. You can find more introduction in part 1

The agenda for this series is:

1. Introduction in Scrum and TFS

2. Using TFS for grooming your Product Backlog

3. Using TFS in Sprint Planning

4. Using TFS in your Sprint

5. Using TFS in your Sprint Review and Retrospective

Today, Part 2 – Product Backlog Grooming

Part 2 – Product Backlog Grooming

In part 1 of this series I mentioned the [Product Backlog]. The list of things that should be done in order to create a valuable product. But within Scrum there is no mention of when this Product Backlog is created. It seems that it just appears out of nowhere. In reality this is surely not the case, but the process of filling the [Product Backlog] with rough ideas and preparing for a first sprint is just not in scope of Scrum.

The process of filling the [Product Backlog], prioritizing PBI’s, adding acceptance criteria, splitting up large items is called Product Backlog Grooming. As said, this takes 10% of the time of every sprint. But requirements or features are usually not so well defined and nicely split up the first time they appear on the backlog. Big ideas emerge at several places and most of the time these are not suitable to put on a product backlog. Different departments and different roles have influence on these ideas and they should! This article on Business Analyst Times has a great checklist to improve your grooming quality (http://www.batimes.com/robert-galen/grooming-your-agile-backlogs-for-success.html)

Scrum.org recognizes this and came up with an approach that embraces the fact that software impacts more than the development team. They call this the Continuous Improvement Framework (CIF) and you can read all about this on the Scrum.org website.

clip_image002

When you take a good look at the picture you see that in this picture three departments have a role in the Product Backlog. Product Management puts large ideas on the Product Backlog. As it goes through Program Management the large items become smaller to finally end up as actionable Product Backlog Items that can be built by a Development Team.

Challenges in the “grooming” phase

So back to our Scrum and TFS combination, what are the challenges we are dealing with in the Product Backlog Grooming” phase, and what can we do in Team Foundation Server to alleviate these challenges.

The challenges that I hear the most are these:

  • I have different teams, different departments. How do I get one central view on each and every item
  • Where do I put my “rough ideas”?
  • How can I group my items into “projects” or categories
  • How do I create a release
  • How do I deal with large PBI’s that won’t fit into a sprint?

As said in part 1, Team Foundation Server is just a tool, which does not solve any of the problems, but it contains several very useful features that allow you to define a process that will!

Use Team Foundation Server

Teams to “split”your Product Backlog

So, let’s take a look at the various departments. The departments contain different people, which all perform different tasks on the Product Backlog but still….It is one backlog. We want one central repository with all our product backlog items on it. But we don’t want to bother everyone with everything all the time.

Team Foundation Server 2012 contains the Team dimension. A Team in TFS is a group of people that you can use to switch context or scope on the same repository. Let’s explain this a bit more by looking at the following picture.

image

In this picture we see a Product Management Team that creates [Epics] on the product backlog. Epics are big stories that span multiple sprints. I will talk a bit more about epics later in this post. Epics are split up into Product Backlog Items and are transferred to the Product Owners Team. This team might be responsible for adding acceptance criteria or add more details. Then, the Product Owners Team transfers the items to the 2 Development Teams. They both are responsible for adding the PBI to a sprint and eventually building the product.

In the picture all teams look at the same product backlog but at a different level. The Development teams only see the items on the lowest level and do not have to be concerned about items that are still in “design” phase. Surely it is a good practice to tell development teams about the large stories during grooming sessions, but they don’t have to constantly see it.

In TFS we can arrange this with a bit of creativity. As team is not a first class citizen there are different approaches when it comes to teams. There are various good posts about how to deal with this.

My approach is the approach describes in the fabulous post of Colin Bird.

In TFS I create 4 teams representing the 4 teams from the picture

clip_image006

In the [iterations] configuration I point the different teams at different levels of my Iteration Tree. Notice that I added [Team] as a level in my iteration tree which differs from the standard approach of Microsoft.

image

This gives me the following perspective on the TFS Web Access Client

clip_image010

Which is great, because this allows me to drag PBI’s to the backlogs of other teams (Release 1 for PO Team and Team X for Dev Team X). This way you can easiliy sort and order the bigger and smaller items. I can put backlog items in Release 1 (in scope) or put them in a later Release (vNext). You can even have a “dummy” Release [Ideas] to put some draft ideas, to keep them a bit more hidden from the “real”work.

clip_image011

Using “High Level”Backlog Items

In order to have a better distinction between large stories and smaller stories you can use the built-in TFS parent-child features. Once you add a child Product Backlog Item underneath a Product Backlog Item, this is visible in the product backlog as a tree.

clip_image012

To make it bit more sophisticated, you can create a new Work Item Type, for example Epic, and let this Work Item Type be the type that contains your high level stories. To see how to create Work Item Types you can refer to this article for more details.

When using a new work item type, make sure you customize your Agile Boards in TFS in order to see it appear. I wrote a blog post about how to do that here.

Conclusion

Combining the Teams feature in TFS together with the notion of High level and Lower level stories by means of Epics or at least Parent-Child relationships we can quickly review the challenges that I often hear to see if we addressed it all.

  • I have different teams, different departments. How do I get one central view on each and every item
    • Use Teams to “split”your product backlog
  • Where do I put my “rough ideas”?
    • Create an Epic Work Item Type to store them. To make them even more “invisible” create a Release [Ideas] to store them in
  • How can I group my items into “projects” or categories
    • We didn’t really dove into this one, but surely you can use Areas for this purpose or add another custom field
  • How do I create a release
    • By using the Teams and the Release hierarchy this can be done fairly easy.
  • How do I deal with large PBI’s that won’t fit into a sprint?
    • Splitting up PBI’s works on all levels so also at PO Team level or Development Team level, you can have parent-child PBI’s. Don’t split up to much!! At the most 1 or 2 levels.

If your process needs the distinction between larger and smaller stories and there are various parties that have to deal with it, TFS can be customized to support this.

Resources

7 Responses to “TFS as perfect tool for Scrum (Part 2) – Product Backlog Grooming”

  1. Great post. The new Work Item tagging feature in TFS 2012 update 2 can help in grouping items to projects or categories.

    • Hi,

      Thanks ! That’s certainly so. If I have some time, I will try to incorporate this in my post. I forgot this during my writing…

Trackbacks/Pingbacks

  1. TFS as perfect tool for Scrum (Part 2) – Product Backlog Grooming | PowerStory Blog - April 22, 2013

    […] See on osnabrugge.wordpress.com […]

  2. Working within a single Team Project with Team Foundation Server 2012 - May 23, 2013

    […] minimise your administration overhead while providing that versatility. There is an awesome post on backlog grooming that shows you how to configure more advanced team organisation in Team Foundation Server with […]

  3. TFS as perfect tool for Scrum | Jasper Gilhuis - October 30, 2013

    […] Introduction in Scrum and TFS 2. Using TFS for refining your Product Backlog 3. Using TFS in Sprint Planning 4. Using TFS in your Sprint 5. Using TFS in your Sprint Review and […]