The idea is two developers work on the same machine. Both have keyboard and mouse. At any given time one is driver and the other navigator. The roles switch either every hour, or whenever really. The driver codes, the navigator is reading, checking, spell-checking and sanity testing the code, whilst thinking through problems and where to go next. If the driver hits a problem, there are two people to find a solution, and one of the two usually has a good idea.
If only one developer/programmer reads this, then my job is done.
Why can't Application Managers see past the outsource/hire more warm bodies issue and just embrace this method? Follow the link to read more.
Coding Horror: Pair Programming vs. Code Reviews