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.
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:
- What is Pair Programming?
- Teddy-Bear Pair Programming
- Ping-Pong Pair Programming
- Silent Programming
- Beginner’s Mind
- Yes, and…
- Far Sight Navigator
- Solution Seeker
Enjoy!
Image credit: http://farm7.staticflickr.com/6120/6292421010_d18790c094_b.jpg