Solutions 2-26asks the other, "What were we working on?" Pairing flow is also more resilient to interruptions: one programmer deals with the interruption while the other keeps working. •Multiple developers contributing to design. If pairs are rotated frequently, several people will be involved in developing a particular feature. This can help create better solutions, particularly when a pair gets stuck on a particularly tricky problem •Improved morale. Pair programming can be more enjoyable for some engineers than programming alone. •Collective code ownership. When everyone on a project is pair programming, and pairs rotate frequently, everybody gains a working knowledge of the entire codebase. •Mentoring. Everyone, even junior programmers, possess knowledge that others don't. Pair programming is a painless way of spreading that knowledge. •Team cohesion. People get to know each other more quickly when pair programming. Pair programming may encourage team gelling. •Fewer interruptions. People are more reluctant to interrupt a pair than they are to interrupt someone working alone. •One fewer workstation required. Since two people use one workstation, one fewer workstation is required, and therefore the extra workstation can be used for other purposes. Studies have shown that after training for the "people skills" involved, two programmers are more than twice as productive as one for a given task.Pair programming has the following disadvantages:•Experienced developers may find it tedious to tutor a less experienced developerin a paired environment. •Many engineers prefer to work alone, and may find the paired environment cumbersome. •Productivity gains or losses are hard to compare between paired and non-paired environments, as metrics of programmer productivity are controversial at best. •Experienced engineers quite likely produce code that is very accurate, and the additional theoretical gain from pairing is not worth the cost of an additional engineer. •Differences in coding style may result in conflict. •In the case where the team has slightly different work schedules, which is common in an environment that values work-life balance, the pair is only available during the overlap of their schedules. Therefore, not only does it require more man-hours to complete a task, a typical day has fewer pair-hours available, which further increases the overall task completion time. •Where a company values telecommuting (working from home) or when an employee must work from outside the office for whatever reasons, pair programming can be difficult and even impossible.