What is Mob Programming? - Part 1
What is Mob Programming? Mob programming takes the concept of pair programming to include the entire team. One person acts as the "driver," typing the code, while others serve as "navigators," providing guidance and suggestions. (Although there are more roles than just these two.) Roles rotate frequently, typically using a timer, ensuring everyone participates actively. The benefits for this approach fosters shared ownership, immediate knowledge transfer, and higher quality code through continuous review and a huge bonus, no PRs! No PRs because the idea is that 6 or more eye-balls reviewed the code in real time. New to Mob Programming? If you're just starting with mob programming, here are some basic principles to follow: Establish clear roles Define who's driving, who's navigating, and ensure everyone understands their responsibilities Rotate frequently - Keep everyone engaged by switching roles every 5-15 minutes. Focus on communication - Express ideas clearly and listen actively to others. Start small - Begin with shorter sessions (1-2 hours) before attempting full-day mobbing. Use appropriate tools - Screen sharing software and timers can significantly improve the experience. Timers are a must! Anti-Patterns of Collaborative Coding Being aware of common pitfalls helps teams maintain an effective collaborative environment: The Bulldozer - Dominating the session by forcing through personal ideas without considering input from others The Supreme Navigator - Giving overly detailed instructions that don't leave room for the driver to think The Lesser Navigator - Providing instructions that are too vague or abstract to be actionable The Rogue Driver - Implementing solutions without adequate explanation or team consensus The Silent Observer - Passive participation without contributing ideas or feedback Mini Retro Topics/Styles Regular retrospectives help teams refine their collaborative approach. Here are some effective formats and questions: Technical Focus Looking back, is there anything you would have changed about the approach we took today? What was the most difficult thing to wrap your head around today? What lack of technical knowledge did it feel like we were fighting against the most today? Did you feel like we had to make any compromises today? What is the most likely way our story can fail in production? What is a coding pet peeve of yours? Social Focus What was one thing that you saw someone else do today that you really enjoyed or appreciated? How did the flow feel today? Did you feel heard today? Do you feel like we effectively solved the problem at hand today? Did you have fun today? Is there anything we could have done to have more fun today? Other Retrospective Formats Boot, Elephant, Butterfly - What slowed us down? What issues are we avoiding? What positive transformations occurred? Rose, Thorn, Bud - What went well? What challenges did we face? What opportunities do we see for improvement? Tools for Effective Collaboration Screen Sharing Pop - A lightweight screen sharing tool designed specifically for pair/mob programming VS Code Live Share - Allows multiple developers to edit code simultaneously Tuple - A screen sharing tool optimized for pair programming with minimal latency Timers for Role Rotation Mobti (browser application) - Simple browser-based timer for tracking driver rotations Communication Tools Slack/Discord - For side conversations and sharing resources without interrupting flow Digital whiteboards - For visualizing complex problems and architectures Mob programming may not be for everyone nor will everyone be receptive to it. I sure wasn't. Then, I saw the light. It allowed our team to ship value faster, and of higher quality. What mob programming coding techniques have worked for your team? Have you mobbed? Are you curious about it? Share your experiences in the comments below! About the Author: I'm Marco, and I built my first Flask API to track my ever-growing collection of unread programming books. Ironically, I've added more books than I've read. I write at Dev.to about Python, Typescript, AI, DBs, APIs, Programming, and more.

What is Mob Programming?
Mob programming takes the concept of pair programming to include the entire team. One person acts as the "driver," typing the code, while others serve as "navigators," providing guidance and suggestions. (Although there are more roles than just these two.)
Roles rotate frequently, typically using a timer, ensuring everyone participates actively. The benefits for this approach fosters shared ownership, immediate knowledge transfer, and higher quality code through continuous review and a huge bonus, no PRs! No PRs because the idea is that 6 or more eye-balls reviewed the code in real time.
New to Mob Programming?
If you're just starting with mob programming, here are some basic principles to follow:
Establish clear roles
Define who's driving, who's navigating, and ensure everyone understands their responsibilities
Rotate frequently - Keep everyone engaged by switching roles every 5-15 minutes.
Focus on communication - Express ideas clearly and listen actively to others.
Start small - Begin with shorter sessions (1-2 hours) before attempting full-day mobbing.
Use appropriate tools - Screen sharing software and timers can significantly improve the experience. Timers are a must!
Anti-Patterns of Collaborative Coding
Being aware of common pitfalls helps teams maintain an effective collaborative environment:
The Bulldozer - Dominating the session by forcing through personal ideas without considering input from others
The Supreme Navigator - Giving overly detailed instructions that don't leave room for the driver to think
The Lesser Navigator - Providing instructions that are too vague or abstract to be actionable
The Rogue Driver - Implementing solutions without adequate explanation or team consensus
The Silent Observer - Passive participation without contributing ideas or feedback
Mini Retro Topics/Styles
Regular retrospectives help teams refine their collaborative approach. Here are some effective formats and questions:
Technical Focus
- Looking back, is there anything you would have changed about the approach we took today?
- What was the most difficult thing to wrap your head around today?
- What lack of technical knowledge did it feel like we were fighting against the most today?
- Did you feel like we had to make any compromises today?
- What is the most likely way our story can fail in production?
- What is a coding pet peeve of yours?
Social Focus
- What was one thing that you saw someone else do today that you really enjoyed or appreciated?
- How did the flow feel today?
- Did you feel heard today?
- Do you feel like we effectively solved the problem at hand today?
- Did you have fun today? Is there anything we could have done to have more fun today?
Other Retrospective Formats
- Boot, Elephant, Butterfly - What slowed us down? What issues are we avoiding? What positive transformations occurred?
- Rose, Thorn, Bud - What went well? What challenges did we face? What opportunities do we see for improvement?
Tools for Effective Collaboration
Screen Sharing
- Pop - A lightweight screen sharing tool designed specifically for pair/mob programming
- VS Code Live Share - Allows multiple developers to edit code simultaneously
- Tuple - A screen sharing tool optimized for pair programming with minimal latency
Timers for Role Rotation
Mobti (browser application) - Simple browser-based timer for tracking driver rotations
Communication Tools
- Slack/Discord - For side conversations and sharing resources without interrupting flow
- Digital whiteboards - For visualizing complex problems and architectures
Mob programming may not be for everyone nor will everyone be receptive to it. I sure wasn't. Then, I saw the light. It allowed our team to ship value faster, and of higher quality. What mob programming coding techniques have worked for your team? Have you mobbed? Are you curious about it? Share your experiences in the comments below!
About the Author: I'm Marco, and I built my first Flask API to track my ever-growing collection of unread programming books. Ironically, I've added more books than I've read. I write at Dev.to about Python, Typescript, AI, DBs, APIs, Programming, and more.