Does it take two to make a code go right? When it comes to developing software, pairing has been up for debate since the dawn of Agile.
Pair programming is an Agile Software Development technique in which two programmers work on one computer. “One programmer 'drives,' operating the keyboard, while the other 'navigates,' watching, learning, asking, talking, and making suggestions,” according to Version One, an Agile Project Management Software & Scrum tool.
On one side of the cubicle partition, engineers and managers alike believe there's a long-term payoff in team knowledge and productivity.
The other side says it's generally better to work independently and without friction from another programmer.
Pair programming can range from just part of the day to a full eight-hour work day.
They asked the students why they were so self-sufficient:
A second pair of eyes is a great way to catch errors and boost quality of code, cutting time for the QA team.
"The communication becomes so deep that you don't even use words anymore," Kent Beck, a programmer at Facebook, told the Wall Street Journal. "You just grunt and point."
This is essentially the No. 1 reason why Braintree, a PayPal owned online payment service, is a staunch advocate for pair programming in the purest form (or eight-hours a day).
"It contributes to an amazing company culture, it's the best way to bring new developers up to speed, and it provides a great way to share knowledge across the development team," according to a Braintree blog post.
This was the advice from Stefan Kulmpp, software engineer and entrepreneur, on Quora as a response to someone who asked how to manage a highly distracted, but talented engineer.
Makes sense, considering that there's two brains devoted to one project at any given time.
Another study cites the same 15 percent loss of productivity, and goes on to find that: "This reduction in speed would only have positive value if defects were reduced almost to zero but that is not the case. Also, requirements and design defects outnumber code defects on large systems and pair programmers have little impact on non-code defects." according to a Namcook Analytics paper.
“Web development has front-end, middle and back-end tiers,” he says. “You theoretically can’t tie two people of different expertise to pair together when they’re tackling a tier specific problem. For instance, a front or middle software engineer can’t pair with a middle/back engineer to tackle a back-end problem.”
So, unless you’ve got a huge team filled with multiple developers specializing in the same niche, you might find it hard to pair folks accordingly.
“If the expert coder slips, then the result is a 'watch while I type' session (sometimes called 'go make me a cup of tea while I finish this program' syndrome), in which the novice remains passive throughout and the expert is effectively solo-coding,” according to the research paper.
And even if pairing meshes well with your culture, good luck finding your Goldilocks of culture fits.
"lt makes hiring all that much more difficult because you're less flexible looking for someone that is smart and can communicate well with other engineers 8 hours a day," says Jesse Pelayo, CyberCoders product manager.
After all, pairing up for 40+ hours a week is more quality time than what most married couples spend with each other!
Still, pair programming in moderation, is a great way to stir creativity and camaraderie for your team.
Thousands of full-time and remote jobs in every industry. Search jobs.
We'll find you the right candidate, fast. Get started.
Our recruiters connect people with great opportunities and help our clients build amazing teams. Learn more.