I've heard the person at the keyboard named the "driver", and the other person named the "navigator". I've imagined rally car racers, where the person at the wheel just cannot keep up with everything that's happening, and they must have the help of the "navigator", who's shouting volumes and volumes of directions at them to, literally, keep them "out of the weeds", much like a person at the keyboard is kept "on course" by the person in the second chair.

What are the more/most commonly accepted terms for the two roles in pair programming, and (if it's not obvious) are they borrowed from any earlier professions?

| improve this question | | | | |
  • 2
    I don't know why, but that rally metaphor just make me imagine slamming head-first into a tree. But yeah, you've basically listed the role names and answered your own question. – Bart Aug 9 '11 at 5:45
  • Alternatively you can call navigator a 'shotgun'. – Mchl Aug 9 '11 at 20:21

The driver (or less commonly pilot) has hands on with the keyboard and is right there, banging out the code.

The navigator (or observer, or less commonly co-driver or co-pilot) is sitting alongside with the reference documents making sure the code is going the right way.

The navigator has a better perspective of what's coming up, and isn't just worrying about the mechanics of typing away.

| improve this answer | | | | |
  • 1
    "worrying about the mechanics of typing away.", haha, really, isn't typing like breathing to most of us by now? – CaffGeek Aug 9 '11 at 20:04

The way I think of it is nothing more than the driver holds the steering wheel (keyboard), the other guy needs a title and the rally metaphor works for most geeks.

I never thought of of extending the metaphor to the tree as suggested by @Bart

| improve this answer | | | | |

What are the more/most commonly accepted terms for the two roles in pair programming?

Driver and navigator/observer.

| improve this answer | | | | |

I have heard the improperly paired combination of driver/back seat. It's annoying that one is a role name and the other a location.

| improve this answer | | | | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.