In my work environment I find "pair programming" to be useful the 5% of the time someone is working on a Hard Problem. Most time during the work day is UI tuning, debugging, and generic implementation of straightforward features.<p>Pair programming doesn't need to be a policy because it precipitates naturally out of someone asking for help on a Hard Problem. That 5% of the time you're working through a tasks key algorithm, or discovering the best User Interaction for a complex feature.<p>I find Pair Programming to be a important sounding label for something which is actually quite mundane. It's called working together™.<p>It's a waste of my time to sit and watch someone implement the 95% of software that is mundane.