From a Salon interview with Ellen Ullman:
When you’re around really serious professional programmers, this code jockey stuff really falls away, and there is a recognition that the best programmers spend a lot of time thinking first, and working out the algorithms on paper or in their heads, at a white board, walking.
Is this one of the reasons why test driven development is successful? It forces you to take a step back and consider the problem in a greater level of detail before you start writing code. If it’s not the main reason then I think it’s a large influencing factor. Several of the XP practices exhibit this behaviour (more thinking, less typing) in fact, despite it’s name. Take pair programming, if you’re forced to work with somebody and explain what you are doing then you are forced to think about your work at least to the level of articulating your thoughts to another.