I am Robert C. Martin (Uncle Bob). Ask me anything.

View original thread
Aleksa Boškov's photo

Hey Uncle Bob, thanks for doing this one. I have a question regarding TDD and how it fits into planning and estimation.

I'm working at a company that values technical task breakdown and somewhat accurate estimations. By practicing this, we usually get the design and separation of major components nailed down before the development begins. Now, this doesn't work very well with TDD as I already kind of have my design laid out.

How would you approach this, and where do you think is the fine line between planning and estimating and letting tests drive the design?

Cheers.

Adam Romney's photo

Watching Uncle Bob's Bowling Game TDD demo might address part of your question. In the demo he puts forth a planned design for the problem then walks through the TDD approach and compares the result to the design. So perhaps the planned design is useful for estimating but actual implementation ought to be done via TDD.