The test-first part was a wonderful set of training wheels that taught me how to think about testing at a deeper level, but also some I quickly left behind.
Over the years, the test-first rhetoric got louder and angrier, though. More mean-spirited. And at times I got sucked into that fundamentalist vortex, feeling bad about not following the true gospel. Then I’d try test-first for a few weeks, only to drop it again when it started hurting my designs.
A very interesting post from David Hansson; taking a step back from the TDD process and examining its usefulness.
Having played with a TDD approach on a couple small personal side projects, I initially liked the process; specifically the strong definition of use cases and a confidence that a refactor or change would not cause side effects in other areas. Some of the other areas I did not find nearly as useful and ran into longer development due to having to update classes and the unit tests associated only with those classes.
I’m glad to see people taking objective looks at the process and pointing out some areas we can look to improve it.
See on david.heinemeierhansson.com