Rather than slavishly pair program all the time, we use pair programming selectively on our team. I think it
works best in the following circumstances:
- Ramping up brand new team members on a project (instead of letting them wade through documentation or code on their own).
- Having junior and senior people work together (helps to show some of the skills and tricks of the more experienced developers, plus it allows the old dogs to learn new tricks sometimes).
- When someone is trying to track down a defect, it often helps to pair with a fresh set of eyes.
When do you pair program and why?
When do you avoid pair programming? Why?