Pair programming is a software development technique in which two coders share a single computer. The programmer inputting the code is known as the "driver", while the other one is called the "navigator". The navigator does not actively type in the code but nevertheless actively participates in the process, ensuring that the program follows the previously established goals. The programmers frequently switch roles - both are expected to spend equal amounts of time being drivers and navigators.
The idea behind pair programming is to facilitate skill transfer and knowledge diffusion and increase code quality.