My first thought is that pair programming is a huge waste of time. When only one person has access to the keyboard, aren’t you wasting the other person’s time?
I could just see myself chomping at the bit and thinking — how could he not use windows+e to launch windows explorer–there has to be a better way. My brain would keep wondering why he wasn’t typing something the super efficient way that I knew to do it.
And yet, he started doing things that I didn’t know how to do — so you don’t actually need a GO between those SQL statements? huh — who knew? I guess that means I don’t know everything. And therein lies the key of pair programming. You don’t know everything, and if you pair with someone else who is a good programmer you will certainly learn something from them.
Not only that, but there’s something about the shared energy that comes from both of you working to solve a problem. For some reason, you seem to solve it faster. I think it’s because while one of you is trying one possible solution, the other one is thinking about another way to solve it.
Does that mean that pair programming is a panacea that you should always do? I don’t think so. Not yet, but it’s definitely something that I will plan to do more often because I think it’s a great way to encourage and learn from each other.