Mob Programming: A Whole Team Approach
Mob programming is a software development approach where the whole team works on the same thing at the same time, in the same space, and at the same computer. Similar to pair programming, where two people collaborate with one keyboard, Mob Programming extends the collaboration to everyone on the team.
How could this possibly work?
While it might seem that a group of five or six people working on separate tasks will be more productive than having those same five people work on a single task, in actual practice this we found this isn’t always true. We discovered that some of the problems that typically plague development efforts simply faded away once we became good at Mob Programming, and a lot of good things were happening.
- With all of us working on the same thing together, the best of each of us goes into everything we do. Where I am weak, another is strong.
- We engage our internal customers as team members: They come and sit with us daily as we work for an hour or two, and this provides rapid, meaningful communication resulting in code that gets delivered into production that does what the users want. We get quick validation of the usefulness of the code.
- We never put off cleaning up the code, so very little technical debt enters our code. When working alone it’s easier to think “I’ll clean that up later”, but with the group someone will say “we better clean this up right now”. Almost nothing shady sneaks into the code.
- Most questions we come up as we work can be quickly answered by another member of the team. We have very little blocking and context switching due to unanswered questions.
- By working on one thing at a time, an idea goes from inception to delivered, working software in just a few hours. Each product grows daily so we can validate both the value and correctness of everything we do as fast as possible.
- As a team we have enough familiarity with anything we are working on so that when someone is out sick or on vacation there is no blocking due to lost knowledge.
- On-boarding new people happens instantly. There is no learning curve to be able to be productive.
- Everyone is learning and increasing their skills continuously. We are all exposed to what everyone else knows, and anytime we find something we don’t know we all learn it as a team. There are no information or skill silos.
While there is a great deal of overhead in managing the typical team we noticed that most of that overhead disappeared when we started “mobbing”. What if working together as a team actually eliminates the cost and work of managing software development? I think it has for us to a great degree.
Turn Up the Good
This is the real story of Mob Programming: We noticed that working together was giving us great results and simply decided to do more of it. This comes from Kent Beck, a prominent pioneer of Extreme Programming: “When I first articulated XP, I had the mental image of knobs on a control board. Each knob was a practice that, from experience, I knew worked well. I would turn all the knobs up to 10 and see what happened.”
We believe that if we pay attention to what is working well for us, and then finding ways to “turn it up”, good things will happen. This is what made it possible for this team to discover mob programming and many other great things. I am certain it will make it possible for you to discover great things for your team.
Please join me for a full day of Mob Programming in Stockholm 18th of September. We’ll learn the ins and outs, and spend a whole day finding ways to turn up the good.
Entry filed under: Uncategorized.