Earlier quoted context omitted.
> whether it was the full TDD process that would make a difference, or just writing more unit tests, writing those tests first, writing them at all, or various other changes in process that accompanied the TDD-like shifts. While it is useful to tease out the contributory causes for why adopting even a half-baked TDD had such a powerful effect, in the meantime, the fact is that even a half-baked TDD had a powerful eff…
While it is useful to tease out the contributory causes for why adopting even a half-baked TDD had such a powerful effect, in the meantime, the fact is that even a half-baked TDD had a powerful effect. You've invented this term "half-baked TDD", but that seems a little unfair. My point was that the groups in the Nagappan study were doing significantly more than just TDD. For example, they also had varying levels of d…
I was rolling with your characterisation that the study wasn't about "real" TDD.
> Prominent TDD advocates, Bob Martin among them, claim quite unambiguously that TDD is essential to writing good software, even using patronising and insulting language like "unprofessional" to describe anyone who doesn't do it.
I personally find Bob Martin quite infuriating.
Doubly so, because I am being apparently grouped with him.
> Given that, I'm sorry but I find it patently absurd to argue that the only reasons hardly anyone is doing TDD, even though it is so inherently superior in both quality of results and cost effectiveness, are that it is hard or unfamiliar.
My actual argument is that TDD is a practice that is hard to learn alone. Every anecdote I read about someone trying and rejecting TDD is an individual trying it by themselves.
> Many of us worked on software projects that have not failed. Not failing is table stakes for this debate.
Reducing defects found in production by 40-90% on a first encounter with TDD is more than table stakes. Especially considering how many projects utterly fail.
Consider for contrast Fagan-style code inspections. These too boast studies with ~90% bug yields. I don't see many people doing them.
Or formal methods. Again, claims of remarkable bug prevention outcomes on very challenging projects, for long spans of time. Yet it hasn't swept the industry.
Some practices are, frankly, harder to learn than others. That the industry is quicker adopt more easily-adopted practices says nothing else about the practices.
We clearly aren't going agree.
Edit: one more thing. I was struck by your point that people only ever cite the one paper. So I began looking for reviews.
Here are two recent ones of interest:
The effects of test driven development on internal quality, external quality and productivity: A systematic review
http://www.sciencedirect.com/science/article/pii/S0950584916...
and
"Considering rigor and relevance when evaluating test driven development: A systematic review"
http://www.sciencedirect.com/science/article/pii/S0950584914...
This second one in particular is of interest, the authors include Munir, who was an author of early research showing equivocal results for TDD.
Unfortunately, both behind paywalls, so a closer reading may weaken the fairly strong statements in the abstracts.