Web Site: http://www.dhondt-teams-gel.com
Posts by :
- 1-pack of sticky notes
- pens for each group of 3-5 people
- dry erase board, table, window or wall to set up the maze
- The picture is to-scale, with a turtle being one post-it note tall. I’m also creating the same maze out of post-it notes here (you’ll do this as they write their code).
- Each team must pick some programmers and an artist.
- Artist: please draw a turtle on a post-it note. Put your team’s name on the turtle.
- Programmers: select and write down each of the symbols required to get the turtle pictured here to the exit at the top left of the maze. We also need someone from each group to draw a turtle on a post-it note.
- What questions do you have?
- OK, go!
- Once you’re finished making the maze out of post-its, ask who’s ready. Groups often need a few more minutes–announce that they can have up to five more minutes and set a timer.
- For any team that is ready, collect their turtle.
- Once you have ALL the turtles, ask the programmers to write their team name on their program, and pass their code to another team.
- Meanwhile, line up the turtles at the front of the maze.
- SPOILER ALERT–now explain the algorithm by which you’ll test the teams. Every team is responsible for giving you, the CPU, one symbol at a time from the code they have in front of them. You’ll point to a turtle and the team with the corresponding code must give you the next symbol. Since most (or all) teams wrote with the assumption they’d be the only turtle in the environment, the turtles will crash into one another. Turtles cannot pass through one another, so if a turtle hits another turtle, the command is aborted. Execute the directions as well as any three-dimensional physical robot would under the same circumstances.
- What happened here?
- Why were there so many crashes?
- What could you change to get your robot through the maze?
- If you could add one or two commands to the language, what would they be?
- Anyone want to try again? (If so, see me after class!)
- There are some environmental factors you cannot predict until you test in a realistic environment
- Testing first leads to discovery of these issues sooner, and leads to more robust code.
- customer discovery is a whole team activity (product owners can give developers a false sense of security)
- you’ve got to get out of the building (or in this case, away from the table) to find out what customers are willing to pay for
- delivery pressure with creative work makes people forget the big picture
- business & learning communities work better when we collaborate and share with more people (tables don’t have to remain isolated islands)
- waste comes from the assumption that we’ve got to use the whole sheet, and that volume is more important than customer discovery
- we don’t have to make anything at all to learn the acceptance criteria: simply go up to the facilitator and ask– what are you looking for? Response: beauty, symmetry, intricacy, round shape.
- a good customers’ time is limited and precious–use it wisely
Timing: 20-30 minutes
Explain to the audience that we’re going to play a game that allows them to program a robotic turtle to navigate through a maze, as pictured below. There are four simple commands in our programming language: forward, forward until it hits a wall, right 90 degrees, and left 90 degrees. You will use the arrows as pictured as symbols in writing your program. We’ll need at least two groups of 3 – 5 people, so please pick your group.
Running the simulation
Timing: 60 minutes (can be extended to 90 minutes by running more iterations). Setup/explanation takes 10 minutes; we’ll run 4-5 iterations of [3-minutes of execution, 3-4 minutes debrief, and 3 minutes of planning].
Pretend money (unit bills [euro/dollar], approx 100 units); ream of paper; 2 pairs of scissors for every 4 participants; audible timer; markers and flipchart for each table or dry erase board; optional gum or tape to attach snowflakes to the wall
Room needs tables that seat 4-8 people; for each table set up 1 pair of scissors, $5, and 5 blank sheets of paper. In a prominent location, add a label that says “Paper: 2 for $1; Scissors: $3″. Set up a big visible chart for each team either on dry erase or flip chart; set up these column headers:
Iteration, Cash on hand; WIP; Scissors Count; Sales Qty; Paper on hand
Instructions:If you’ve got more than 20 people, you’ll need an assistant–it’s fine to pull someone from the audience. Start a 3-minute timer countdown and say: “Your objective is to run a profitable business by creating and selling paper snowflakes. I’ll demonstrate making one for you right now to prove it can be done in under 3 minutes. First we fold a triangle, then fold that in half and in half again to ensure we have at least 3 axes. We give the triangles a rounded edge as so; then cut out shapes along the folds, and unfold it to produce a snowflake like this. You’ll have a limited amount of time to cut–since we’re not really here to make snowflakes–we’re here to experiment with running a business. After a 3-minute iteration, we’ll do a de-brief, then you can have 3 minutes to coordinate with your team (sprint planning) followed by the next iteration. If you run out of supplies, you can buy them at any time from the front of the room here. Paper is 2 for $1; Scissors are $3. Your table can self-organize around how to build the snowflakes. Any questions?” If they ask anything about acceptance criteria, say we can discuss when they come to sell you a snowflake.
Assistant/Customer Instructions (SPOILER–do not share this with audience):
Minimum acceptance criteria: snowflake must have a general sense of being round, it must have 3 axes of symmetry, and must have even, precise cuts. Torn paper, squares/rectangles, lots of overcuts on the snowflake, paper that the audience supplied–will all be rejected. Every time a snowflake is presented to you, give simple and direct feedback, e.g., I can’t buy this because these edges are torn–the quality isn’t high enough; this one doesn’t say “round” to me, can’t buy it; this is beautiful–I’ll give you $1 for it! Don’t haggle, just move on to the next vendor.
Valuation of snowflakes: Intricate, unique, symmetrical, beautiful snowflakes will be bought for $1-$5. In the first round, I never see anything worth more than $1. I rarely pay as much as $3. Encourage innovation by telling people “this is the first time I’ve seen a signed snowflake! $2!” or some such comment. Encourage intricacy–”wow–lots of space cut out, I like that”. Size matters–small snowflakes often can be purchased only two for a dollar unless they’re particularly ornate. As you buy snowflakes, either attach them to the wall or arrange them on the table in order of low value to high value. We’re not stating it in an obvious way, but hint at the valuation scheme every once in a while by hovering a new snowflake over the spectrum and say that this one “fits right about here, ok, $2″.
Observe what the teams are doing, and help them think like a lean startup. Give only one hint per debrief, then let them try it out for the next sprint. Some teams ignore what you say; that’s fine. Hints are like the following:
Do you have to cut out a snowflake to get customer feedback?
Is your team making a profit?
Do you know what the customer wants?
Have you followed the customer around a bit to see what he wants to buy?
What happens when you make clone snowflakes?
Do you have to use the whole sheet of paper?