Sunday, January 20, 2013

Community TFS Report Extensions Version 1 Released

Last year Steve St. Jean and myself did some extensive work creating custom reports for a joint client of ours. The client was a large company well into an enterprise adoption of Scrum and other Agile practices. The reports we made them ranged from a set that helped make the testing efforts and work in progress in each Sprint more visible to multiple views of their Release Plan and its allocation of work to support software capitalization.

The client was gracious enough to give its permission for us to remove any of their proprietary material and release them to the public. Thus the Community TFS Report Extensions project on Codeplex was born.

We are happy to announce our first release of the report pack that includes our first two reports:

Test Plan Status Report 

The Test Plan Status is a report that extends the functionality found in the Test tab of Microsoft Test Manager.  While Test Manager can show you the completion status of the selected Test Suite, it does not show roll-up information when you have a hierarchy of suites.  This report is intended to fill that gap.

Release Plan Report

The Release Plan report shows the Product Backlog sorted by priority and overlaid with which sprint the items are forecasted to be delivered based on a given velocity. Only backlog items that have an effort, priority, and are in a valid state are included. Optionally you can specify a deadline which will appear before the Sprint it would fall during so you can see what items are forecasted to be completed by that date.

This initial release supports TFS 2010 and the MSF Agile 5.0 and MS Scrum 1.0 process templates (the Test Plan Status Report also support the CMMI template). We will be adding more reports in the near future along with updates to the current release with support for 2012 and some extensions.

Please take a look at the project and give us your feedback so we can continue to make these reports better. If you are interested in contributing, please let us know. The more the merrier!

Tuesday, January 15, 2013

Distributed Planning Poker and TFS

Mountain Goat software makes a great online planning poker application at (funny enough). After registering for free you can create games and invite your team members to participate and cast votes for User Stories.

We used this for our distributed estimation sessions but entering all the stories was bit laborious. There is a great option when you create the game to import stories in a comma delimited format. When you are using Team Foundation Server you can create a query to export selected fields for your User Stories and add them all at once while creating a new game.

Create a TFS query with the fields you want to show in the planning poker game like the one below.

Open the query in Excel.

Then save the spreadsheet as a CSV.

Then open the file in Notepad.

Copy the column header rows and the rows with the User Story data. When you create a new game on there is a field where you can paste the rows to import them.

Then when you start the game you can add each story.

Then your team can estimate each story.

Now if only they had an option to have it automatically update TFS with the result. Enjoy!

Wednesday, January 02, 2013

Agile Game Night Recap

This post has been sitting in my drafts folder for a few months! Sorry to post it so late.

On October 23rd the Nashville Agile User Group held an Agile Game Night to help people learn the principles and values of Agile through fun and games. While some really bad traffic kept some attendees away, those who braved the grid lock had a great time. Here's a recap of the games:

The Domino Effect

Benny Baggott facilitated the Domino Game. In this game teams estimate how long it will take them to build a tower of Dominoes to a specific height. Once they start executing the facilitator starts to treat each team a little differently to see how outside influences affect their progress towards their goal. Each team had different outcomes and it was a very interesting conversation afterwards.

It was noted that once one team finished and Benny started urging other teams to finish as fast as the first team they felt more pressure and knocked their half built towers down more. We discussed another option for running the game would be to have the different teams in separate rooms where they cannot see each other and then when getting estimates say things like "Really? That's your estimate? The other team was doing it in half that time." The idea is to illustrate how these outside influences from management can have a significant detrimental affect on team performance.

The Penny Game

Tommy Norman ran the Penny Game which a few people has done before in their certified Scrum Master training. In this game you simulate work by having 4 people at a table flip 20 pennies and pass them around the table. You start with large batch sizes and then reduce the size from 20, 10, 5, and finally to 1. The time each person takes is timed by their "manager" and the "customer" times how long it takes for them to get their first deliverable while the "CEO" times the whole process start to finish. 

After repeating the process with the different batch sizes you get some interesting conclusions from the time data. Time to market and total duration of a project is greatly reduced with the smaller batch sizes, but the individual performance is longer. The cost of each batch transition (passing the pennies to the next person) which could equate to any hand off overhead in your process adds up and reduces the efficiency of each worker but the performance of the whole process is much better. It is also a great way to also debunk the myths of productivity by making the individual parts of a process more efficient rather than the whole process.

The Agile Ball Game

This is another game some people had experienced as part of previous Agile training, but not as much as the penny game. Peter Balcarce led this game in which everyone is on a team who's goal is to pass around balls of various sizes to each other seeing how many they can get all the way through in 2 minutes. The rules are you have to have air time when passing the ball, everyone has to touch the ball at least once, you cannot pass to the people directly left or right of you, any dropped ball has to start over, and the first person who touches the ball has to be the last person. You get 1 minute planning and retros between 5 of the 2 minute sprints.

Those who have done it before are asked not give away the better processes for passing around the balls and to let the team self organize to figure it out. Generally the first run is very hectic and the team does not meet their goal. They normally regroup during the 1 minute retro and improve their process. On the second or third run the facilitator will start to remove people to simulate team members being called away for other important work. They also will bring in new team members who may not know the rules. The effect is that removing or adding team members almost always causes a significant disturbance.

Some other observations we had were that when we were tossing around balls of roughly the same size (like tennis balls) we established a good rhythm  but when balls of drastically varying sizes were introduced we were not as efficient. This is a great game for managers to show them how shuffling teams has a detrimental effect on their performance.

GetKanban Board Game

Chris Hefley and the gang from LeanKit Kanban introduced the GetKanban Board Game which is a fun, hands on way to learn the basics of Kanban. There are several versions of the game, some you can download for free, and everyone who played had a great time and said it really brought home the concepts of WIP, bottlenecks, lead time, etc.

We'd like to thank all attendees and those who helped facilitate the games. We would also like to thank our sponsors: Holland Square Group, Vaco, LeanKit Kanban, and Omnicell.