> Forgetting it’s a skill<p>> Pair programming is a skill which must be learned.<p>> You will not be good at it at first, but consistent practice will yield improvements.<p>> Don’t give up after a difficult first experience. Don’t assume experienced developers are automatically good pairing partners. Don’t expect to be good without practice.<p>> Consider reflecting with your pair or asking for feedback after each session. What could have been better?<p>In my experience (pairing on and off for about 12 years) - this is the biggest thing people misunderstand about pairing. You're not going to be good at it right away, and the team isn't going to benefit right away. It's an investment that pays off in months not days.<p>That being said - I find that requiring my team to be <i>good</i> at pairing, but not that they pair all day every day, is sufficient. It means that they pair when it's appropriate (onboarding, larger design problems, early stages of a project, etc) and they don't when it's less appropriate (fleshing out an implementation, exploring a new idea, mundane updates).<p>We find that if we pair all the time, especially on things that don't benefit from pairing, it exhausts us. Pairing is a useful tool, but it can be equally dangerous if overused and cause people to resent it.