"This extreme approach of saying, ‘Well, the first thing you do is write a test that says I get the right answer at the end,’ and then you run it and see that it fails, and then you say, ‘What do I need next?’—that doesn’t seem like the right way to design something to me."
Peter Norvig (Coders at Work)