TDD ain’t no snowboarding
November 4, 2007 · 12:18 pm · tags: programming tdd
In his latest post, the excellent Jean Paul Boodhoo answers publicly to an email he received from a guy who has doubts with TDD:
“I’m not using this methodology (TDD) because my principal question remains unanswered. I know that with TDD you should release less bugs, but what about the time needed to develop with that methodology ? I would like to know if the time to develop an enterprise solution is faster, equal, or longer with TDD. I hope you will be able to answer me because I’m very intrigued and interested by TDD and DDD.”
Jean Paul, being the nice guy he is, writes:
“Like snowboarding (or any new skill you wish to acquire), in the beginning a lot of learning is going to be taking place. For the majority of people who venture into TDD waters, they realize that there are potential big holes in their skillset that may cause them pain in this new world.”
Let me disagree. I am an enterprise programmer, and I have tried both: snowboarding and TDD. The first, I quitted immediately. The latter became my natural way of coding in a few days.
When I first approached snowboarding, I definitely lacked a LOT of prerequisites needed for such a manly sport:
- I had NO previous experience whatsoever in winter sports (except for distant memories of an old C64 hit, which didn’t include snowboarding, either).
- The nearest mountain was 3hrs from my place.
- I was definitely overweight (like, 98 kg x 172 cm — that would be 216 pounds x 5.64 feet).
- My ankles are quite fragile.
The very first day I put my feet on a snowboard, my good, already-skilled, very-athletic friends brought me on the top of the track and let me there on my own. It took me four hours to reach the bottom (it was a 15 min. track), and I nearly passed out for trying to get my fat arse off the soft, cold snow I constantly kept falling into. By the end of that atrocious first day, I had realized two things:
- If I really wanted to learn snowboarding, I had to loose a lot of weight and hire a good instructor.
- I didn’t really want to learn snowboarding. Wasn’t really worth it.
When I decided to give Test Driven Development a try, the only “prerequisites” I had were my natural curiosity and the sensation it was going to be great. No one else was doing it at my workplace (or so I thought), so I had to start it all on my own. I read a pair of excellent introductions to the concepts behind TDD, I found out the de facto standard for .NET unit testing, and started experimenting, following the One Rule behind it all: first the tests, then the code.
And that’s all. Everything came (and keeps coming) naturally: good basic principles like isolation, self-contained tests, dependency injection, and so on. There is no steep learning curve, there is no big initial investment (try buying a full set of snowboarding equipment to discover shortly after that you’re not going to use it…), there is no need for a professional instructor other than those good guys that already inspired you in the beginning.
Of course, I had to fight with my bosses, because yes, it does cost you that extra span of time, and you’ll have to show them it’s time well spent. And show you will. If, and only if, you stop seeking pre-cooked answers from those who already tried it and start friggin’ DOING something.
Just double-click that (whatever-)Unit installer. Beats snowboarding everyday :).

Jean-Paul S. Boodhoo:
November 21, 2007 @ 9:30 am
Stop Reading - Start Doing…
I had to laugh when I read “ TDD Ain’t No Snowboarding from Alessandro Burrato . It is a…