In this Iterations interview, an excerpt of which was originally published in the April 9, 2008 issue of the Iterations newsletter, Arlo Belshee discusses the concepts of "beginner's mind" and "promiscuous pairing."
Arlo Belshee does a little bit of everything, from management to in-the-trenches development, but he seeks mainly to inspire courage. Arlo has been involved in agile since 1999, yet worked for two years in the middle of that period in a rigorous, effective, and pro-people waterfall development shop. He's a strong believer in discipline and the agility that comes from it, in punctuated continuity, and in change as the only constant.
Here, we ask him to elaborate on the topics of "beginner's mind" and "promiscuous pairing."
Iterations: What is "beginner's mind," and how does it relate to software practices?
Arlo Belshee : Beginner's mind is that mental state that people enter when they don't quite understand what is going on around them. You commonly see it when people first play a new board game. They don't understand the rules or strategies, but they want to. They enter a state of heightened observation, experimentation, and pattern matching. It is exhausting, rewarding, and can result in "beginner's luck." Beginner's mind is probably the most effective mental state for learning.
And that's why it relates to software development. Software development is really nothing more or less than a large number of people trying to learn about something very complex-how to satisfy the needs of a large number of discordant individuals. The developer can't really learn the thing in enough depth without writing it down (in code, preferably). If they're doing agile development, then they ship that written representation of their learning; there is no other step. Therefore, the key software practices are all about either learning, communication, or both.
Beginner's mind ends when you first feel that you start to understand it. It is an extremely high-energy state and metabolically costly. The mind would rather get out of it. However, it allows learning in excess of any lower-energy state--including flow.
Here are some of the differences between flow and beginner's mind:
- Flow depends on deep knowledge and expertise. Beginner's mind depends on feeling like you don't understand. Flow is easier to achieve when you've already done this task dozens of times; beginner's mind is easier to achieve when the task is (in some important way) new.
- Flow depends on uninterrupted work, so you can upload everything and work intuitively and smoothly. Beginner's mind is assisted by interruptions, as they help you lose preconceptions you may be gaining during work; this is why sleeping on a problem works.
- Flow optimizes your ability to do; beginner's mind optimizes your ability to learn.
For these reasons, beginner's mind is generally more useful in software development. The more you are building the same product--in the same way, for the same people, as you've done dozens of times before and without interruptions or changes--the more flow helps. The more you are trying something new, or handling changes, the more beginner's mind helps (and the easier it is to achieve). The valuable projects tend to be in the second camp.
Iterations: What are the advantages of promiscuous pairing?
Arlo Belshee : Promiscuous paring is both a communications and a learning practice. It heightens both of these aspects as far as I've seen them go. As such, it also ends up being an extremely effective team- and trust-building practice.
- Rotating pairs every ninety minutes keeps everyone constantly in beginner's mind.
- Pairing on 100 percent of the work, using 100 percent of the time in office, ensures that everything that anyone learns is learned publicly. The learning is communicated between the pair and then tends to flow through the group, rather than remaining the property of