I was reading through the sample chapter of an Extreme Programming book on the Addison-Wesley site and came across the following gems:
The way I learn is to have a thought, then test it out to see if it is a good thought. Code is the best way I know of to do this. Code isn’t swayed by the power and logic of rhetoric. Code isn’t impressed by college degrees or large salaries. Code just sits there, happily doing exactly what you told it to do. If that isn’t what you thought you told it to do, that’s your problem.
Code also gives you a chance to communicate clearly and concisely. If you have an idea and explain it to me, I can easily misunderstand. If we code it together, though, I can see in the logic you write the precise shape of your ideas. Again, I see the shape of your ideas not as you see them in your head, but as they find expression to the outside world.