Pair programming is an agile practice in software development in which two programmers team up to optimize productivity at one workstation. One of the two programmers (the driver) writes the code using pair programming, while the other watches and reviews (the observer). The two programmers periodically exchange positions.