Ensemble (formerly Mob) Programming
Ensemble Programming (formerly known as Mob Programming) is the logical extension of Pair Programming. The entire team work together to deliver a single Product Backlog Item (or User Story). They work using the same computer, at the same time. They do all of the steps of their development process together, from requirements -> code -> testing (and any other steps you want). Typically one team member acts as the “driver” - actually writing the code or the tests. While the rest of the team ask questions, make suggestions etc. The normal rule is that the person writing code, should only write things that the others suggest to them. People take turns, driving so that everyone gets time at the keyboard.
Because the entire team focused on one story at a time, then it is truly Limiting WIP. Furthermore, teams that do this tend to have higher throughput because of better quality. This also helps with knowledge sharing and cross-skilling.
Resource Links
- A day of Mob Programming - video
- Effective Mob Programming Patterns
- Ensemble Programming should be the preferred name for mob programming
- Feedback on Mobbing
- Five roles in a healthy mob
- Here’s the science behind mob programming
- I did mob programming every day for 5 months
- mobprogrammingrpg - a game
- Mob Programming – A Whole Team Approach by Woody Zuill
- Mob Programming Guidebook
- Our Path to Mobbing
- Reflections on six months of mobbing
- Remote Mob Programming - podcast
Mob Programming Books:
- Code with the Wisdom of the Crowd - Mark Pearl
- Remote Mob Programming - Dr. Simon Harrer, Martin Huber, and Jochen Christ