{"id":1704,"date":"2014-07-10T09:34:54","date_gmt":"2014-07-10T08:34:54","guid":{"rendered":"http:\/\/www.xenonique.co.uk\/blog\/?p=1704"},"modified":"2014-07-10T09:34:54","modified_gmt":"2014-07-10T08:34:54","slug":"is-tdd-dead-or-alive","status":"publish","type":"post","link":"https:\/\/www.xenonique.co.uk\/blog\/2014\/07\/10\/is-tdd-dead-or-alive\/","title":{"rendered":"Is TDD Dead Or Alive?"},"content":{"rendered":"<p>This blog post is for those of you who are unaware that there is a major debate in contemporary software development happening now, today. People have been wondering about the value of <a title=\"Test-Driven Development\" href=\"https:\/\/en.wikipedia.org\/wiki\/Test-driven_development\"><strong>Test-Driven Development<\/strong><\/a> (<strong>TDD<\/strong>) for a long while, but it was not until <strong>David Heinemeier Hansson<\/strong> of 37 Signals\u00a0 posted a blog article on St. George&#8217;s Day (23rd April 2014 and a significant day personally for me) called <a title=\"TDD is Dead. Long Live Testing by @dhh\" href=\"https:\/\/david.heinemeierhansson.com\/2014\/tdd-is-dead-long-live-testing.html\">&#8220;TDD is Dead. Long live testing&#8221;<\/a>. It started an unstoppable momentum of discussion into what is now a heated and controversial topic. So I encourage you read his article, first, if you are an experienced software engineer and then watch the videos.<\/p>\n<p>After this article was posted to the Internet, <strong>Heinemeier Hanson<\/strong>, <strong>Martin Fowler<\/strong> and <strong>Kent Beck<\/strong> followed up with a series of Google Hangout recordings, in May and June, each one was about 30 minutes long. The last edition (<a title=\"Google Hangout Recording: Is TDD Dead? Part V and VII\" href=\"https:\/\/www.youtube.com\/watch?v=gWD6REVeKW4\"><strong>part V and VII<\/strong><\/a>), which was full hour long was very revealing, because it was a question and answer sessions from the community and therefore extended the discussion to the wider audience. If you have 3 hours of free time, instead watching another Hollywood movie or re-runs of World Cup football, then it is well worth your time to listening (and\/or watching) the entire series to understand the debate and different points of view.<\/p>\n<p>As for my own opinion on TDD, it has a place in my toolbox like another hammer or a screwdriver, and it should be treated as such. To be a TDD practitioner requires skill and discipline; and the knowledge to believe that it is not appropriate in all situations. I have some sympathy with Heinemeier Hansson&#8217;s frustrated view, <em>&#8220;Most people cannot just leave good ideas the f**k alone&#8221;<\/em>. I witnessed a certain zealotry in a couple job interviews a few years ago, when interviewers used the technique like an officer using a truncheon to beat somebody with. If you didn&#8217;t write code in a correct view for the client, you were rejected. I raised suspicions in my head about the variations of different testing styles across different organisations and sectors. In the end, I have suspected that you do not have write code test first all the time, with the plethora of unit testing frameworks out there such <a title=\"Junit\" href=\"https:\/\/en.wikipedia.org\/wiki\/JUnit\"><strong>JUnit<\/strong><\/a>, <strong><a title=\"ScalaTest\" href=\"https:\/\/www.scalatest.org\/\">ScalaTest<\/a>,<\/strong> <a title=\"Twitter Scala Specs project\" href=\"https:\/\/twitter.github.io\/scala_school\/specs.html\"><strong>Scala Specs<\/strong><\/a>. It is more important to have the ground level, there must be tests in the application and system software that exercise the customer&#8217;s acceptance requirement and produces a <a title=\"Minimum viable product\" href=\"https:\/\/en.wikipedia.org\/wiki\/Minimum_viable_product\">Minimal Viable Product<\/a>. This is definite the road to follow.<\/p>\n<p>PS: The first video in the series, &#8220;Is TDD Dead?&#8221;, starts <a title=\"Is TDD Dead? Video 1\" href=\"https:\/\/www.youtube.com\/watch?v=z9quxZsLcfo\">here<\/a>.<\/p>\n<p>+PP+<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This blog post is for those of you who are unaware that there is a major debate in contemporary software development happening now, today. People have been wondering about the value of Test-Driven Development (TDD) for a long while, but it was not until David Heinemeier Hansson of 37 Signals\u00a0 posted a blog article on [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[32,123,59,72,52,17],"tags":[],"_links":{"self":[{"href":"https:\/\/www.xenonique.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1704"}],"collection":[{"href":"https:\/\/www.xenonique.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xenonique.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xenonique.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xenonique.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=1704"}],"version-history":[{"count":2,"href":"https:\/\/www.xenonique.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1704\/revisions"}],"predecessor-version":[{"id":1706,"href":"https:\/\/www.xenonique.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1704\/revisions\/1706"}],"wp:attachment":[{"href":"https:\/\/www.xenonique.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=1704"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xenonique.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=1704"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xenonique.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=1704"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}