E-commerce site Etsy held its first dojo with a small group of engineers to solve a coding question it posed to job candidates.
“Dojos refer to collaborative group coding experiences […] which is a fancy way of saying, ‘We take turns writing code together,’ in service of solving a problem,” wrote Bucky Schwarz, former software engineer at Etsy, in a blog post. “We realized that in addition to being helpful, the dojo was also really fun. So we went from there.”
Etsy’s dojos, which are part of the collaborative programming trend, start with an achievable goal that’s usually unrelated to work, Schwarz says. A group of five or so engineers set up shop in a conference room, plug a laptop into a TV and take turns writing code for three minutes each until the goal is achieved—usually after two hours.
Collaborative programming, which includes methods tied to work productivity such as mob programming and pair programming—and dojos and hackathons, which usually encourage collaboration on projects outside of work—have grown in popularity, says Jeffrey Hammond, principle analyst at Forrester Research.
“More organizations are starting to look at writing code as more of a creative profession than an algorithmic one,” he says. “Consider music composing and screenwriting: Those are intensely creative professions, and often have multiple people involved. Many people do better in a collaborative environment where you’re working together and bouncing ideas off each other. That’s when the best stuff happens.”
IT teams adopt collaborative programming techniques for a number of reasons, from team building to knowledge sharing. Here’s a look at their benefits and drawbacks, plus how to assess whether you’re a good candidate and tips for getting started.
Collaborative programming: Pros and cons
Mob and pair programming capitalize on groups that work on the same piece of a project at the same time in the same space. Mob programming might involve an entire team while pair programming uses just two people. Martin Puryear, lead instructor at coding bootcamp Coding Dojo, says these methods benefit both projects and teams—but come with drawbacks, too.
Some businesses are drawn to mob and pair programming because of their reputation for producing good, solid code, Puryear says. “When you have multiple people working on a piece of code, the code is more sure-footed,” he says.
But assigning more than one person to work on it might be a disadvantage, at least in the short term: “You might use more resources to produce fewer lines of code, which some companies might see as a drawback,” he says. “You’ll end up with fewer tasks done in the end, but they’ll be done and done well.”
Sign up for CIO Asia eNewsletters.