Is Pair Programming Worth It?
Table of Contents
- The secret to our growth and success is pair programming
- How pair programming builds great teams and great software
- Pair programming is Pivotal Labs’ biggest value add
DECEMBER 17, 2013 BY EDWARD HIEATT 0 COMMENTS (EDIT)
As Chief Operating Officer, Edward Hieatt oversees all operational aspects of the Pivotal Labs’ consulting business including engineering, client services and the company’s open source product strategy. In this role, he drives revenue growth and performance, and is responsible for managing all regional offices across the US and overseas.
Edward holds a degree in Mathematics from Oxford University, England.
The secret to our growth and success is pair programming
Pivotal Labs is a software consultancy famous for our uncompromising views on Agile Software Development, our open source contributions and our ability to deliver high quality software. We’ve been writing software together with our clients for over 20 years. During this time, we’ve shipped hundreds of complex software applications across every industry vertical, evolved and grown as an organization, and pushed the envelope of the software development process.
A few years ago, we were acquired by EMC, a multi-billion dollar enterprise company, and recently spun out into Pivotal, an exciting new startup creating the next-generation enterprise PaaS platform. We’ve grown to over 400 consultants, with an office presence in nine major tech hubs in the US and now internationally in Toronto and London. We’re also famous for creating Pivotal Tracker, one of the most popular agile project management tools used by over 500,000 people worldwide to help create software.
How pair programming builds great teams and great software
"Pairing allows our client developers to train whilst building their product. I’ve worked with developers who were new to programming when they first joined a team, and teaching others by the time we disengaged, months later. A team that pairs is knowledgeable, sociable and resilient to change: I can’t remember the last time work stopped because someone was out on a particular day. "
Andrew Bruce Pivotal Labs Engineer
"Pairing is the best way to level-up your technical skills. You get to learn from an expert, in real time, and you get working software as a product of that collaboration. At Pivotal Labs, we have a process that consistently produces very high-quality results, and pairing is a critical component of that process. AirPair lets you summon these advantages at will. "
Danny Burkes Director Pivotal Labs
Despite the continual evolution and all the growth, there is one thing that’s at the very core of the Pivotal Labs ethos that has not changed about us. It’s our mission statement and it’s something we value very deeply: to transform the way the world builds software. We love to share what we’ve learned with the community through blog posts such as this one, public speaking engagements, and contribute content to software engineering books and studies. But, most of all, we love to pair program with our clients and “teach by doing.”
"Pair programming isn’t just for co-located teams. We value pairing so highly that we implement remote pair programming on our distributed teams. A plethora of technologies exist that enable remote pair programming, and soon the novelty of remoteness melts away, leaving an experience with all the benefits of in-person pairing."
Joe Moore Pivotal Labs Engineer
"Pair programming is the highest-bandwith way to spread knowledge between programmers or across an engineering team. In my experience, pairing is a great tool for onboarding engineers to a team or codebase, teaching new technologies, and scaling teams rapidly in high-growth companies."
Parker Thompson 500, ex-pivot, Partner at 500 startups
Pair programming is Pivotal Labs’ biggest value add
Our flavor of the agile software engineering process includes test-driven development (TDD), continuous integration, daily standups, weekly iteration meetings, and, most importantly, pair programming, all 100% of the time. Pair programming is a software engineering technique in which two engineers work together at one computer, write code, and collaborate on solutions to problems.
Pair programming is one of the most important ways we add value to clients and is perhaps the most common reason clients choose to work with us. The explanation for this is that pair programming enables an incredible amount of knowledge to be transferred between individuals and across entire teams within a relatively short amount of time. Our clients come to us not only to get software written, but also to–simultaneously–train their engineering teams on good software engineering practices, the modern tech stack, and the actual codebase of the application we create together.
"No single practice has improved the quality of my code more than pair programming. Not only does it help me catch defects in the code I am writing at any given moment, it also helps me learn new skills just by watching my pair. Pairing with the fantastic developers at Pivotal Labs every day for the past two years has increased my skill and knowledge as a software developer enormously."
Wiley Kestner Pivotal Labs Engineer Pivot
"Pairing has a lot of benefits, from having an instant spell checker and sanity checker for everything you write, to getting to work with a colleague all day instead of alone in a cubicle. But the thing I like most about it is how the constant collaboration and feedback allows us to rapidly come up with thorough, elegant solutions to harder and harder problems, something that often falls by the wayside when it’s all just in your head."
Amit Gupta Pivotal Labs Engineer
"I learned as much in two months of full time pairing at Pivotal Labs as I did in the two years of my master’s degree. When I pair, I get to be the student and the teacher a hundred times over in a single day. I am given the opportunity to learn on every scale, from a lengthy debate over integration testing vs. mocking to a little nod when my pair uses a keystroke I didn’t know."
George Dean, Pivotal Labs Engineer
"Designers find pairing with devs on front-end code really streamlines our process. We typically skip detailed specs and just work along side a developer to implement and refine our designs. And the more we do that, the better everyone gets at making those small, in-the-moment design decisions that improve the whole product experience."
Tim McCoy Pivotal Labs Design Director
A typical project at Pivotal Labs will have 2+ client engineers and 2-6 Pivotal Labs engineers (Pivots). Each day, new pair assignments are created, and, in the course of a project, every engineer ends up pair programming (pairing) with every other member of the team. Doing this every day, 8 hours a day, allows the less experienced members of the team to learn very quickly from the Pivotal Labs experts. Many client engineers describe their time at Pivotal Labs as an intense, transformative experience, akin to getting a graduate degree.
"Discussing problems and solutions with a pair means that bad ideas die quickly, good ideas get reinforced, and maybe ideas have a chance to bloom into their full potential. It’s like full-time, real-time code review with someone you trust."
Davis Frank, Pivotal Labs Associate Director
"When working with client developers who are new to the tools that we use, or when learning a new framework, pattern, or programming language myself, pairing has been the most effective way to quickly get familiar with new code and share good development practices with one another."
Alex Stupakov, Pivotal Labs Engineer
Pair programming is a big deal at Pivotal Labs. It’s one of the reasons we’ve been able to attract and retain such a high caliber set of consultants on our staff. It’s how we’ve been able to keep our distinct culture even as we’ve grown past 400 employees. It’s perhaps the most common reason our clients choose to work with us.
"Pair programming is an immensely powerful practice. Individual developers benefit by solidifying their own knowledge through demonstration and explanation while at the same time learning from their pair. Teams benefit due to improved camaraderie, increased momentum, and less siloing of knowledge. And of course, the software benefits from increased inspection and shared ownership."
Andrew Kitchen, Pivotal Labs Engineer
"Pairing is beneficial to clients because their developers are the ones writing the code with us, which makes sense, since they’ll be the ones working on it a month from now."
Brian Butz, Pivotal Labs Engineer
Ultimately, pair programming is what enables us to execute on our mission statement: to transform the way the world builds software. Pivotal Labs shares this philosophy with AirPair and we strongly recommend pair programming as a way to upskill your knowledge, either by becoming a Pivotal Labs client, pair programming with a knowledgeable friend, or with an AirPair expert.
Need 1 on 1 expert help?
Edward Hieatt Login