The balancing power of TDD: finding the sweet spot between design and testing
Test-driven development embodies the scientific method in software: thoughtful experimentation leads to proven success. Here's how to balance design vision with practical validation.

Why test?
In a recent article, Kent Beck (once again) clarifies what Test Driven Development truly represents. It caught my attention because he opens with this provocative quote from John Ousterhout:1
"Yeah, I'm not a fan of TDD because I think it works against design."
This statement was jarring because I'm familiar with John Ousterhout's work as a Stanford professor and author of A Philosophy of Software Design. He elaborates:2
"But we want the development process to be focused on design. I think that the center of everything we do in development should be organized towards getting the best possible design. And I think TDD works against that because it encourages you to do a little tiny increment of design."
Kent's response is thoughtful and thorough, making a compelling case in his rebuttal. You should read it.
That said, both John and Kent represent two ends of a spectrum. Most of us operate somewhere in the middle, where practical reality demands a bal…
Keep reading with a 7-day free trial
Subscribe to Customer Obsessed Engineering to keep reading this post and get 7 days of free access to the full post archives.