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.
- Come up with a story; write it on a nametag; give it to a
- 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.
- Estimate a story as 1 to 3 points; give the card that many
- 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.
- Initially, you’re blank. Wait until a customer gives you a
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.