Recently, we were joined in a webinar by Amitai Schleier, and independent software development coach, consultant, speaker, and podcaster.
In “Mob Programming Explained,” Amitai gives an introduction to mob programming for those who may be intrigued by the concept but skeptical of its practicality and efficiency.
As today’s teams begin to break down silos and implement quality sooner in the software development life cycle, they’re simultaneously searching for more ways to improve collaboration and communication.
Through Amitai’s guidance, we learned how mob programming can be relevant to teams who want to be more agile and include more people in the software development life cycle sooner.
What is Mob Programming?
So, what is mob programming? One team, one problem, one computer -- that’s the basic premise.
Amitai explained that there is usually a driver and navigator, and roles are rotated every few minutes. In this situation, the driver is at the keyboard receiving instructions, while the navigator is speaking their ideas out loud for the driver to interpret.
Though it’s called “mob programming,” Amitai emphasizes that the practice isn’t all about programming -- it’s about putting people together to solve a complex problem.
This means you want a variety of people and roles in the room contributing, such as programmers, testers, designers, product owners, customers, etc.
For example, for testers that normally have to wait until the end of a sprint for testing, including them in a mob means that they’re involved in the process earlier, which means they can raise questions as they come up and spot things that might be harder to test later on.
Problems That Mob Programming Can Help Solve
Necessity is the mother of invention, which is why mob programming addresses some of the following challenges:
- • Planning can be inaccurate due to the structure of the team and changing dynamics, as well as the techniques used for planning
- • Decisions can take too long when roles are separated and firm boundaries are kept between development, testing, users, etc.
- • The cost of development goes up with each feature created, which can be made worse if there if there isn’t feedback to inform those next features and money is wasted
- • There are certain misconceptions as to how software teams should work that can limit our effectiveness -- often, we emphasize the wrong qualities that lead to success
- • Sometimes people just don’t work well together
These are not uncommon among problems in the software development community. As teams look for new and innovative ways to improve these areas, mob programming may be one practice to consider.
To Mob or Not to Mob
Mob programming can be an effective technique for teams dealing with a variety of issues, but there are some cases where it might not be your best bet.
You might want to reconsider mob programming if:
- • You don’t have time to learn, and can’t make that time -- mobbing is only going to cost you and won’t benefit you.
- • You don’t have a place that’s suitable for sharing a screen and rotating -- the environment probably won’t be conducive to mob programming.
- • You’re the only one that’s interested in trying it, and you can’t get anyone on board -- people will not give their best and it won’t be productive
- • Your organization is a unicorn that doesn’t have any of any problems with the aforementioned planning, decision making, keeping down cost, or aligning different team members, then mob programming might not help you
However, if you can make time, find a space that works, find a few people who want to try it, and have the willpower and skill to address challenges as they arise, there’s good reason to explore the technique.
Additionally, mob programming is most effective when solving problems that require learning something, when teams are ready and willing to learn together, and when you’re developing software or any other product.
Amitai advocates that learning is instrumental to our jobs, while collaboration is instrumental to learning. In this way, mobbing can help optimize for collaboration, learning, and meaningful success for everyone involved.
Considering Mob Programming
Whether you’re mobbing at lunch with a few people, ad hoc on a tough story, or every day with the entire team, there are plenty of ways to make it work to address problems large and small.
At the end of the day, mob programming is a team practice. It allows more people to focus on fewer problems, which can be a good or bad thing depending on the dynamic of those involved.
To find out more about mob programming, Amitai suggests the following resources:
Additionally, to watch the full webinar, which covered mob programming more in-depth and included over 30 questions for Amitai asked by the live audience, play the video below: