The Art of Mob Programming

by Massimiliano Fattorusso - 22 Nov 2016

As a Producer at Zalando, our roles are instrumental in supporting development teams achieve excellence when delivering software. We help them by creating an environment where every team member can give their best.

A few months ago, I read an article written by Woody Zuill about Mob Programming, a fairly new concept based on how we approach teamwork in software development.

The concept requires that the whole team works on the same thing, at the same time, in the same space, and, wait for it, at the same computer! All code that enters the codebase is done so through this single computer. This process is similar to pair programming, where two people sit at the same terminal and collaborate on the same code at the same time, but with Mob Programming the collaboration is extended to everyone on the team. Other computers are available to individuals for non-coding activities, such as researching.

We noticed that working together in general was rather effective, so we simply decided to do more of it. We aim to try and reduce the distance between decision making and the creation of solutions.

My team was struggling with getting their work done, and they were running many tasks in parallel – in sub-teams or pairs. This resulted in a diverging of ideas to the point that it was necessary to have fixed weekly technical alignment meetings. This approach was clearly not agile enough: We were too slow when it came to decision making and reacting to changes.

It is clear that Mob Programming is not a ‘one fit for all’ type of process. Small tasks and routine job can be worked on efficiently without setting up a MOB session. I would advise that you to talk to your team and give it a try for more creative activities, like the resolution of complex problems.

The results of our MOB sessions conducted up until till now are promising:

  • Creates a positive team mood
  • Lead time is reduced and amount of WIP is naturally decreased
  • Promoted a shared understanding of problems, with everyone staying involved
  • Reduction of unnecessary task switching and interruptions.

Some may argue that MOB sessions aren’t efficient, which is technically correct, if you’re measuring each team member’s utilization or the lines of code written by your developers. I personally refer to the Agile Manifesto principle of “working software is the primary measure of progress”, thus MOB sessions have made a real impact on how we work together.

This approach relies heavily on good communication, alignment, collaboration, and continuous code review, which are all essential ingredients for a well-functioning, self-organizing team. Our team will continue to use experiment with and use this process for future projects to ensure we’re tackling problems creatively and achieving excellence.

Similar blog posts