Extreme Programming Practice

Pair Programming

Pair Programming - also known as Peer Programming - is an extreme programming technique in which programmers work in a pair at one workstation. The idea is similar to a pilot of a rally car - one is the driver, and his team mate gives instructions where what's ahead.

The code developer and the observer work together at each station, the coding developer, driver, write the code while the observer provides options on how each part of the application should be written and reviews.

The benefit of peer programming is that it allows the driver of the code to focus entirely on the tactical mission of typing out the code while the observer guides merely the driver through strategic points of programming.

Why Pair Programming a great practice?


The efficiency of programs written at each workstation has been proven to increase. Researchers have shown that pair programming has reduced the defects in written codes by 15%. It is expected that the different experiences of the two members of one team would provide more efficient resources to write the codes.


Peer Programming improves the learning of the two programmers as they continually exchange knowledge. The work of every individual is also immediately checked by their who provides the necessary feedback.

Reduce waste

The method saves time by reducing the man-hours necessary for writing a single program, it saves cost by reducing program defects, and it improves communication between team members.

Establishing Pair Programming in your own team

Under this XP method, three pairing variations should be considered depending on the resources available or the aim of the pairing.

Two Experts

The pairing of two experts is commonly used because it implies that the efficiency of the team would be near perfect.

Two Novices

This is commonly used in the university and learning environments so that both learners can develop better if paired together than if they are allowed to study alone.


This allows the expert to mentor the novice. The pairing establishes a symbiotic relationship as the expert is questioned and checked by the novice who in turns learns from the expert.


Remote programming is a variation of pair programming where the two members of a code writing team are in separate locations. Using full-screen sharing software, cloud online services or other applications can allow two members to work on a code. Some of these remote programming stations may include video links so that team members can maintain visual and oral communication should it be required on the job.