“TDD doesn’t create good designs”. I see statements like this frequently. I agree. Programmers create better or worse designs through their design decisions. Their workflow can provide more or less, sooner or later, better or worse feedback. So can the social structure of their team.
Comments
- model the domain (typically a bunch of types)
- use TDD to implement the behaviour (functions/methods) - typically outside-in
Note that I don‘t strive for 100% test coverage, but high confidence. This results in only a few tests.
I *just* started toying with contracts (that actually break stuff at runtime in development, and can be optionally turned off in production) as a form of fast feedback that is also continuously integrated w. the world.