Listen to this post
This is my 48th post in this series on TDD. I wanted to bring some of this material together and engage with the notion of TDD as a sustainable process. In this posting, I will introduce the topic, and then cover some issues that pertain to sustainability and/or the seeming lack thereof.
There are those who have concluded that TDD is a great way to start a project and “get it on its feet,” but should not be continued past the first few iterations of work. Their argument is that, as the test suite grows in size and complexity, the maintenance burden it places on the team eventually becomes too much of a distraction from the actual work on production code, and TDD has to be abandoned in favor of the traditional code-then-cover approach.
Some have gone so far as to say that “TDD is dead” because of this.
If I believed this, I would not have spent the considerable time and effort I have in writing about it here. And I would not have taught TDD and coached TDD countless times and in countless places around the world.
I don’t think TDD is a magic bullet. Nor is anything else. But I do think it can and should be a sustainable process. Over the next week or so, I’ll address some of the apparent challenges that arise and what those challenges tell us.