I have complicated feelings about TDD
I find some of the <i>techniques</i> espoused by TDD proponents to be quite useful.<p>In <i>some</i> of my projects.<p>Like any technique, it&#x27;s not dogma; just another tool.<p>One of my biggest issues with &quot;pure&quot; TDD, is the requirement to have a very well-developed upfront spec; which is actually a good thing.<p><i>sometimes</i>.<p>I like to take an &quot;evolutionary&quot; approach to design and implementation[0], and &quot;pure&quot; TDD isn&#x27;t particularly helpful, here.<p>[0] <a href="https:&#x2F;&#x2F;littlegreenviper.com&#x2F;miscellany&#x2F;evolutionary-design-specification&#x2F;" rel="nofollow">https:&#x2F;&#x2F;littlegreenviper.com&#x2F;miscellany&#x2F;evolutionary-design-...</a><p>Also, I do a lot of GUI and device interface stuff. Unit tests tend to be a problem, in these types of scenarios (no, &quot;UI unit testing&quot; is not a solution I like). That&#x27;s why I often prefer test harnesses[1]. My testing code generally dwarfs my implementation code.<p>[1] <a href="https:&#x2F;&#x2F;littlegreenviper.com&#x2F;miscellany&#x2F;testing-harness-vs-unit&#x2F;" rel="nofollow">https:&#x2F;&#x2F;littlegreenviper.com&#x2F;miscellany&#x2F;testing-harness-vs-u...</a><p>Here&#x27;s a story on how I ran into an issue, early on[2].<p>[2] <a href="https:&#x2F;&#x2F;littlegreenviper.com&#x2F;miscellany&#x2F;concrete-galoshes&#x2F;#story_time" rel="nofollow">https:&#x2F;&#x2F;littlegreenviper.com&#x2F;miscellany&#x2F;concrete-galoshes&#x2F;#s...</a>