Fixing Product Backlog items in Scrum for Team System

For those of us who use Conchango's process guidance package for Visual Studio Team System, Scrum for Team System, life is good. Scrums are easy to track, burndown charts are cool to put up on the wall, and it's a breeze to see immediately where you are anywhere anytime. However there's been some rumblings with the tool for awhile but Conchango has come to the rescue with a fix.

The problem reared it's ugly head for me a month or two ago. I would look at the reports and whatnot on how much work remaining (in hours) there was on our Product Backlog Items (PBIs) for a given sprint. In our case, we had 600 hours left (which seemed about right). However when I looked at all the Sprint Backlog Items (SBIs) and totalled the hours remaining on the tasks, it only came to about 450 hours. This wasn't right and was really affecting our burndown charts and general feel of how much work was left before the sprint ended. Basically the work remaining in a PBI is inconsitent with the total work remaining for all the linked SBIs.

It is possible in “normal operation” for this to happen. The following are the most likely causes of this behaviour:

  1. Where a SBI is unlinked from a PBI and the SBI still had work remaining prior to being unlinked. Please reduce the Work Remaining to 0 and save prior to unlinking.
  2. Where an SBI is marked as deleted (v1.0, v1.1). This would not cause resynchronisation, and this can be resolved by installing Scrum for Team System 1.2. 
  3. Where load conditions on the server cause the “eventing service” to timeout, the work remaining in this case would not be updated.
  4. Where a PBI Work Remaining is edited from within Excel (unfortunately using the Excel add-in for TFS has the potential to overwrite a “read only” field).

After some discussion in the forum and a bit of testing of their tool, my problem is fixed. The command line tool is called the "Scrum Consistency Check" and will identify and resynchronize the work remaining on any project in your Team System that you think might be "out of sync".

It's a command line tool, but you run it from anywhere. The syntax for the tool is:

ScrumConsistencyCheck.exe [server] [project] [refresh (true|false)]

The server is your TFS server name. The project is what project you want to interrogate/update. The refresh is if you want to perform the update or just get a report of what the status is.

Here's a sample output from one of my projects that was suffering:

Check.exe myserver "BRMS" false
Server: myserver
Project: BRMS
Refresh out-of-sync PBI's: false

Number of PBI's in Team Project: 228

 

Inconsistent backlog items:
PBI 273, Work Remaining: 8 hours, Children: 13
        Inconsistent work remaining, difference: -8 hours
        SBI: 772, Sprint: 5 State: Done, Work Remaining: 0 hours
        SBI: 756, Sprint: 4 State: Done, Work Remaining: 0 hours
        SBI: 748, Sprint: 0 State: Not Done, Work Remaining: 0 hours
        SBI: 346, Sprint: 2 State: Done, Work Remaining: 0 hours
        SBI: 282, Sprint: 2 State: Done, Work Remaining: 0 hours
        SBI: 281, Sprint: 2 State: Done, Work Remaining: 0 hours
        SBI: 280, Sprint: 2 State: Done, Work Remaining: 0 hours
        SBI: 279, Sprint: 2 State: Done, Work Remaining: 0 hours
        SBI: 278, Sprint: 2 State: Done, Work Remaining: 0 hours
        SBI: 277, Sprint: 2 State: Done, Work Remaining: 0 hours
        SBI: 276, Sprint: 2 State: Done, Work Remaining: 0 hours
        SBI: 275, Sprint: 2 State: Done, Work Remaining: 0 hours
        SBI: 274, Sprint: 2 State: Done, Work Remaining: 0 hours
PBI 678, Work Remaining: 12 hours, Children: 2
        Inconsistent work remaining, difference: -12 hours
        SBI: 869, Sprint: 4 State: Done, Work Remaining: 0 hours
        SBI: 709, Sprint: 4 State: Done, Work Remaining: 0 hours
PBI 235, Work Remaining: 2 hours, Children: 6
        Inconsistent work remaining, difference: -2 hours
        SBI: 396, Sprint: 3 State: Done, Work Remaining: 0 hours
        SBI: 321, Sprint: 2 State: Done, Work Remaining: 0 hours
        SBI: 320, Sprint: 2 State: Done, Work Remaining: 0 hours
        SBI: 319, Sprint: 2 State: Done, Work Remaining: 0 hours
        SBI: 318, Sprint: 2 State: Done, Work Remaining: 0 hours
        SBI: 317, Sprint: 2 State: Done, Work Remaining: 0 hours
PBI 676, Work Remaining: 16 hours, Children: 0
        Inconsistent work remaining, difference: -16 hours
PBI 998, Work Remaining: 4 hours, Children: 0
        Inconsistent work remaining, difference: -4 hours
PBI 220, Work Remaining: 59 hours, Children: 0
        Inconsistent work remaining, difference: -59 hours

 

Hours lost (less in PBI than SBI): 0
Hours lost (less in SBI than PBI): 106

 

Finished!  Press <enter> to continue.

Once you run the tool and pass in "true" to refresh the out-of-sync PBIs you should see this:

Check.exe myserver "BRMS" false

Server: myserver
Project: BRMS
Refresh out-of-sync PBI's: false

Number of PBI's in Team Project: 228

Inconsistent backlog items:

Hours lost (less in PBI than SBI): 0
Hours lost (less in SBI than PBI): 0

Finished!  Press <enter> to continue.

You can download the tool from here. For support of the tool, please use the forum here. Hope this helps!

No Comments