DATEV Nine-Nine | Halloween Heist 2023: The Scary Truth About Mob Programming

DATEV eG
DATEV TechBlog
Published in
6 min readOct 13, 2023

By: Matthias Alt vs. Evil Deeds, Spookable Stephan Boowirth & Gerrit Ghost Reaper Riesch

Intro

As Halloween approaches, DATEV Nine Nine stays true to traditions and delivers the third annual Halloween-Heist Blog. This year we delve into the pros and cons of a sometimes horrifying collaborative technique known as “Mob Programming”. Like Halloween, mob programming can be both thrilling and chilling, depending on how you approach it. In this blog post, we’ll explore the ghoulish delights and the haunting pitfalls of this collaborative development methodology.

Pros

There’s a reason (or rather there are quite some) that mob programming is a common developing method and widely spread. With the following advantages of mob programming, we want to show you when it can be a good idea — and when it can be as misplaced as a group of vampires in a garlic field.

1. Enhanced Collaboration:

Mob programming is like a team of witches brewing a potion together. Developers work closely, share their knowledge, and brainstorm solutions in real-time, leading to innovative outcomes. It becomes super easy to ask your developer colleagues questions and to get guidance on your and/or their code because they are actually in the same room (or virtual room) as you. Therefore, it eliminates some meetings and can speed up certain tasks.

But keep in mind: Too many witches might spoil the potion! This positive effect only works to a certain degree.

2. Learning and Mentorship:

Much like a ghostly mentor guiding the living, mob programming allows junior developers to learn from their more experienced peers. It fosters a culture of continuous learning and knowledge sharing. This is probably one of the fastest ways to improve skills and to learn new things from a senior peer. But it can also be extremely exhausting on both sides: The mentor must be observing and instructive over prolonged periods of time. The mentee must be an avid listener and will be influenced by the mentor’s style. Also, it can be a cognitive strain for the junior to not be able to try things by themselves (at their own pace) and to learn from their mistakes. So, it should not be the only way for a junior to learn but it can be a powerful tool on the way to mastery.

3. Quality Assurance:

In a mob, every line of code undergoes intense scrutiny, akin to inspecting Halloween candy for tampering. This rigorous review process helps catch bugs and improve code quality. Like the infamous razor blade inside the Halloween candy, you can certainly catch more errors with different people looking at the same lines of code. Whether or not you really always need a full-blown mob session for that is a topic for further discussion and code reviews on merge requests can yield similar benefits. Nevertheless, if no other quality assurance workflows like code reviews are part of your daily routine you can definitely benefit a lot from having more than one person look at your code before it gets merged into the production code.

4. Reduced Silos between Disciplines:

Just as Halloween is about breaking down social barriers, mob programming breaks down organizational silos. It encourages communication across disciplines and fosters a sense of unity within a development team. For example, if you have a mob session with an UX designer and requirements engineer you can check requirements as you code and have the designer review the user interface. But this should only be used sparingly because not all the time it will be possible for these non-dev disciplines to give input and then they will just sit around and get bored or annoyed… or you get annoyed because every line of code gets discussed. So as always it depends very much on the team dynamics and the way people act in the mob session.

If you want to use mob programming to reduce silos across departments, it becomes even more tricky.

Cons

With all these pros one might think mob programming is the silver bullet — not only to kill werewolves but to do all your coding. But in our years as developers, we learned to take it with a grain of salt. Doing all your programming in a big mob can be rather harmful. It can make people feel left out, be stressful and even a waste of time. So therefor we want to show you the negative aspects of mob programming we came across:

1. Resource Intensive:

Mob programming requires the presence of multiple team members simultaneously. This can be resource-intensive and might not be suitable for all projects or teams. We made the experience that it can be very useful to handle problems together where someone has already tackled the problem and can provide some best practices to the other team members. On the other hand, it is not productive if there is a problem where the basics are already unknown by everyone. Possible solution for this problem can be that one or two team members separate from the group, get the basic knowledge and then regroup in a mob session.

2. Slow Progress:

Like a zombie lumbering through the night, mob programming can be slow-moving. With multiple opinions and discussions, tasks might take longer to complete compared to solo or pair programming. If you find yourself tangled in a spider web of discussions and solutions it can be useful to break up the mob sessions, work on the different solutions and compare them later again in a mob session. The phase of separated working out of a solution should be marked with a timed deadline.

3. Can be exhausting:

Mob programming, like a relentless Halloween night of door-to-door trick-or-treating, can be an exhaustive journey through the twists and turns of code, leaving the team both exhilarated and spooked by its intensity.

Staring at a screen for extended periods during mob sessions and discussing different solutions or opinions can be draining. It’s important to take breaks and rotate roles.

4. Limited Autonomy:

Mob programming can feel like a haunted house where you’re constantly watched. Developers might feel a loss of autonomy, which can be demotivating for some team members.

Therefore, it is necessary to provide a safe place where everyone feels encouraged to mention his ideas as well as use constructive argumentation.

Final thoughts

In the spirit of Halloween, mob programming can be both a trick and a treat. It offers enhanced collaboration, learning opportunities, and improved code quality. However, it can be resource-intensive, slow, annoying and potentially lead to exhaustion and a loss of autonomy.

Our most productive mob sessions were the ones where we all had at least some knowledge of the technology and we did set-up work for a new project. From there it was easy for everyone to work from that common starting point.

We had some of our worst mob sessions, when we were facing a problem, we have not yet encountered, and nobody knew how to solve it. So, everybody had their own idea they wanted to try out. The person being the driver was like the guy in a horror movie who decides to leave the car early in the movie- he most certainly got slaughtered. These sessions were tense and no fun at all. Splitting up and doing our own research was way more productive.

Also, persons with strong personalities and people not following the rules of the mob can cause problems and create an atmosphere that makes it tough for everyone else to participate. Psychological safety is a must to make this work!

Having to join a dysfunctional mob every morning can be a serious psychological problem!

Like any development methodology, mob programming isn’t one-size-fits-all. Teams should carefully consider their project’s needs, team dynamics, and individual preferences before putting on the mob programming costume. Just as Halloween enthusiasts choose between tricks and treats, software development teams can choose mob programming when it aligns with their goals and values.

So, as you decide whether to embrace mob programming or let it haunt your development process, remember that the best approach depends on your team’s unique circumstances and aspirations, and we hope you find a solution that fits your entire team and does not leave anybody behind because he or she doesn’t like this kind of working style. So just as on a Halloween Heist it’s your job to take care of the person next to you and make sure everyone is being heard!

The only thing left to say is: Creep it real and have a happy Halloween! 🎃

We hope you enjoyed our blog, and we would love to see you next time!

Your three DATEV Nine-Nine detectives,

Matthias Alt (LinkedIn)

Stephan Bierwirth (LinkedIn)

Gerrit Riesch (LinkedIn)

--

--

DATEV eG
DATEV TechBlog

DATEV eG steht für qualitativ hochwertige Softwarelösungen und IT-Dienstleistungen für Steuerberater, Wirtschaftsprüfer, Rechtsanwälte und Unternehmen.