In 2012, Huffington Post breathlessly reported that Facebook was “making” employees share desks and computers.
The headline was clearly meant to catch the attention of non-technical readers, conjuring up images of employees huddling together at cramped workstations. Once the reader got past the click-bait headline, they were introduced to the concept of pair programming.
Ten years ago, pair programming might have been a novel concept outside Silicon Valley. But today, it’s well known in technology circles, as Facebook and many other technology companies were built on it. And they continue to use it.
Considering Pair Programming? You’re Not Alone
In the last decade or so, pair programming has come into vogue. So, if you’re considering making it part of your development process, you’re in good company.
Facebook is one of the most famous companies to use pair programming, but there are many other household names that employ the practice. Companies like Peloton, Stash, Grubhub, Snap, and Vimeo are all examples.
There are also many other technology companies that are not as well known outside technology circles that are big fans of pair programming. They include GitHub, Pivotal Labs, and Sparta Science.
There are countless unnamed startups that have made pair programming part of how they develop their products and solve their software engineering problems.
Pair programming’s cousin, mob programming, is also used by companies like Hunter Industries, though perhaps not to quite the extent that pair programming is used.
Whether it’s pair or mob, just because so many other companies use it, does that mean it’s right for you? To answer that question, you should look at how successful companies use it.
Pair Programming’s Pros and Cons
If and how you use pair programming depends in large part on your company’s maturity. As shown above, established companies have been quite successful in using pair programming. But it also has benefits for startups, with some proponents claiming that all startups should use it.
“CoScreen is probably the easiest way to do pair programming and dev collaboration that there is.” - Luis Capelo, Co-founder & CTO @ Grid AI
The most important reason is that pair programming helps define the company culture, as it can help establish a sense of teamwork and accountability, which are critical for young, fast-growing companies.
It boils down to the idea that software development is about people. It’s an endeavor that’s typically done best when people work together. No matter what detractors of pair programming say, it can’t be denied that it’s fundamentally rooted in teamwork.
Beyond culture, pair programming has other benefits for startups. Iyzico is a fintech startup that found that it helped them reduce risk by having more eyes on their code to catch bugs and errors. They also found that they were able to scale faster and better than they would have been able to with just one programmer working on a problem or a feature.
Iyzico offered a litany of other ways in which pair programming benefitted them, including testing, engineering orientation, and domain knowledge.
While there are many companies that use pair programming with great success, no one claims it’s a perfect solution. It has drawbacks that any company will have to weigh to determine if it’s best for them.
For instance, pair programming can be demanding on engineers. Having to work that way for hours on end can be draining.
But perhaps the biggest perceived drawback of pair programming is that it can be difficult for remote pairs. Many companies that relied on developers sitting side-by-side in pairs had that practice turned upside down in the pandemic-driven age of remote work.
In reality, pair programming might be even better suited to remote settings than in-person. In our Deep Collaboration podcast, GitHub CTO Jason Warner said he was not a big fan of in-person pair programming because office politics and almost religious adherence to pair programming were detrimental to productivity.
But his view changes in the case of remote environments. “I find it so incredibly helpful,” he said. “It literally is just two people batting ideas back and forth.”
The issue is that only a few companies offer tools that truly enable remote pair programming. CoScreen offers remote pair programmers solutions that’s almost like being next to one another and, in some ways, better.
“CoScreen is making remote better than in-person” - Sid Sijbrandi, CEO of GitLab
Going far beyond the capabilities of video conferencing tools like Zoom, CoScreen permits deep collaboration, allowing multiple teammates to simultaneously share screens, edit, and communicate from anywhere in the world.
How Successful Companies Use Pair Programming
While its use may be widespread, pair programming is not employed in the same fashion everywhere. The ways in which companies use pair programming are as varied as the companies themselves.
To give you an idea, we’ve highlighted a few companies that have shared how they approach pair programming.
Salesforce uses pair programming in its remote onboarding process because it helps experienced engineers teach relevant code to newer coders.
“Kevin Zhang is a Senior Software Engineer building mobile applications at Salesforce in San Francisco. ...His team has used CoScreen to simplify and streamline the remote onboarding process using formal and informal pair programming and other best practices...” -How to onboard new remote engineers with 30% less friction using CoScreen
Square is a San Francisco-based financial services and digital payments company that was founded in 2009. They famously created the square reader that you attach to your phone’s jack, and it accepts credit card payments.
“We do a fair amount of pairing at Square... The rule we follow is that every piece of code going to production has to be seen by at least two engineers. Pairing is one way to comply, code review pre-merge is another. If you like pairing, Square is a great environment for it.” -Zach Brock, a former employee at Square
He added that pair programming is so important to their organization that they will often engage job candidates in pairs as part of the hiring process.
Pivotal Labs are legendary for their use of pair programming. This company builds software with their clients. They have based their principles HEAVILY on the use of a “unique services methodology called paired programming”.
Joe Moore, their Principal Engineering Manager, did a whole presentation over paired programming called I've Pair Programmed for 30,000 Hours: Ask Me Anything!
Everybody knows Wells Fargo. It’s a banking company and the largest mortgage and auto lender in the United States. Why would a banking company need pair programming? Because they do programming within the company. Jasmine Adamson, one of their programmers and web developers stated, “We're not your average 'tech firm' but we're doing some of the same things. We typically have many beginners on staff and pairing them up with experts gets them up to speed more quickly and allows us to control code quality a little better. Personally, I don't like it. I love teaching, but I don't like the company paying for it.”
Microsoft is about as successful of a company as you can find. It’s a fortune 500 company, which has been featured (many times) in Forbes. It develops, manufactures, supports, and sells computer software. They make electronics, personal computers, anything tech-related, you name it, they’ve done it, so it’s not shocking that they use pair programming.
“We find from the results of a survey sent to a randomly selected 10% of engineers at Microsoft that 22% pair program or have pair programmed in the past. Using qualitative analysis, we performed a large-scale card sort to group the various benefits and problems of pair programming. The biggest perceived benefits of pair programming were the introduction of fewer bugs, spreading code understanding, and producing overall higher quality code. The top problems were cost-efficiency, (work time) scheduling problems, and personality conflicts. Most engineers preferred a partner who had complementary skills to their own, who was flexible, and had good communication skills.” -Pair programming: what’s in it for me?
Is Pair Programming Right for You?
Pair programming is not a magic bullet that will allow companies to build better products and serve users better. It’s simply a handy tool that’s available for developers to use as their needs dictate.
Like any tool, it has strengths and weaknesses. Some people use it more effectively than others. And it can’t do everything.
Is it the right tool for your organization? That’s for you to determine. But if you can make pair programming fit in your organization as the other companies mentioned above have, pair programming can help you do great things.
Looking for you next pair programming tool?
“CoScreen is probably the easiest way to do pair programming and dev collaboration that there is.”
- Luis Capelo, Co-founder & CTO @ Grid AI