I promised to publish my analysis of the survey that I conducted at the beginning of the year and, in a way, I have. The “Common Objections To TDD” slide deck that I posted on Slide Share contains a breakdown of the responses with some graphical representation. (Well, a pie chart and a word cloud).
Due to the nature of the survey (free text responses) it is difficult to use the responses to provide any meaningful numerical statistics. Subjective analysis showed that there were a number of common areas of objection, which can be roughly summarised as:
- Education: TDD is hard to learn and unit testing is hard to do well
- Time: TDD slows me down
- Benefits: I’m not convinced there will be any benefit to adopting TDD
- Project: My codebase and/or development environment makes it hard to adopt TDD
- Cultural: My organisation makes it hard to adopt TDD
In reality some responses belonged in several of these categories, because so many of the barriers to adoption are closely related.
Thank you to all who took the time to respond to the survey. It has demonstrated, as we probably always knew, that there is no single big issue to overcome, and as some respondents pointed out, successful software projects are still delivered without TDD and projects that use TDD still fail.