Two threads at TheServerSide Java and .NET are discussing pair programming.

I really love pair programming because it opened my eyes that I have only learned a small fraction (10% ?) of what I can still possibly learn in this lifetime.

I couldn't hold back to comment to the fresh new thread on TSS .NET:

"We have been working with remote pair programming for the past two years. We use Skype and VNC for pairing sessions between our developers in countries like Argentina, Brazil, China, Germany, India, South Africa and the USA.

Some experiences:
- Pairing keeps you completely focussed on a single important task. This benefit alone at least doubles the productivity of every developer and makes pairing cheaper.
- Pairing produces better designs that last longer.
- Pairing prevents simple mistakes and saves you from loosing time in the debugger.
- Pairing fosters shared knowledge about the project that is being worked on. It makes it easier to exchange people between tasks.
- Pairing helps learning. People teach eachother programming techniques, patterns and ways of working with IDEs.
- Pairing helps raising the spirit of the team. It has worked extremely well to glue our team together, although we only see eachother in real life twice a year.
- Pairing activates the speech area of your brain and makes you more creative.
- Pairing is fun.

There is only one downside of pairing: It can be very strenuous. I can write code on my own 10 hours a day, 7 days a week and it's always a fresh breeze of flow. Pairing is different. Sometimes two intense 2-hour pairing sessions are absolutely enough for one day to be very tired. That's good, you can have a life too because you get much more work accomplished in less time.

I believe that 20 hours of pairing ( 4 hours, 5 days ) produce more valuable output than 70 hours of solo programming ( 10 hours, 7 days)."