What is pair programming?

The book Facilitating Technical Events is for technical trainers, coaches, events organizers who want to have a good event flow and happy attendees.
Support independent publishing: Buy this e-book on Lulu.

Pair Programming

Blog post series

This blog post is part of a series about pair programming games. To read about more please click see more sessions on pair programming games.

About

Pair programming is a technique in which two programmers work together to solve a task. They work on one computer, ideally each having their own keyboard in front of them.
There are two roles: driver and navigator.

The driver writes the code and takes the short time decisions. The driver should trust the navigator totally for the long term decisions.

The navigator reads the code of the driver and gives meaningful suggestions on how the code could be better. Also the navigator focuses on the long term decisions and thinks the strategic direction the code moves to.

Both the driver and the navigator need to verbalize their actions and concerns and to speak on the code.

cat-pair-programming

Advantages

From some studies (see here for example) we can say that when programmers work in pairs usually produce less code with less defects and a better design.
Pair programming is the fastest feedback loop in the Agile world.
Usually pairs tend to write unit tests for the important cases as the navigator can spot missing tests.
Learning: knowledge can pass easier from the more experience to the less experienced team members, or the other way around.
Confidence of the team in the code correctness and quality.

Disadvantages

Can be very tiring especially for beginners.
Could lead to fights and decreased team morale between team members in the case the two pairing do not get allong.
Breaking the ice: it is often difficult for people to start pairing, as the first sessions are awkward because the two pairs open themselves one to the other and they might be afraid of criticism.

Sessions

I started a series of articles on the theme of pair programming games. Each of the games has some clear purposes and should be used in certain cases. Some of the games can be used to improve the communication thus to improve the productivity. Some others are useful to use when you have a rock star in your team. And yet others are powerful for fast learning. So here are the games:

Enjoy!

Image credit: http://farm7.staticflickr.com/6120/6292421010_d18790c094_b.jpg

Subscribe

If you want to receive an email when I write a new article, subscribe here:

Subscribe for new articles

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Subscribe for new articles