More on TDD depression

published: Tue, 18-Oct-2005   |   updated: Sun, 23-Jul-2006

Holy cow, I seemed to have struck a nerve with my previous post.

One of my readers wrote:

I can understand it when non-software based organizations just don't get it. But it is extremely disappointing when pure software companies can't wrap their head around TDD. Having done TDD for a while now, I can't imagine going back to the old way of doing things. Unfortunately, I have pretty much lost my battle here at work to do any official test driven development. Certainly I can still "play with it" on my own time and on simple projects. But since it is not part of our "corporate strategy", I can't expect anyone but me to ever look at the tests or update them as systems evolve. (I'm waiting for the day when my cruise control server is taken away). In fact, the company I'm working for recently bought into Borland's whole ALM strategy so we are sliding downhill pretty fast. We are at a point now where I can't even create a folder in source control without providing a business case and sending a formal request to the CM group to do it for me.... yikes!

And then another:

OK, now you've got both of us depressed. I still haven't been anywhere that actually uses TDD, and was hoping that it actually existed out in the real world.

Let's broaden the conversation a little. Sam Newman works for ThoughtWorks and wrote this post yesterday (I skipped over it then because it had the magic words Web 2.0 in the title and to be honest the usual drivel that's written about it bores me to tears).

The article he refers to is interesting in its own right. And I can see that with a greenfield project using PHP of all languages, you just write it and test it manually as you go along.

Carlos Villela had some interesting thoughts about Sam's post where he points out that if you never have to do a version 2.0 (or, better, you get someone else to do it) you don't have to worry too much about automated tests. A kind of YAGNI in a way, although it scares the bejasus out of me.

Dr Neil Roodyn (he wrote eXtreme .NET) also writes about the non-TDD test-driven development that Team System espouses. Mind you, I disliked some of the things he wrote in his book (for instance, adding a reference to NUnit.Framework.dll to your production project is just daft).

Wil Shipley (the guy who developed Delicious Library for the Mac) wrote that he doesn't use automated testing: his 21 years of being a professional programmer has taught him that it's a waste of time. Mmm, well my 25 years (sob, has it been that long?) of being a professional programmer has taught me that not having it is a complete waste of time during maintenance, especially of large systems. The larger the system, the more it needs unit tests, etc; the smaller the number of unit tests, the more I long to go somewhere else.

Coding Horror riffs on Wil's post to say, well, not very much (does he know what TDD is?). He does say that unit tests complement beta testing but I don't think anyone has ever said that they should replace it. Puzzling.