by Mark Pearl
“Code with the Wisdom of the Crowd” explores the concept of Mob Programming, a software development approach where a team works together on a single task at the same time. The book provides valuable insights and guidance on how to effectively apply Mob Programming in various development environments.
I had the pleasure of working with Mark Pearl while in a team at MYOB. He consulted for 1 hour for my team that wanted to try Mob Programming and, with my help facilitating it due to my previous experience, became one of the best teams in the company in my tenure. The success of that team drove all the changes in the Sydney office to include “Mob Stations”, which you may see in the Sydney office up to this date on Kent Street.
Back to the book summary, the most valuable points are:
The Power of Collaboration
Mob Programming emphasizes the value of collaboration, enabling a team to solve problems more effectively by leveraging the diverse skills and experiences of its members.
For example, a team working on a complex feature collaborates in real time, allowing them to quickly identify potential issues, share ideas, and iterate on their solution.
The Driver and Navigator Roles
The book introduces the roles of Driver and Navigator in Mob Programming. The Driver focuses on writing the code, while Navigators discuss and guide the direction of the work. These roles are rotated regularly to maintain engagement and encourage knowledge sharing.
For example, a team rotates the Driver role every 15 minutes, allowing each team member to contribute code and gain familiarity with different parts of the project.
Continuous Learning
Mob Programming fosters a culture of continuous learning, where team members learn from each other and have the opportunity to develop new skills and expertise.
For example, a junior developer in a mob programming session learns best practices and coding techniques from more experienced colleagues, accelerating their professional growth.
Effective Communication
The book highlights the importance of clear and effective communication among team members to ensure that everyone understands the goals and direction of the work.
For example, a team practising Mob Programming conducts regular check-ins and retrospectives to discuss progress, share feedback, and align on the next steps.
Handling Conflicts and Decision-Making
The book discusses strategies for managing conflicts and making decisions in a Mob Programming environment, ensuring the team remains productive and focused on their goals.
For example, a team facing a disagreement on how to implement a feature uses a time-boxed decision-making process, discussing the pros and cons of each approach and reaching a consensus on the best course of action.
Caveats not Included in the book
I have extensive experience in Mob Programming (also called Ensemble Programming), applying it successfully to turn around teams in a commercial enterprise setting multiple times in multiple companies.
It’s very important that you get someone that understands how it works and made it successful in the past. Just trying without guidance is very hard, but it’s doable with some effort and continuous refinement of the ways of working.
Nowadays, in the remote setting, it's very important to understand the role of the driver and navigator and how it can help to equalise latency issues in a way everyone understands what's going o at the same pace.
By applying the principles and practices outlined in “Code with the Wisdom of the Crowd,” development teams can harness the collective intelligence of their members, improve their problem-solving capabilities, and ultimately create higher-quality software.
Just be careful not to use it blindly.
Thanks for reading. If you have feedback, contact me on Twitter, LinkedIn or Github.
Top comments (0)