TDD is a flawed paradigm by the very nature of having to write more lines of test code than production code. It has undoubted good side affects like higher quality code but nobody ever wants to discuss the flawed nature. Anybody who dares challenge it is slated as unprofessional:
Typically we get the same old cries of either being unprofessional or as is in this case is of Thomas Eyde we get the predictable cry of “You aren’t doing TDD” obviously. He posted the following quote:
You aren't doing TDD, obviously, because you don't want to use flawed methods. So how do you create your quality code? How do you verify your code does exactly what you intended it to do? How do you avoid to write code you don't need? How do you avoid to break working code when you apply your changes?
It is tedious for me to try and prove whether or not I do TDD, I can point to the horn tests as examples of the tests I have written. Anyway to get into such a debate is boring. For the record, I never once said you should not do it.
My question to the few people out there who may read this blog is a very simple one...
Why the hell can we not question TDD’s worth? Every time someone dares to question the flaws, they get slated as unprofessional.
The very fact that we end up writing more test code than production code makes me feel uneasy about the whole concept. TDD takes a very long time to get up to speed if you have no mentoring to accelerate the learning. The whole concept just seems loose with no clearly defined boundaries to help reign you into to a tighter feedback loop. For me, it took a while for the penny to drop with respect to how important it is to write a clearly defined failing test. I must stress clearly defined and not just a failing test.
TDD is flawed and instead of getting hot under the collar every time somebody dares to question it, we should be thinking of ways to improve the very loose and unguaranteed way the paradigm works. Of course I could just be very slow.
Or are we saying that we are totally happy with the experience and we will just leave it at that..................?