A software developer’s role is often an individual pursuit, with interaction between the development team echoing ideas or asking for advice. Techniques like mob programming present an opportunity for developers to work collaboratively on a task, where opinions can be promoted unfiltered and honed as a team. At LemonEdge, we’ve been taking advantage of Mob Programming as another tool in our pursuit to deliver the best software to our clients and ensure we’re always innovating, in this article, we’ll explain why.
What is Mob Programming?
Extending from individual and pair programming, Mob Programming has an entire team working on the same project, at the same time, on the same files. In the virtual world, we can enhance the experience by sharing different views of the same code across users’ computers. Many variations, such as driver/navigator, exist but similarly one group can be writing the tests while the other works on implementing features - both enhancing interfaces to dovetail in design. Throughout, each member has equal access to the code and can rotate their role in the Mob Programming session.
Mob Programming at LemonEdge
At LemonEdge, we’re a totally remote working company and, after a few tweaks, believe this enriches the potential of Mob Programming. The objective is still the same; the only difference is that the team gathers in a virtual environment. We dedicate a day (and a git branch) to the session, with multiple versions of file sharing (Teams, Git, LiveShare) on each workstation at any point in time. We rotate the “host” role to encourage individual contribution, but others can always pitch into the primary, shared environment, at the same time.
We aim for Mob Programming to improve the group-wide understanding of a complex codebase by focusing on horizontal aspects, particular core problems or new feature development. These sessions also aim to foster better communication and openness among the team.
That’s not the only benefit, however.
Benefits of Mob Programming
Mob Programming is a great continuous learning tool - there is no hierarchy and everyone has complete access to the team’s collective expertise. It helps individuals garner a deeper understanding of the code, get other perspectives on how to solve problems and learn ways to approach the development process.
Next, Mob Programming helps solve any communication problems that may exist, especially in remote teams. With everyone in the same room, even if it’s a virtual one, you eliminate time spent waiting for answers, the back-and-forth of email and potential misunderstandings arising from written communication.
Finally, Mob Programming makes a better product. A team that works together makes better decisions, free of the ego around hierarchy and defending your views. On a more practical level, a team can collectively ensure that it meets agreed-upon coding standards.
Have you tried Mob Programming yet?
At LemonEdge, we’re actively using new techniques like Mob Programming to:
- Work faster
- Nurture our team
- Create a better product
We believe that remote working can enhance collaborative working in development teams. If you haven’t tried Mob Programming yet, make it happen. You’re sure to notice the difference.
If you want to know more about Mob Programming and how it fits in our remote working culture, please feel free to drop a note to our Development Director, Angus Armstrong angus@lemonedge.com.
Keep an eye out on our careers page. we are hiring!