3 June 2014

Guidelines for Effective Pair Programming

Pair programming is an agile software development technique in which two
programmers work together at one workstation. One, the driver, writes code
while the other, the observer, pointer or navigator, reviews each line of
code as it is typed in. The two programmers switch roles
frequently.1

Pair programming is one of many techniques we use at Gaslight for producing
high quality software. Teams are not required to pair all the time, but it can
be effective in certain situations. Below are some guidelines that have emerged
from our experience with pair programming.

Shared Workstation / Physical Environment

If you opt to share a physical workspace while pair programming there are extra
considerations to take into account. Dedicated pairing stations that are not
owned by a single developer can help reduce some of these problems.

Avoiding Poor Ergonomics

When pairing, it is not always important to be sitting at the same desk. Many
of us have found that sharing a single desk with another person leads to poor
posture. People of different sizes have unique desk and chair height needs, it
can be difficult to accommodate both individuals. Sharing a single display
causes your neck to be turned for long periods of time.

Posture and ergonomics is important and it should be taken into consideration
any time you’re at a workstation. Using ScreenHero or
the native Mac OS screen sharing while
sitting diagonal from one another has worked well for us. Sitting diagonal from
one another also allows you to see one another without twisting sideways.

Personal Hygiene

  • Shower
  • Brush your teeth
  • Wear deodorant

Don’t share a workspace if you’re sick, you shouldn’t even be at the office.
You’ll most likely end up getting your pair sick and decrease the productivity
of the team.

Clean Workspace

  • Free of clutter
  • Sanitized (alcohol wipes are your friend)

Dedicated pair programming stations reduce some of these issues, but they’re
not always practical.

Virtual Environment

The physical environment is not the only important factor when pairing, the
virtual environment is also important. These tips are also tips for general
productivity and can be applicable when working without a pair.

No extra windows

Close any windows not related to the problem that you’re working on currently.
Extra text editor windows, email, unrelated browser tabs or windows, and
anything else should not be open. Extra windows cause distraction and make
using alt-tab to switch through applications more difficult.

Common Editor

Both pairs need to be effective with the text editors that is being used during
the pairing session. If you both use Vim during your normal day, feel free to
use it. Consider adding a custom vimrc and sourcing it to give your pair
keybindings they’re comfortable with. If one of you uses Vim and the other
Emacs, you shouldn’t argue about which editor to use, pick something neutral.
We like Atom.

Organized Windows

Come up with a sane window layout so that you can see what’s important and have
fast feedback loops. Moom gives you the ability
to save and restore window layouts. It also has a nice grid for resizing and
moving windows into position.

Close Email, Close Chat

Pair programming is not the time to catch up on email or chat with your
significant other about what’s for dinner tonight. You’re wasting your time and
your pair’s time if you do this.

Turn Off Notifications

If you’re using Mac OS you should turn off notifications (option-click
notification center).

Offline Notes

Keep a notepad on the desk so you don’t have to interrupt your pair when you
notice something that you need to do later.

Turn Off Your Phone

Like email and instant messaging, your phone is an unnecessary distraction and
shouldn’t be in your hand while pairing. You’re supposed to be engaged in the
process and if your phone is in hand, you won’t be.

Develop Rhythm

Bounce back and forth frequently. It is not effective to have one person
driving the whole time. The person who isn’t coding is likely to end up bored
and you won’t realize the full benefits of pair programming.

Avoid Conversation With Others

We are working in a mostly open office space and if you’re talking with someone
else while your pair is working, you’re not helping the cause.

Know Your Tools

This is important whether you’re pairing or working by yourself. It’s important
to understand the tools you’re working with.

Avoid Boilerplate

Often times there are tasks which are rather mundane that are not challenging.
Know when you should pair up and when it may be better to work on your own.
Remember that when you’re pairing you’re using two people’s time.

Heads up! This article may make reference to the Gaslight team—that's still us! We go by Launch Scout now, this article was just written before we re-introduced ourselves. Find out more here.

Related Posts

Want to learn more about the work we do?

Explore our work

Ready to start your software journey with us?

Contact Us