Test (Drive Design) -> Code -> Refactor
Another discussion with Eli Lopian, check it here.
I would start out by saying that I agree to what he says, especially:
It is the process that will allow us to meet future requirements. A process that will allow us to change the design as the features grow.
I wouldn't call it process, but what the hell.
This, however, I disagree:
Lets recall the TDD process:
Write Tests -> Code -> Refactor (Design)
Notice that the Design stage is the LAST stage, it is not:
Design (For Testability) -> Test -> Code
In my view, the way it works is that you:
Write Test (Drive Design) -> Code -> Refactor
The idea is that writing tests is design, coding and refactoring is just making sure that it is working :-)

Comments
Comment preview