That's certainly true; but when you've done your homework, it can be a really great experience.
For example: the past 3 weeks I've been pounding out tons of code in a TDD fashion. But prior to that:
* I spent a week writing up a detailed design document and getting feedback from teammates and stakeholders.
* Another week refactoring (TRULY refactoring; no changes to functionality) the existing implementation so I can reuse the existing work in my new implementation.
I don't know why the idea of TDD sounds so terrible to me but it does.