A couple of developers here at Fog Creek have spent the last day or so doing ‘extreme programming’ … actually pair programming, which is all anybody remembers about extreme programming…
Conclusion: it’s very effective when you have a long list of small bug fixes you want to sprint through, because you can reach incredible velocity. Typos and small bugs get caught right away.
But you can’t stop and concentrate, so it’s probably not so useful for longer programming tasks. Another caveat: personal synergy is crucial. It’s like being a cop: if you don’t like your partner, it’s one of the less pleasant rings of hell! (Luckily, rule #0 in Fog Creek hiring is no jerks.)