There's this idea, the red/green/refactor thing, the never write a line of code not required by a failing test thing, the evolve the design based on the test and code plus your lovely imagination thing, the keep it clean thing.
There is a name, TDD, Test-Driven Development or Test-Driven Design, that is applied to that bunch of ideas. We want to draw a bright line around the ideas that /are/ TDD, and to keep out the ones that are not TDD.
Still, we'd like to do that and for now I'll try to do that.
You are not authorized to use that name to mean something. It doesn't mean anything. It only kind of means something, some ideal.
Watch us on a given day, and there will be moments when you want to shout "THAT'S NOT TDD!!!"
It's Real TDD, and it is both more and less than PTDD.
In the simplest form, if we're not writing tests, we often go in tiny steps and compile or run the code frequently, long before the whole thing works.
PTDD infected us with the habit of tiny steps.
PTDD pushes us toward testing as much as possible.
Sometimes we're even right about that.
PTDD taught us to better see our strengths and weaknesses.
We don't get that. We won't get that.
That's not what happens. It's not even what /should/ happen.
We can't do that with Pure TDD. It's just a simple tool.
Do things and learn from them. That's all there is.