That's a good question. I usually follow a similar path as the one John mentioned, which is what TDD is all about from my perspective:
TDD doesn't eliminate the need for design consideration, quite the opposite.
TDD is about design and that's why your question is very important - it's not just the notion of writing tests first and code later.
We’re a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.