Discussion about this post

User's avatar
Jay Bazuzi's avatar

TDD offers all these benefits and more. How we practice TDD affects which of the outcomes we get. Which outcomes we value and believe are offered affects how we choose to practice TDD.

One person, thinking that TDD is about delivering tests along with implementation because that protects against future regression, will be happy writing tests after. They will also see value in measuring code coverage and driving it up.

Another person, thinking that TDD is about design, will roll their eyes at code coverage: "my CC is usually high without trying, occasionally low and that's OK, and driving it higher won't help."

Another, who values TDD for the tiny pulse of satisfaction that comes with every new passing test, will focus on the tiniest red/green increments (possibly missing refactoring).

Yet another, who cares about refactoring most of all, wants comprehensive tests and minimal pinned implementation details.

I want all of the benefits and none of the drawbacks. So that shapes how I strive to practice TDD.

Expand full comment
Isidro López's avatar

Great post.

I would like to share one more outcome that I personally enjoy a lot and find extremely important: the FOCUS. TDD helps me to focus and reduce the possibility of "distraction" from what it matters. Not only from the technology perspective, but also from the business/user-needs perspective.

Thanks a lot for sharing all these reflections!! I will definitely use some in the future :-)

Expand full comment
37 more comments...

No posts