PAIR programming is a software practice that involves a pair of programmers simultaneously collaborating with each other on the same programming effort. One programmer controls the keyboard and implements the program. The other programmer watches identifies defects and considers the direction of the work. Sitting side by side at one computer, two colleagues collaborate on solving the problem, designing the algorithm, and coding. Pairs regularly switch the driver and navigator roles and rotate their partners with other teams: This practice is thought to facilitate skills transfer and job rotation.