Skip to main content
1 of 5
h22
  • 966
  • 1
  • 6
  • 17

I think that two pilots in the aircraft is the closest I can think, so let's have some overview how the problems you address are solved there.

In aviation, then there are two pilots, there is a pilot flying and the pilot monitoring. The pilot monitoring is also fully in the course and can take over at any time. Conversations not related to the flight are strictly prohibited in the cockpit. Same should be between the pair programmers.

Tiny decisions are made by the pilot flying, but the pilots communicate when making bigger decisions. Pilots also follow checklists that describe many standard actions they should take. If something goes wrong, the pilots pull out say "unreliable airspeed reading" checklist and follow steps there rather than starting from long discussion that should be done. If the Captain is absolutely sure, he has a priority to decide quickly, overriding any rules, any directions from the control tower and with no discussion but this is not lightly done. When the Captain disregards the instructions from the control tower, he must tell about this to the control tower ASAP. Hence I expect the lead developer to have right for say something like "the approach X creates much better code exactly here, so we use it, even if general rules call for something different", but this should not come very often.

Pilots divide the time each of them controls the aircraft more or less equally but there are tricky tasks like flying 747 with three engines only or landing at Heraklion airport where it is officially stated that "the Captain must do the flying". Otherwise, both pilots are fully trained and qualified to fly that aircraft and do not need very in depth micro-management. Hence I would expect the pair programmer active with the code to type and scroll as he wants, with another just observing and only interfering if he has notable thing to say.

Finally, to understand the role better, a new Captain is first trained with another, more experienced Captain that is a "real Captain" of the aircraft but while the flight goes well, plays the role of the second pilot. After that, the young Captain is paired to fly with much more experienced (by the flight hours) second pilot. Only then the Captain is considered ready to flight with someone he may see as less capable.

Aircraft intended to be flown by two pilots normally have dual controls. To follow this pattern, it is a good idea to connect at least the second mouse if not the keyboard. This allows to pass the "driving" between developers very quickly.

h22
  • 966
  • 1
  • 6
  • 17