Virginia Woolf argued that a woman writer needs a room of her own. In Silicon Valley, some companies are questioning whether software programmers even need their own cubicles.
Their method is "pair programming"—where two people share one desk and one computer. One person is the "driver," controlling the keyboard and typing in code. The other "navigates," monitoring design and scanning for bugs.
Pairing is finding fans at technology companies including Facebook Inc. and mobile payments start-up Square. Its advocates speak in glowing terms of the power of coupling, saying paired coders can catch costly software errors and are less likely to waste time surfing the Web.
"The communication becomes so deep that you don't even use words anymore," says Kent Beck, a programmer at Facebook and a strong advocate of pairing. "You just grunt and point."
Errors While Driving
That's the theory anyway. Will Sargent, a former engineer at Grockit, a San Francisco-based online test preparation company, never reached that level of intimacy.
He says he was paired with a partner who was much more experienced with the software design they were working on. Mr. Sargent says when he made errors while "driving," his partner would just take over and correct them.
"I was nowhere near the level he was," says Mr. Sargent, who left the company in 2010.
Grockit CEO Roy Gilbert said the practice has proven a success, and his developers "continue to evangelize the method."
If the ideal for pairing is soulmate-level bonding, the reality can be more like an endless bad blind date. Annoyances that plague partners everywhere can quickly pile up: from poor personal hygiene and table manners, to feet on shared desks and loud chewing.
Sydney, Australia-based software company Atlassian spoofed the practice on April Fools' Day with a mock instructional video called "Spooning."
In the two-minute short, viewed by more than 100,000 people, a burly engineer sits on a colleague's lap, wraps his arms around his partner's waist and types along with him hand over hand. "Take turns," the presenter says. "No one wants to be the outer spoon all the time."
The popularity of pair programming has its roots in the 1999 book "Extreme Programming Explained," written by Facebook's Mr. Beck. According to the book, software should be released quickly and improved along the way, something double-teaming projects can make happen more quickly.
Mr. Beck developed many of the concepts while working with Ward Cunningham—developer of the first wiki—at a software company in the 1980s. The relationship began when Mr. Cunningham asked Mr. Beck to check for bugs in a software application he was working on. But eventually the collaboration grew deeper, and the two would pair up to knock out assignments so they could move on to their own pet projects.
"When I walked in in the morning, the first thing I did was look for Kent," Mr. Cunningham says. "And at the end of the day, we were walking out to our cars together."
The pairing broke up when Mr. Beck left the company.
"When it stopped, it was like, 'Wait, who's going to notice when I get tired or when I go off into the weeds?'" Mr. Beck said. "'I need someone to help me with that.'"
The practice is now blossoming. Pivotal Labs, a software-development shop that was bought by technology giant EMC Corp. in March, has its 175 engineers pair all day, every day. Some play the field, changing partners daily in a practice called "promiscuous pairing."
Hopping Between Partners
There are other flavors as well. Ping-pong pairing involves hopping back and forth between partners. Remote pairing is the computer world's version of the long-distance relationship, with programmers sharing the same screen via the Internet.
San Francisco-based Square allows developers to choose when and how they want to pair. The company says about 15% of its engineers pair full time, while half do it occasionally.
"There's a joke that pairs, like fish and house guests, go rotten after three days," said Zach Brock, an engineering manager at Square and a former Pivotal employee.
Working out problems with a pairing partner can be a lot like working out problems with a significant other.
During one recent rough patch, Jamie Kite, a developer at Durham, N.C., software consultancy Relevance Inc., sat her partner down for a talk.
"Hey, it feels like we're driving in different directions," she recalls saying. "I'm putting on the gas and you're pressing the brake. What's going on here?"
The two went to a whiteboard to draw out their competing solutions. They eventually reached a compromise, said her partner, Jon Distad.
"It's like any relationship," Ms. Kite said. "If you don't talk about the problems, it's not going to work."
When those timeouts don't solve the problem, partners at Relevance can turn to on-staff coaches who can help with counseling. "People who have been pairing a while, they'll start acting like old married couples," said Marc Phillips, one of the company's coaches.
Talking Out Loud
People can be as much of a challenge as writing software. Bryan Kocol, chief technology officer at San Diego software consultant Drive Current, says one engineer at the company had a habit of talking through coding problems out loud. "Some people have idiosyncrasies like talking to themselves and that can drive the other person nuts," Mr. Kocol said.
Jon St. John, a software developer at Drive Current, says when he was paired with more experienced programmers, it could sometimes feel like the other person was pushy or not giving him a chance to finish his thoughts or develop his own ideas. He says more junior partners probably had the same problem with him.
After two years of asking the company's engineers to spend three hours a day pairing, Mr. Kocol phased out the practice in September.
"I don't think anyone misses it tremendously," Mr. St. John said.
Write to Joseph Walker at email@example.com