I attended the Agile Canada Camp Canada (#ACCCA14) 2014 over the last weekend. It was really invigorating and lively. I was able to pick up several new concept and ideas and helped a few people along the way. I will post some important thoughts in a series of blogs on these topic. This is my first one as it is closely related to my previous post on the outrageous claim by DHH on TDD.
I was actually going to talk about this topic in the Open Space session, but two people already grabbed that spot, so I eagerly joined the conversation. While opinions from both sides were presented, consensus was that TDD is a good coding practice that should not be buried by one hash tag. We all understand where Hansson was coming from and some people even thought Hansson was only referring to rails world and not other languages. Nevertheless, the more important message we want to send though is that TDD is a really useful tool for people starting out with the unit testing and programming in general. It is like a training wheels on a bike. The technique will encourage developers to think about how to design the application in a testable manner which turns out that encourages loose coupling. Over doing it will lead to falls, just like a fast turn on the bike with training wheel will do, but once you have the habit of thinking about coding in this way, then the wheels can come off.
So here is my contribution to this cause. TDD is alive and well, in fact, it is maturing. Like any good idea, challenges to established “truth” are healthy, but present the full picture, not a sensational hash tag (the power and downside of Twitter), so that we don’t mislead people.