XP123Games → Release Planning Party

Release Planning Party

Goal: Practice release planning.

Time: 20-60 minutes.

Introduction:
Introduce the idea of story cards and release planning. Explain that customers produce stories, split them, and prioritize them, while programmers estimate stories and determine the velocity. Explain how the game will be played.

Material:

  • Blank sticky nametags
  • Pens
  • Small stickers (about 20-50)
Setup:
  • Select about 2 people to represent the customer, 2 to represent the programmers, and the rest (20+) to represent story cards.
  • Give the pens and blank nametags to the customers, and the stickers to the programmers.


Play:
1. Exploration. (~20 minutes)

  • Customer: Possible moves
    • Come up with a story; write it on a nametag; give it to a "blank" card.
    • When asked to split a story, rip up the old nametag, and write two or more new stories on new nametags, and give them to blank cards.
    • Write the most important stories, so that about 2/3 of the blank cards are used up.
  • Programmer: Possible moves
    • Estimate a story as 1 to 3 points; give the card that many stickers to put on their nametag.
    • Decide that a story is bigger than 3; ask the story card to go get split by the customers.
    • Continue until all the estimates are made.
    • It's OK to talk to the customers to find out what they really want.
  • Story card: Possible moves
    • Initially, you're blank. Wait until a customer gives you a nametag.
    • Once you have a story, get the programmers to estimate it and give you stickers.
    • If the programmers say your story is too big, go back to the customers who will split it.
    • Once you have an estimate (stickers), make an assessment of your importance to the final system. Cluster with other estimated stories that you think are of approximately equal importance, from high down to low.

2. Prioritize. (5-10 minutes)
The customer team prioritizes the stories from high down to low. (The customers' opinions override the cards' guesses.)

3. Declare Velocity. (1 minute)
The programmers declare the velocity. (Prompt them to say "4.")

4. Choose Release. (10 minutes)
The customers will define a release - several iterations worth of activity. The release will contain all, and almost only, the high-priority stories.

Arrange the stories in ranks; front row should be the most important stories. Have the stories put out their arms to represent their size. (1-stand normal; 2-arms to one side; 3-both arms out).

The customers can ask the programmers to split any stories they like. (This will help things fit into iterations better.)

Have the customers make sure the first iteration covers key aspects of the whole system. The other iterations should rank stories in decreasing order of importance (but don't get hung up on it).

Answer the question, "How many iterations will it take?"

5. Debrief. (15 minutes)

Have the students talk through what happened; then have them diagram the process.

  • Who writes the story cards?  [The customer]
  • Who estimates the stories? [The programmers]
  • What do the programmers do if they don't know how to estimate a story? [They do a "spike"; we didn't demonstrate this]
  • What happens if a story is too big? [The programmers ask the customer to split it.]
  • Can the customer refuse to split it? [No]
  • Who determines the velocity? [The programmers]
  • Who decides what story has what priority? [The customer]
  • Who determines what's in a release? [The customer]
  • What if the release takes too long? [The customer can choose different stories, choose to split stories, try to grow the team, or find a different team to work with]
  • When does analysis occur? [All the time, especially every time a story is discussed or split.]


Source:
(William C. Wake, based on the planning game as described in Extreme Programming Explained and inspired by Kat Koppett's use of improv techniques in games.)


Copyright 1994-2006, William C. Wake - William.Wake@acm.org