This week we had some leisure time with my Futurice team playing escape room games. Surprisingly, I enjoyed not participating in the play but observing how we solved the different puzzles together.
This led me to a revelation: what I saw was us doing swarming/mobbing with a WIP limit of 1, which is a recommended workflow in nearly all the Lean software development guides.
If you're not familiar with what swarming means, it's focusing as much as people on a single task. It's particularly handy with challenging tasks, but frankly, we should use it to solve any non-trivial task.
Mob programming, by definition, is a collaboration technique where all the brilliant minds work on the same task simultaneously in the same space (optionally on the same computer).
During our game, I recognised the following mob programming roles:
- drivers entering keycodes into locks and passwords into the companion application (equals writing code)
- navigators thinking out loud the next steps (equals thinking how the application logic should work)
- observers keeping the big picture in mind (or casually enjoying the ride and eating chips...)
It was also painfully apparent to me how challenging hybrid setups are. In our team on the second game, we had one person participating remotely through Google Meet. I think most of us forgot him being at the other end of the virtual space. No fun in that! Thus, hybrid collaboration with colocated and remote people remains an issue despite having proper tools.
I hope someone does proper research, but you can probably imagine what would have happened had we split the contents of the escape room puzzles and given each participant a single task to work on?
Would it have been as effective? Probably not. Would it have been as much fun? Definitely not! Yet, that is what we do most of the days every day at work.
Thinking about team flows, I think one player solving an escape room game without prior experience won't probably survive within the time limit despite using all the available hints. Compare that to our typical day where a single developer works on a challenging task for 1–2 weeks. It wouldn't be radical to guess that a mob could solve it in 1–2 hours.
What do you think is the more cost-effective way of working?