Discussion about this post

User's avatar
Aman's avatar

Note, John does confess that he himself has not tried TDD flow, hes only seen some examples of people/students who think they have tried TDD. If my implementation of a practice is flawed, it's not to be taken as a reflection of the practice itself. Regardless of whether or not one practices TDD, software design is matter of discipline. If I have a good discipline for design, I can do it with TDD as well (or in John's case despite TDD 😀)

Expand full comment
Dave Laribee's avatar

"Yeah, I'm not a fan of TDD because I think it works against design."

One must use a single, consistent paradigm or technique for design. That feels like a faulty assumption to me.

It's similar to the notion that we need to use one programming paradigm.

I really like having different design tools to apply to different contexts. Some examples:

I love TDD for core domains, not so much for writing front-end code. In the later, I prefer (keyword) a more designer (the role) driven process. Test-centered, of course, but not strictly test-driven.

Or when I encounter a codebase that wasn't built with TDD, I like using the C4 model to capture the current state and its dynamic diagrams to plan extractions or large-scale refactorings before introducing behaviors, likely using TDD. So, top-down until I can get to a place where emergent design works.

Expand full comment
10 more comments...

No posts