For me they are different, is more like sketching for UX design. Sometimes I find myself with a piece of paper, not an IDE or a text editor, writing down how I would like an API to be like so it is as dev-friendly as possible, once I reach something I feel happy about I proceed to implement it. During the implementation phase, sometimes I use TDD but not always.
I do agree that they are different, but related, matters. And the description you provided illustrates it very well.
I would only add that I am pretty much a TDD practitioner, and not doing it is my utter-most exception. Thus I would say: always use both of them. Be wishful. Do TDD.
We’re a place for programmers to stay up-to-date, learn new skills, and share ideas.
We’ll never post without your permission.