Two developers work on one computer developing code. One developer drives (i.e., types the code) and the other developer navigates (i.e., plans and dictates the code). The driver takes care of the details, making microdecisions and asking questions about specific choices. The navigator worries about the bigger picture, where the code is going, how it might be tested, and so on. In situations where one developer is more skilled than the other, the less skilled developer drives. This leads to just-in-time learning.

