What is mob programming, and how can it help you sole complex problems? Mob programming is not a new methodology, and has a lot of additional benefits for your team.
3. Mob Programming Definition
As mobprgramming.org states:
“All the brilliant people working on the same thing, at the same time, in the same place and at the
same computer”
4. What is Mob Programming?
And as the name suggests, Mob Programming is an approach in software development where the
whole team works on the same thing.
This is similar to pair-programming where two people sit at the same computer and work on a task or
a problem at the same time. One usually does the coding and the other ‘navigates’.
This is not be be confused with ‘Swarming’, this is where the whole team gets together to plan a
solution, but then go off to work individually. In mob programming the team stays together throughout.
It builds on principles of lean manufacturing, extreme programming, and lean software development.
Early use of the phrase “Mob programming”, was made in “Extreme Programming Perspectives”
5. What is Mob Programming?
Mob programming is not restricted to any kind of work, it can be used for:
• User Stories
• Requirements
• Testing
• Designing
• Bug Fixing
• Trouble Shooting
• Testing
This can mean that a typical mob will design, develop, test and deploy all together.
6. Where Did it Come From?
The original concept comes from Woody Zuill, and the concept was developed by accident. It wasn’t
purposely created or applied to solve a particular issue, it was developed of out his belief that “The
team doing the work best can figure out how to do the work”.
His team began experimenting with new ways of working in 2011 and engaged in training sessions
using code kata techniques, originated in the book “Extreme Programming Perspectives”. In this
technique a small team sit around a screen and take 4 or 5 minutes intervals at the keyboard.
He liked the technique and began applying it so some tasks. He states “Something really good was
happening. The team had figured out how to get the work done”. The term ‘Mob Programming’ also
seems to have stuck by accident. He used the term jokingly and the team seemed to like it and it
stuck.
7. How To Set it Up
So the concept is that he entire team sits around
one (or two) bug screens, and take turns sitting
at the keyboard and everyone works together to
solve a problem, develop a user story or
whatever the situation might deem.
There are many levels to implementing mob
programming; so some teams might use it to
solve a single issue or bug, some teams would
use it a few times a week, maybe on certain
tasks or occasions and others will go the whole
mile and use it for everything.
8. How do you scale scrum teams?
Granted, this setup is quite simple and relaxed, but can easily be
set up in a meeting room or communal space – and you can see
what I’m trying to get across.
It doesn’t have to be like this, it could be using conferencing
hardware you already have set up in a meeting room to gathering
around one persons PC (depending on how many people you
are).
10. Goals of Mob Programming
The goal of mob programming is that you become a unit, a collective that does everything together – this is not
limited to just coding.
When doing this exercise, it can be expanded to answering emails together, handling bugs / issues together,
overcoming obstacles together; even taking breaks together.
If you are going to implement this methodology, you have to be aware that its going to take time to get right.
Especially if its something that you are going to be using a lot. It has to become part of your culture. The team
will take time to adapt to each other, understand boundaries and generally getting used to working so close to a
group of people for a period of time.
In the beginning there will be arguments, discussions on methods, experience and knowledge, even things such
as typing speed, coding methods and shortcuts and macros.
Most people have their PCs set up in a certain way that allows them to work more efficiently – now you are
sharing a computer with X amount of other people. Even these small issues need to be ironed out over time.
Its always important to remember the objectives and the benefits of doing things this way.
11. What are the Benefits?
So what are the benefits? There are many benefits, and
these will become obvious depending on the team. But
these are some of the universal benefits I can see with
using this methodology:
• Teams become closer.
• The team is no longer as strong as the weakest link.
• The team becomes risk takers.
• The team becomes happier.
• The team no longer needs to go to meetings.
• The team never says die.
• The team becomes more efficient.
• The team will grow.
• The team becomes one.
12. Summary
Mob programming is a bit of a buzz word, and its not a silver bullet to solve all team issues, but it is an
alternative approach that can be used on occasion to combat issues such as:
• Communication
• Team members leaving
• Decision making
• Team Moral
There are no set rules for mob programming; its more of an experimental approach and its not for everyone.
Your team may not have the right culture or type of work that this methodology would improve efficiency. For
most teams, this would be something to use every now and again, something in your ‘tool box’ to use when you
have a critical production issue or difficult obstacle to overcome. Other teams may use it at the beginning of a
project, then as it advances start to separate and work individually.
If you want to try it, I would recommend trying it on a small task or bug. Its also good to try when you have a new
starter in your team – this way you can see early if its beneficial for your team without committing or changing
completely the way you do things.
13. If you like, take something away or reference any of my content, please consider leaving a small
donation to help with the running of the site!
You can send a donation to: donations@full-stackagile.com
Or use this link (copy in browser): https://www.paypal.com/cgi-
bin/webscr?cmd=_donations&business=donations@full-stackagile.com
&lc=US&item_name=
Donation+to+Full-Stack+Agile&no_note=0&cn=&curency_code=USD&bn=PP-
DonationsBF:btn_donateCC_LG.gif:NonHosted