Home > Agile > The Benefits of Pair Programming

The Benefits of Pair Programming

The Benefits of Pair Programming

February 4th | 2009

The Benefits of Pair Programming

The Agile practice of Pair Programming is one of the more controversial development techniques within the software development community.  The controversy lies in the question of how two programmers working together on the same code can be more productive than the same two programmers writing code individually. The determining factor in answering this question is simple – more lines of code do not equal more productive software development.

Case studies have been conducted, the experts have weighed in, and the results are unequivocal: the benefits of Pair Programming can result in significant advantages for an organization developing software.

The success or failure of software is dependent on its quality, and Pair Programming directly improves quality in numerous ways. When two developers work together design pattern quality improves as the pair develops short, simple, and easy to maintain code with fewer bugs. Bugs are a major quality concern in software development; with two sets of eyes writing the code, more mistakes are caught, thereby decreasing the cost of development. Bugs found late in the development process are often costly to fix. Finding software defects early prevents and helps deter difficult problems down the road. Complexity often arises in programming, and two minds working to solve a problem together can see more options and draw conclusions more quickly than one.

Teams implementing Pair Programming also experience the benefits of increased team morale, worker discipline, and improved time management. Individuals on the team put more effort into writing good code, creating an atmosphere of collective code ownership.

Our team has been practicing Pair Programming for years, so I set out to get some input from them. Thycotic team programmer, Bryant Smith, has been Pair Programming daily for over five years.  Bryant commented “The code’s intention is clearer, it self-documents. What might be clear to me is not necessarily clear to others; assumptions are uncovered and more clearly stated. This is true with the unit test code as well as test coverage. When my pair is coding I often think outside the box about ‘what if’ scenarios. This extra test coverage further documents the code’s intention.”

Another team lead member, Tucker, thought “A major benefit of Paired Programming is knowledge sharing. It breaks down code complexity across the dev team and quickly brings new people up to speed.” Tucker is currently working with 3 other developers—forming  two programming pairs every day.

Risk for management is also decreased as knowledge is spread around the team, pairs are rotated, and team members come and go. The benefits of Pair Programming to the development team, management, and the organization are significant as the software development process proves to be on time, within budget, and seemingly effortless for a Pair Programming team.

Katie McCroskey is a Marketing Manager at Thycotic Software, an agile software services and product development company based in Washington DC. Secret Server is our flagship password management software product. On Twitter? Follow Katie

Categories: Agile
  1. Joe
    February 5, 2010 at 6:58 pm

    nice writeup. Good summary of the benefits of pair programming. I am a firm believer in pair programming myself.

    I do wish to point out something to you though. Your statement, “Case studies have been conducted, the experts have weighed in, and the results are unequivocal” is far far from true. This is evinced by your opening statement: “The Agile practice of Pair Programming is one of the more controversial development techniques within the software development community.” The reason it’s so controversial is because it IS so hard to unequivocally prove it’s superiority.

    Just because Kent Beck says something is so doesn’t make it true. It’s the natural complexity of software development that makes unequivocal results on topics like pair programming all but impossible.

    Nice writeup otherwise.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: