Pair Programming is one of the key practices of eXtreme Programming (XP). Two programmers work together at the same terminal to produce some part of an application. Sets of pairs produce the entire product. Research has shown that the productivity of such pairs is no less than that of teams of the same size working individually, and that job satisfaction increases with pairing. However, many people are skeptical initially about the practice until they try it.
This simulation is intended to show novices, and even non technical people, what it is like to work in a pair to produce something. It tries to incorporate a few other features of XP as well, such as User Stories. As such, it can be used in the initial stages of XP training.
In Pair Storytelling, two people work together at a single terminal or laptop to write a story that is partly specified by another person (the customer). The stories suggested here are all based on familiar children's fairy tales. The task is to update them to the 21st Century, being as creative as you like.
Someone with pairing experience will be needed as facilitator or coach, who also acts as customer. The facilitator creates several story cards. Each card gives the name of a fairy tale and perhaps some more specific instructions, say limiting the task to a page or two. There is one card available for each person. They don't all need to be different, but there should be some variety. Schedule 60 minutes for the simulation and 30 minutes or a bit more for the debrief.
You will need a screen or laptop for each participant for the first part and half as many for the second. Some paper is also handy for taking quick notes in the heat of the simulation. It might be helpful to have children's books that contain the stories. This is especially true if you have a wildly multi-cultural set of participants. If you do, you can accumulate the equivalent things from other cultures to use in the future. You can provide short summaries also, containing key story elements.
Typical fairy tales are Goldilocks and the Three Bears, Little Red Riding Hood, The Three Pigs (and the Big Bad Wolf), Jack and the Bean Stalk and Hansel and Gretel. These are probably known to people who grew up in the U.S. and to many Europeans as well. Some others can be found at SurLaLune Fairy Tales.
Phase 1. Individual work. Each individual chooses a card. Working alone at a terminal, each person completes the task on the card. They have 20 minutes to complete the task.
At the end of the time, the facilitator asks three people to read their stories. Do not ask for volunteers. After this, ask if anyone else wants to read their story. Spend about 10 minutes hearing stories. You probably won't have time for all of them.
Phase 2. Pair work. Next, pairs are formed randomly or otherwise.
Each pair chooses a card. Try to arrange it so that the pair chooses a card
other than the ones they have worked on in phase 1. The instructions are simply
to create the story "together."
Each team then does a quick presentation of its work, while the facilitator takes notes for possible improvement of each story (if the Refactoring variation is to be used). It helps if the facilitator has good hearing as there may be a lot of laughing.
The debrief is the most important part of any such simulation. Don't short change it. Once all the stories have been heard (or most of them if you have a lot of participants), the facilitator asks a series of questions. These were adapted from Pair Draw (see below). If you don't get volunteer answers you may need to use Round Robin or some other questioning technique.
The most important question is: "What was this like for you?" This one question may be enough. It is also open ended so that you don't lead the participants in any particular direction. Hopefully you will get answers to the following questions without asking them directly. If you don't you might try to lead them along a bit with the following.
* How did you feel when you were writing in a pair, compared to individual
* What do you notice is the same or different about solo and pair writing?
* Do you think the pair result is more creative, artistic, or fulfilliing than what you could produce alone?
* Did you find yourself concentrating more or less during pairing?
* Is it more fun to write alone or in a pair?
* What do you like and what don't you like about writing alone and in a pair?
* What was it like not knowing what your pair would type next?
* Did your partner help you get the creative juices flowing?
* Did the process help catch errors that might have occurred in the writing?
* Did pairing seem to you to increase or decrease productivity?
* Do you think that people get better at pairing over time?
* How do you think the simulation differs from real-world pair programming?
* What was this like for you?
Switching. The facilitator has the pairs reconstituted once or twice during the simulation. One person of each old pair stays with the work they just did, and the other finds a new partner to continue with. One way to do this is to have the person to the left in the pair move after 7 minutes and the person on the right move after 7 more minutes. Note that when a person moves she probably works on a different story. This is intended.
Refactoring. If you have time for it, have a second round of re-writes of the stories, with a re-write being done by a different team than the originators. The task is to improve the story. Ideally, the facilitator will have taken notes during the reading, and these can guide the re-writing. If there are a lot of participants you may need a few readers to comment on the stories so that each has a comment or two for the refactoring. Comments should generally be things to add or things to change.
Less time. If you don't have quite this much time in a session, you might be able to have the participants do the solo writing on their own before the session begins. Their "ticket" to the session is their story. They should still spend only about 20 minutes on the task, however.
XP Style. If you have time for another round, you could suggest trying it again, XP style, where one person at a time is the driver with control of the keyboard/mouse and the other is the navigator who comments and suggests as the driver caries the main burden. Roles switch rather often. The best time to switch is when the navigator has an idea that she wants to incorporate into the story. Another is when the driver runs out of gas and needs a break. Don't try this for the main simulation, however, as you want the participants to first find their own way. If you do this variation then debrief the main simulation as before but do it again after this session. With this variation, the process will take up to three hours. Time for a break.
Other. Instead of updating the stories to the 21st Century, you could do other things, such as updating them to the feminist perspective, or writing them as if they were news stories in the New York Times. Other possibilities abound, limited only by your imagination. It might help if you could somhow tailor it to your participants.
Our story cards are in a Powerpoint presentation. We print them four-up on perforated card stock. You may download them if you like.
The inspiration for this page is Pair Draw by Joshua Kerievsky of Industrial Logic (http://industriallogic.com). Joshua is a consultant and trainer, who is enthusiastic about such games in the industrial training environment, as are we in the more traditional educational environment. Some more background on such games and how to use them can be found on the Pair Draw page. In particular, the Debrief is critical. Note that this simulation requires a bit more time than the original Pair Draw. Joshua has another simulation that is a more complete introduction to XP as well.
Fred suggested this exercise as he and Joe were discussing Pair Draw for use in a class. Joe liked it a lot. Joshua gave many helpful comments on this as well.
Fairy Tales online:
http://www.surlalunefairytales.com <-- Has some links to tales from other cultures also.
http://www.pitt.edu/~dash/folktexts.html <-- Many, many stories.
http://directory.google.com/Top/Society/Folklore/Literature/Tales/ <- Variations
Last Updated: October 8, 2005