I don’t do TDD. A lot of people who obsess about testing would probably be horrified by how/how often I write tests. I do some functional testing for most packages and only go deeper when I need to get stuff out of my head.
I tried to to TDD/BDD, but I really never got any value out of it. It didn’t really help me figure out what I wanted to do, and often times it caused me to do something I later regretted.
If my development is “driven” by anything, it’s actually drawing. We have these massive whiteboard walls at work and I fill them up all the time.
Lately the work that I’m doing is much more high-level. I’m doing “architectural” design work which gets implemented by one of like six people. Oftentimes I’m not even part of figuring out all the implementation details. I spend most of my time trying to explain an idea and justify it’s existence/design decisions.
But, my answer isn’t necessarily the right answer for everyone. If people get value out of TDD, then they should do it. Is it right for everyone? Absolutely not. People have very different processes for figuring stuff out. So if you were to say “everyone on our team has to do TDD”, I’d think you’re a dumbass. If you were to say “TDD can be a really useful tool for a lot of people, and everyone should at least try it”, I’d wholeheartedly agree with you.