Baba is You
What can a puzzle game teach you about software development? More than you think.
I discovered a very interesting puzzle game recently. It is called Baba is You! It is available on Steam. It is quite fun. You are a sheep and you get to move around and push blocks around in order to get to a flag. Like a lot of puzzle games, you discover the rules as you play. This game has an interesting twist in that solving the puzzles involves changing the rules. I highly recommend it. It is quite fun and addictive.
Software Teaming
What does this game have to do with coding? On the surface, not a lot. However, I learned about it from attending the New England Agile Software Teaming Conference. Woody Zuill was there and he did an introduction to Software Teaming Workshop. Software Teaming is sometimes referred to as Mob or Ensemble Programming. It is called teaming because you all work together as a team. One group of people gathered around one computer with one keyboard.
Instead of collaborating on writing code, we collaborated on playing this particular game. Using the game instead of coding, actually worked quite well. By not having to focus on coding, we were able to focus more on group dynamics and interaction. We started out with some very restrictive rules for participation and then eventually after a few iterations the rules started to become less restrictive. The whole setup worked very well. If you ever get a chance to attend one of Woody's workshops or work with him, I highly recommend it. It was very fun and I learned a lot.
Here are a few lessons that I learned.
- All input flows verbally from the navigator through the driver's hands to the computer - This is just the basic starting point. We have a driver, who is sitting in front of the computer, the navigator, and the rest of the mob. The driver isn't acting on their own, they are responding to the navigator's verbal queues. The driver acts like a higher-level interface to the computer.
- As navigator part of your job is to verbalize your thoughts - As navigator, it helps to point out to the group what you notice. It helps to keep everyone on the same page.
- Give high-level directions - As the navigator you need to convey your intent and not micromanage the driver. It helps to think of the driver as a taxi driver. You don't tell the taxi driver how to get to the airport, you simply tell them you want to go to the airport and let them figure out the route. If the taxi driver needs clarification, like what terminal you need to go to, they'll ask.
- Know when and how to speak up. - A large part of the training was knowing how and when to speak up. In the beginning, the rule was that no one could talk except for the driver/navigator. Sometimes it was painful to watch when you saw the obvious solution and the navigator missed it. Sometimes however the navigator had simply found a different or better solution. Eventually, the rules loosened to where as a member of the mob you could ask the navigator if they would like a suggestion. Being forced to bite your tongue was a good learning experience.
- If the driver has a suggestion they should switch out. - There was a situation where I was the driver and I had an idea and wanted to offer a suggestion. Woody pointed out that his usual rule is that if that happens the driver should give up his driver position and either become the navigator or become a member of the mob and offer a suggestion.
Samman Coaching
I've been taking some classes lately from Emily Bache on Samman Coaching. It utilizes the teaming approach combined with some learning hours. If you'd like to try it out, let's talk.