A new team that needed to work remotely in a high-stakes environment decided to try out mob programming. It helped them to quickly go through forming-storming-norming-performing. With mobbing, the team learned new technologies, found solutions for dealing with others in stressful situations, and discovered how to work effectively together remotely.
Giovanni Asproni gave a talk about remote mob programming in a high-stakes environment at XP 2023.
The team had strong constraints in quality, security, and accessibility and a very high visibility for failure, which would end up in the news. Asproni mentioned that, being in a high-stakes environment, they decided mob programming was the way to go.
In the first mob programming sessions, the team worked together to understand the goal and figure out how to proceed. There was very little code, and a lot of brainstorming, at the beginning, Asproni said.
Along the way, they faced different types of challenges. The team was distributed across five countries and three time zones. The maximum difference in time was two hours, but that was sufficient to cause some issues, as Asproni explained:
We had to both agree on the core hours, and the solo work the only person in the earliest time zone could do while waiting for others to be online.
Asproni mentioned that members of the team didn’t know, or had not even heard of, each other. Mobbing made the team go through forming-storming-norming-performing very quickly, in a matter of a few days.
The team learned a lot of different things, from technologies, to teamwork, to dealing with others in stressful situations. They also experienced how to work remotely with people they had never worked with before, and still feel like they were in the same place with people they had known for a long time, as Asproni explained:
Having had this experience, I’m now convinced that people who claim that working in the office is more productive, or better for learning and training, are talking nonsense. That’s true only if you try to replicate what you do in the office, but remotely. Working productively remotely requires being more intentional about what you do, but it’s definitely possible, and, in many cases, better.
Asproni mentioned that they released on the expected date a system that had zero bugs in production. They did it without cutting any corners, by implementing fully automated deployments, and plenty of tests, he said:
We used TDD as one of our core practices. It was hard work, with quite a bit of overtime, but we didn’t skimp on quality, and learned a lot.
InfoQ interviewed Giovanni Asproni about doing remote mob programming.
InfoQ: What expectations did you have from remote mob programming? What benefits did you set out for?
Giovanni Asproni: We thought we would achieve better quality, more resilience, and faster and better learning—this last point was crucial as well, since we started with insufficient knowledge of the technologies we were supposed to use, and we had little time.
InfoQ: What challenges did you face?
Asproni: The team had only one other senior engineer, and I couldn’t really do hands-on work as I was busy with meetings most of the time. Luckily, the others proved to be extremely capable and learned very quickly.
We had limited experience with the tools we had to use; luckily, we could borrow experts from other teams to help us out—we had some sixteen-hour mobbing sessions–with only a few small breaks–with one of those experts, which were extremely tiring, but extremely useful.
InfoQ: How does the team feel about what they accomplished?
Asproni: The team was exhausted, but very happy and proud of it. Despite the hard work, the team enjoyed it so much that they wanted to stay together, and in the same project, for as long as possible. Personally, despite all the stress, and the large number of meetings, I have very fond memories of it.