Pair programming is a core practice of the XP framework that allows team members to learn from each other, increase productivity, and find bugs by writing, directing, and reviewing code in pairs. The driver writes the code while another person, the navigator (aka. observer), reviews each line of code entered. The pairs (two members) change roles (i.e., driver and navigator) frequently. The navigator looks at major problems and errors and makes notes and share ideas on possible next steps or obstacles.
Pair Programming is best done when team members are in the same location.