## Pages

### Henrik Kniberg's name game

Update: Henrik has now written a detailed explanation of how he plays the game here.

Henrik designed the name game to show how the lean idea of limiting work in progress can have a dramatic effect. Here's how you play:
Split into groups of six. In each group there are 5 customers and 1 developer. Each customer has a project - they simply want the developer to write down their name. That's it. During both iterations the following times have to be recorded (to the second):
1. the overall start time
2. the time each customer's project starts (when the developer writes down the first letter of their name)
3. the time each customer's project is delivered (when the developer writes down the last letter of their name)
4. the overall finish time

In the first iteration each developer has to act under the principle of "never keep a customer waiting" and tries to write all the names simultaneously. Let's see how a developer's name-sheet changes during this iteration. It starts off empty:
```1.        2.        3.        4.        5.
```
the developer asks their first customer for the first letter of their name and writes it down; the first customer's project has started so they write down their project's start time:
```1.B       2.        3.        4.        5.
```
the developer asks their second customer for the first letter of their name and writes it down; the second customer's project has started so they write down their project's start time:
```1.B       2.E       3.        4.        5.
```
the developer carries on until they have written down the first letter of all their customers names; every customer will have written down their project's start time:
```1.B       2.E       3.P       4.T       5.J
```
the developer asks their first customer for the second letter of their name and writes it down; if this completes the customer's name the customer's project is delivered and the customer writes down their project's finish time (Be will become Bert so not yet):
```1.Be      2.E       3.P       4.T       5.J
```
the developer asks their second customer for the second letter of their name and writes it down; again, if this completes the customer's name the customer writes down their project's finish time (El will become Ellie so not yet):
```1.Be      2.El      3.P       4.T       5.J
```
the developer carries on until they have written down the second letter of every customer; Jo is Jo so Jo's project is delivered and Jo writes down her project's finish time:
```1.Be      2.El      3.Pa      4.Te      5.Jo
```
the developer carries on round-robin, letter by letter, until they have written down the full name of all their customers; every customer now has a project finish time:
```1.Bert    2.Ellie   3.Pat     4.Terry   5.Jo
```
Stop the clock and record the overall finish time.

Now the developers swap customers (so they don't know their customer's names once more).

In the second iteration the developers act under the principle of "limit work in progress to 1 customer at a time". So no multi-tasking. Let's see how a developer's name-sheet changes during this iteration. It starts off empty:
```1.        2.        3.        4.        5.
```
the developer asks their first customer for their whole name and writes it down. When the developer starts writing their name the customer writes down their project's start time, when the developer finishes writing their name the customer writes down their project's finish time.
```1.Sally   2.        3.        4.        5.
```
the developer asks their second customer for their whole name and writes it down. Again, the second customer writes down their project's start and finish time.
```1.Sally   2.Russ    3.        4.        5.
```
the developer continues round-robin asking each customer in turn their full name. All customers now have a project start and finish time.
```1.Sally   2.Russ    3.Ed      4.Larry   5.Clive
```
Henrik writes:

Then we chart the results and compare and discuss. Typically the lead time per customer is at least 5x shorter in the second round, and the total time to do all customers is 3x shorter (so the developer could handle 3x more customers within the same time, and each customer only needs to be engaged in the project for 5x shorter time than before). Most people intuitively believe that, if you start something earlier, you will finish earlier. This exercise brutally murders that misconception :o) A simple exercise, but the effect is astounding.

If you like software-related games you might also like