Adventures in Mob Programming - Day 3

It's really amazing how succinct and simple stand-up can be when you're doing mob programming.

I'm on one of three mobs of a particular team, so our stand-up has something like 15 people in it, including some product folks. Our stand-up is structured with one person on each mob speaking about what their mob plans to do today based on the day before, as opposed to each individual. After all, everyone in a given mob was working/will work on the same thing!

Hunter specifically does some neat rotation between mobs and teams that allows everyone to work with everyone else. This sort of rotation also allows for folks to gain insight on all parts of a particular app/product, and theoretically on many apps/products. I'm really excited for the chance to work with everyone else, on all the things.

Anyway, today was actually my first full day of mob programming. Right after stand-up, we took our short break, then we dived in. We spent the morning mobbing together for about 3.5 hours trying to fix an issue with a CI pipeline, then in the afternoon we mobbed for another 3 hours wrapping up the pipeline issue and getting started on a chunk of new work. 

So far, these are my favorite things about mobbing:

  • The chance to listen to fellow mobbers, process what they're doing, and learn from it
  • Getting to ask questions immediately when something is u
  • Feeling helpful and useful with even limited domain knowledge (since all members of the mob get to share the domain knowledge)
  • Taking deliberate steps that all members of the mob are on-board with

There were a few times during the day where some old mental patterns came to play - fears of "I will not be able to solve this problem!" or "I have no idea what's going on, and never will!" or "These people probably think I'm totally stupid!" 

These were the sorts of thoughts that would fill my brain while coding alone, which would become so noisy that I couldn't focus, eventually proving all those negative thoughts right. The whole reason why I wanted to try mob programming is to avoid this type of negative setting. I'm a believer that I am not my thoughts, and that I shouldn't take my thoughts too seriously - however, this is easier said than done. Today, when I found I was too in my head, I tried instead to focus on the three delightful members of the mob, and what we were doing collectively. I'm sure there are moments where I did sound pretty stupid - these days, my goal is not to clam up so as to avoid those moments, but instead to lean into it and actually try to learn something.

I can already tell that my biggest hurdles to becoming a great mob programmer will be focus/attention and learning to learn

While working from home offers some incredible benefits (especially for a privileged person like me with fast internet and a spacious, quiet home) it can become super easy to lose focus on the task at-hand. Part of this may also be my neurodivergent brain, but I'll be honest - there was a moment or two when I was startled to discover I was staring into my phone when I should have been paying attention to the mob. Tomorrow, I plan to keep my phone far away from me, and probably dig up my fidget toys to play with instead.

As far as learning to learn, this one is a bit more tricky. Many software jobs I have held in the past didn't have cultures that encouraged learning or growth; it was the status quo to stay-put. If we're being real with ourselves, I would imagine many software shops are actually this way. This seems to me like the antithesis of true Agile spirit - since how can we be consistently improving if we're not, like... actually improving?

My antidote for my exhaustion after a hard, full day's work of mob programming? Taking a bubble bath.