A recent TechCrunch post references two articles as being mutually supportive of each other when I think that couldn’t be further from the truth. Here’s the quote that I disagree with:
“Even test-driven development — the notion that a development team’s automated tests are even more important than the actual software they write, and should be written first — is being criticized. Once this belief seemed almost sacrosanct (although in my experience most of the industry paid it only lip service.) Now, though, Pieter Hintjens argues, ‘The more you test software, the worse it will be.’ Peter Sargeant agrees: ‘The whole concept of Test-Driven Development is hocus, and embracing it as your philosophy, criminal.’
The Peter Sargeant post has some interesting ideas but I don’t agree at all with the one by Pieter Hintjens. Since a lot of people read TechCrunch and probably not as many will have read the original posts I thought it would be useful to dispel the impression that these two articles represent a broad groundswell of anti-TDD sentiment. In fact the quote from Peter Sargeant used in the article is taken pretty much out of context. Here’s another quote from the same article that helps illustrate my point:
“Making tests a central part of the process because they’re useful to developers? Awesome.”
The key difference, as I read these posts, is that Peter believes tests are a useful tool which are sometimes misapplied, while Pieter does not see the value. I agree that no discipline should be dogmatically applied, including TDD, which I believe is Peter’s point.
Definitely read the original posts yourself and apply your own critical filters. I think that TDD and its close cousin, BDD, remain core tools that are critical to advancing the quality, timeliness and problem domain fit of software.