You need both programmers at a similar level of experience and ability, just with a somewhat different skillset. That's when it works the best and works amazingly well. It is when there is a noticeable difference in ability level that it doesn't work. (Been in both situations.)
Wade.