Zendo and the Art of Software Development

There is a Looney Labs game called Zendo. Using pieces called Treehouse Pieces and some Pente stones, Kory Heath has created a most challenging game.

One person is the Master, and two or more other players are students trying to guess the koan (puzzle). To begin, the Master decides on a secret rule and creates two puzzles: one that follows the rule (marked with a white stone), and one that doesn’t (marked with a black stone). Students take turns making puzzles, after which they can either say “Master” and have the Master score the puzzle (mark it with a black or white stone as appropriate), or they can say “Mondo”, in which all the students guess whether the puzzle follows the rule. Students that guess correctly get a guessing stone. To win, you must be the first student to correctly guess the puzzle, and a guess costs a guessing stone. If you guess incorrectly, the Master must prove the guess wrong by creating a puzzle that contradicts the guess. In this way, each turn gives a little more information about the nature of the secret rule.

Unlike most other strategy game out there, this is a game of inductive logic. Deductive logic involves taking information and narrowing in on a solution; inductive logic is the reverse, taking small pieces of information and extrapolating a general rule.

I can’t give a comprehensive list of possible rules, which is what makes the game so interesting! Rules can concern a piece’s shape, its size (small, medium, or large), the number of pips on its faces (small = 1, medium = 2, large = 3), its orientation, its orientation in relation to other pieces, and so on. To make the game playable, there are some restrictions on rules. For example, no puzzle can refer to other puzzles or the surrounding environment.

What does this have to do with software engineering? Software design in an exercise in inductive reasoning. Often, we engineers have to take specific situation spelled out in requirements, and induce a general rule, so as to avoid unintended behaviors.

The game has a bit of a learning curve. If I could make it easier to teach, I’d love to use it as an interview tool, because I’ve found a strong correlation among my peers between people who are good programmers and people who are good at Zendo.

I would recommend the game. Although buying the 5 Treehouse sets needed to play is expensive, like a deck of playing cards, the Treehouse pieces themselves can be used to play dozens of other great games as well. In the end, I think it’s a good investment.

Can you figure out the answer to the pictured koan? The solution is in the comments on Flickr.