Another problem with TDD
I have definitely found one more problem with test-driven development: the creation and documentation of tests can be taken too far. I am now in my 3rd day of documenting my tests. I definitely agree that tests should be written before you start coding, however, these tests should be written in code and not in Word. I have 17+ pages of tests documented in a Word doc and not a single bit of code written.
The idea behind TDD is that the exercise of writing tests should be an exercise in design. It forces you to think through the inputs, the outputs, and the transformations that take place in between. In addition, it forces you to think through and apply your design. However, for me, this thinking, design part was done 4 days ago. All I am doing now is documenting all that thinking. This definitely feels like a waste of time. I could be writing JUnit tests write and documenting them instead of doing all the same work in Word.
Update: Okay, this is not an actual problem with TDD it is simply my frustration with a particular implementation of TDD. Where I work, we require all developers to create a test plan before they can actually create the tests. Since none of the developers have done TDD, this is actually working out quite well because it gives us a chance to review the ideas behind the tests before those tests get coded. However, it is still a tedious process.