FACTOID # 174: One in three Italian babies is born by caesarean section.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

FACTS & STATISTICS    Simple view

  1. Select countries to view: (hold down Control key and click to select several)

     

     

    Compare:

     

     

  1. Select fact or statistic: (* = graphable)

     

     

     

  2. (OPTIONAL) Compare to statistic: (both need to be graphable)

     

     

     

  3. View result as:

     

       
(OR) SEARCH ALL encyclopedia, stats & forums:   

Encyclopedia > Pair programming

Pair programming requires two software engineers to participate in a combined development effort at one workstation. Software engineering (SE) is the profession concerned with specifying, designing, developing and maintaining software applications by applying technologies and practices from computer science, project management, and other fields. ...


Each member performs the action the other is not currently doing: While one types in unit tests the other thinks about the class that will satisfy the test, for example. In computer programming, a unit test is a procedure used to verify that a particular module of source code is working properly. ...


The person that is doing the typing is known as the driver while the person that is guiding is known as the navigator. It is often suggested for the two partners to switch roles at least every half-hour.

Contents


Benefits

Pair programming is touted to yield the following benefits, roughly ordered from largest benefit to smallest:

  • Increased discipline. Pairing partners are more likely to "do the right thing" and are less likely to take long breaks.
  • Better code. Pairing partners are less likely to go down ratholes and tend to come up with higher quality designs.
  • Resilient flow. Pairing leads to a different kind of flow than programming alone, but it does lead to flow. Pairing flow happens more quickly: one programmer asks the other, "What were we working on?" Pairing flow is also more resilient to interruptions: one programmer deals with the interruption while the other keeps working.
  • Improved morale. Pair programming can be more enjoyable for some engineers than programming alone.
  • Collective code ownership. When everyone on a project is pair programming, and pairs rotate frequently, everybody gains a working knowledge of the entire codebase.
  • Mentoring. Everyone, even junior programmers, has knowledge that others don't. Pair programming is a painless way of spreading that knowledge.
  • Team cohesion. People get to know each other more quickly when pair programming. Pair programming may encourage team gelling.
  • Fewer interruptions. People are more reluctant to interrupt a pair than they are to interrupt someone working alone.
  • One less workstation required. Since two people use one workstation, one less workstation is required, and therefore the extra workstation can be used for other purposes.

Studies have shown that after training for the "people skills" involved, two programmers are more than twice as productive as one for a given task. According to The Economist, With flow the psychologist Mihaly Csikszentmihalyi names the feeling of complete and energized focus in an activity, with a high level of enjoyment and fulfillment. ... The Economist is a weekly news and international affairs publication of The Economist Newspaper Limited in London. ...

"Laurie Williams of the University of Utah in Salt Lake City has shown that paired programmers are only 15% slower than two independent individual programmers, but produce 15% fewer bugs. Since testing and debugging are often many times more costly than initial programming, this is an impressive result." [1]

The University of Utah (also The U or the U of U) is a public university in Salt Lake City, Utah. ...

Criticisms

  • Experienced developers may find it tedious to tutor a less experienced developer in a paired environment.
  • Many engineers prefer to work alone, and may find the paired environment cumbersome.
  • Productivity gains or losses are hard to compare between paired and non-paired environments, as metrics of programmer productivity are controversial at best.
  • Differences in coding style may result in conflict.

See also

To meet Wikipedias quality standards, this article or section may require cleanup. ...

External links

  • Agility counts, The Economist, Sep 20th 2001
  • Article Will Pair Programming Really Improve Your Project? from Methods & Tools

  Results from FactBites:
 
Pair programming - definition of Pair programming in Encyclopedia (431 words)
Pairing partners are less likely to go down ratholes and tend to come up with higher quality designs.
Pairing leads to a different kind of flow than programming alone, but it does lead to flow.
Pairing flow happens more quickly: one programmer asks the other, "What were we working on?" Pairing flow is also more resilient to interruptions: one programmer deals with the interruption while the other keeps working.
Pair programming - Wikipedia, the free encyclopedia (473 words)
Pair programming is touted to yield the following benefits, roughly ordered from largest benefit to smallest:
Pair programming can be more enjoyable for some engineers than programming alone.
Productivity gains or losses are hard to compare between paired and non-paired environments, as metrics of programmer productivity are controversial at best.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.