Remote Mob-programming toolkit
This template is inspired by a number of software coaches including Woody Zuill, Kevin Meadows and Llewellyn Falco.
Many teams are called 'teams' by name only. From what I can see, this is because we often do not focus on building team-specific skills. In sports, we focus on growing and developing the team because it's obvious that's how games get won. But in the software industry, we seem to think that the rules are different. Time and time again, we see that only groups of people working together on the same problem at the same time can succeed in complex domains.
This workshop gives people a sense of what it means to be a real software team. It introduces the participants to the communication tools they need to solve problems together and learn together. For people who have not had experience programming as a team before, this is always good fun and people come out of the workshop excited to bring these techniques into their day-to-day work. And that's the facilitator's goal - help your participants have fun and give them something tangible to bring back to improve their work.
Pick an exercise
- For a completely beginner team, I recommend working in online environments to avoid wasting time on misconfigured laptops.
Invite the participants
- Best results are with 4-6 people. Consider splitting up larger groups.
- Sessions should be 90-120 minutes.
During the Session
- Screen sharing: Each participant needs to access and hand-off the code they are working on
- Examples: MS teams
- Timer: Any timer will do.
- Examples: Mob-programming timer app, Google timer
- Any code you want to write must go through the hands of someone else.
- Build on whatever code was written before you - ie. No starting from the beginning.
- Treat everyone with kindness, consideration and respect.
- Driver: The person at the keyboard. The driver doesn't think. They just do what they are told to do.
- Navigator: The person who talks to the driver. They are the only one who is allowed to tell the driver what to do.
- Mob: Everyone else. Their thoughts, ideas and suggestions are funneled to the navigator.
- Facilitator: The person who is coaching and involving the whole team. The facilitator does not take part in the problem solving. They should ensure the team is obeying all rules and ask open-ended questions such as "When was the last time we ran the code?".
- Someone volunteers to be the first driver.
- Someone else volunteers to be the first navigator.
- The driver shares their screen.
- Everyone reads the problem statement.
- Start the timer for 5 minutes.
- The navigator either directs the driver straight away or consults with the mob on what to do.
- At the end of the 5 minutes, rotate the driver and navigator. The next driver can use the 'control screen' option on the first driver's computer.
- With 15 minutes until the finish, stop the session and run a retro.
- What new and useful tools did we use?
- What new thing did you see when we were coding?
- What shortcuts did we see?
- What was fun?
- What did you most enjoy in this session? How can we bring that into your team?
- How did you feel and what caused you to feel it?
Pick an experiment to bring back
- Group similar topics from the retro.
- Talk with the team to select 1 thing and decide on an experiment to bring in over the next week.