How Microsoft/DevDiv uses TFS - Chapter 4

In the previous posts, I spoke about how we used TFS to implement the process.

In this post, I'll talk about how we went about planning a release.

On the feature record, we had a "Planning" tab:

image

Zooming in a bit:

image

What we did is have people enter an estimated cost for each feature in the work item. Then we pulled them into a stack-ranking spreadsheet that looked like this:

image

This is a TFS-bound Excel spreadsheet with some formatting options. Note the following:

  1. The ballpark estimates (and all the other data) are pulled directly from TFS. This was great, because all the estimates were entered separately, but could be pulled into a single place for planning
  2. We stack-ranked all the features, top-to-bottom.
  3. We added some logic to the spreadsheet to compare total cost with team capacity. Teams turned yellow if they used up more than 70% of their capacity, and turned red if they used up over 100%.

This gave us a very quick view of what could and could not be done, without a lot of work or schedule-crunching. It helped us determine where the cut-line was, and we played around by moving certain features up and down, to get a line we felt comfortable with. For example, some larger features were just moved down, simply because it allowed several smaller, key features to be above the cut-line.

Honestly, after a while, it felt like a video game. We called it the yellow/red game, because it was a trick to see how far we could push down the yellow and red! :-)

Next post: How we tracked progress