Great post. I would have loved to hear the "boxing match" between you and Jim. I let out an observable sigh every time I hear nonsense such as "TDD will deteriorate your architecture." Such words are always said by someone that hasn't done the work to learn TDD.
Sadek: It was meant as a half ironic remark.
as I said I have a full blog post on this subject that has a more "balanced" look.
In the meantime, I do mean it to say "don't listen to him until you get the full picture"
well ok, now i prefer this one "don't listen to him until you get the full picture"
Just to help out your readership, and continuing in the rich vein of half-ironic remarks:
If they shouldn't listen to me, then who _should_ they listen to (I mean, besides you)?
Is there anyone else that we shouldn't listen to? I take it that your filtering criteria are along the lines of agreement with your position rather than on the basis of any rhetorical or dialectic principles?
There is only one case in which I advise people to not listen to someone: when they attempt censure. Let me then take this rare opportunity to exhort people to ignore your censure and to grab every perspective they can with both hands. The evidence for TDD is shaky and the evidence against it is growing (as in the two research papers I related at JaOO). We need industry dialog on this and I think that many have something to offer — even those whose objectivity we might call into question because they have a vested interest relating to their stake in writing a book on a related topic or something.
My position comes not from a vested interest but from broad experience applying TDD in software all the way back to the late 1980s at Bell Labs, and in hardware all the way back to the 1990s in Bell Labs and in a company called DAFCA (I'm not making this up) whose raison d'être can be viewed as supporting designers to do TDD-for-hardware.
So I won't be so foolish to say that to get the full picture, you should listen to me, but I do feel I have part of the picture. Like you, I'm willing to put my cards on the table. I'll let the reader judge the results for themselves, and prefer that to having someone else judge for them.
Tell you what: let's start getting that Agile conference together and let's bring some people together to sort this out in workshops, panels, and the like. I think it could be fun, and it would be good to pick up where we left off — and, as Sadek points out, to get to the other half of the story that seems to have vanished from your post.