Pivotal Labs is known for pair programming in all projects, so by being at Pivotal, I had the privilege of seeing it done right. I’ve done pair programming in the past, but the small details in their practice really affected how collaborative the process was. The best example to illustrate this is the structure of programming workstations at Pivotal. When I’ve paired in the past, we’ve usually just used one computer and passed the keyboard and mouse when alternating who is typing code. At Pivotal, each pair has one computer but two pairs of mice and keyboards. This made a huge difference—not only did it reduce distractions, but since either developer could jump in and code at any time, it helped facilitate open discussions and seamless collaboration. Line by line, we were literally building on each other’s thinking.
We practice pair programming at Mondo Robot, but less formally than Pivotal. I’ve heard their pairing can even involve a client if the client is up for it!
I thought this post was interesting for its insight into the Pivotal process, but also for the simple observations of what works. We too use the one computer / two keyboards approach. It not only improves the experience, it looks cool as hell, too!