For the first of our monthly code retreats, we had 6 brave soles who were not deterred by snowmagedon. At this event, we experimented with a Randori fish-bowl for the first time. Here’s what we did:
Three chairs are setup at a small table with a shared laptop connected to the overhead projector. After an initial pair volunteered to start us off, the remainder of the attendees setup chairs positioned so they could watch both the overhead screen and the current pair.
What made it a “fish-bowl” Randori was the 3rd chair, initially empty. The rule is that there must always be a pair working, and that they were to do ping-pong pairing. The audience gets to cheer the pair on, offer suggestions, or heckle, as they chose. But the risk to a heckler is that too much heckling could result in a current pair member stepping away and putting the heckler on the spot by inviting them to step up, which they are obliged to do. The other way to refresh the makeup of the current pair is that any audience member can occupy the vacant third chair, obligating one of the pair to give up his/her seat.
We ran this configuration for a 45 minute sprint on the prime factors kata and got an unexpected outcome. At the end of 45 minutes, even with a group of mostly seasoned developers, they had failed to complete the kata, When asked why they thought this was one observation offered provided the best insight: it’s really really hard to allow the code to tell you what it needs when working on a problem if you think you already know how to solve it. Specifically, participants couldn’t agree on at what point to stop doing the simplest thing that met the test and dive headlong into writing the regression they knew would be required for the ultimate solution.
In hind site, I’ll add a new rule next time we do the fish-bowl Randori: the audience can only address the active pair, i.e. no side conversations. Side conversations introduce way to much chatter and detract from the focus on the pair and what they are doing. Also, the group came up with an alternate approach for rotating the pair: time-box how long the pair remained in place. We may give that a shot in the future.