I have to agree on most of this. I go through a storming phase where I like to get my code and concepts down before being able to identify the aspects which can be refactored into classes, helpers, variables etc.
There's maybe something in the type of brain I have that I need to see the rough outline of my functions before being able to have clarity on whether the direction feels right to go with. This phase then enables me to pull out the areas thst need testing focus, complex logic or core routines get covered the most. I'll write my failing tests and rebuild my functions to pass. I know this way that the logic is proven as far as possible but at a design level it also has a clear purpose in my overall architecture.
I find blindly writing my tests without the drafts means I end up stuck in test refactoring.
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.