While completed tasks and solid code tend to be the objective for adopting pair or mob programming, they have other benefits, too. One, Puryear says, is more creative code.
“If you only have one person working on a piece of code, it will only reflect a specific mindset or approach,” he says. “The more people you have engaged on something, the more creative you’re going to get with the solution.” The drawback, he says, is idea overflow. “Sometimes it might take a little time to separate the crazy from the brilliant.”
Pair and mob programming, in addition to hackathons and dojos, all help to share knowledge and expertise, and create more well-rounded teams, Puryear says.
When you pair and mob program, code becomes better understood by more people. “If someone changes teams or is overloaded with a piece of work, it’s easier for other people to step up and work on it since they’ve been in the loop,” he says. “And if you have a piece of tech inside the company that’s only understood by one or two people, there’s an opportunity to use these techniques to spread the knowledge.”
Knowledge sharing and creative code are two benefits to hackathons and dojos, which take slightly different approaches to collaborative programming. Hackathons typically involve many people from different backgrounds working on different projects outside of work, while dojos focus on a particular goal using a smaller team.
At Etsy, knowledge sharing is an invaluable component to the dojo, Schwarz says. “The most exciting part of a dojo is when someone watching the coder shouts, ‘Woah! Wait, how did you do that?’” Schwarz says.
Collaborative programming: How to start
Introducing collaborative programming requires a certain mindset, leadership and corporate culture for it to succeed, Puryear and Forrester’s Hammond agree. Here’s how to determine whether it’s right for you and how to start.
1. Assess your culture. “If you have the kind of corporate culture where your developers work until they drop, it’s going to be very hard to drive this type of experience,” Hammond says. Because pair and mob programming specifically require people to work in teams on projects, scrum or agile teams with freedom to be creative tend to be most successful. “It’s more about accomplishing the goal rather than being prescriptive of how you achieve that,” Hammond says.
2. Gauge trust. Pair and mob programming demand a level of trust among team members in order to succeed, Coding Dojo’s Puryear says. “You need to have enough trust with your teammates that you’re able to collaborate with them without caring about whether someone will get credit or be blamed for work on a project,” he says. “You need to firmly believe that you’re going to either succeed together or fail together, and that everyone will look out for each other and finish each other’s work to stay productive and add value.”
Sign up for CIO Asia eNewsletters.