Pair programming has already been noded above, but the decision making as to whether to adopt it fully depends on the wishes of the team. It is certainly not a cure-all and in fact puts constraints on facilities and the IT department (who have to only buy computers that can support dual monitors, for example). It can also affect staffing: odd numbered teams have difficulties every day. Here are various pros and cons regarding making the decision to adopt the above.

Pros and Cons of Pair Programming:

Pros:

  • Encourages developers to work together, giving different perspectives on a problem
  • Results in effective knowledge transfer between team members, leading in reduced bus numbers, especially for critical tasks
  • By its very nature, discourages web surfing and IM usage at work
  • Encourages members of the team to check in their work to a central repository, so that one doesn't have to work on a specific computer because changes are not available to all developers at any time.
  • Allows for some socialisation
  • Allows people with different skill sets to synergize their results.

Cons:

  • Close Proximity/Keyboard sharing can transfer illnesses between team members, so the use of hand sanitizers, hand washing and a certain level of hygiene is mandatory
  • If the two members in the pair are greatly mismatched in experience, one will slow down the other, resulting in a net LOSS of productivity
  • Antisocial or difficult employees will affect the workplace to a far greater degree