My good friend Scott recently got into Test Driven Development, essentially pointing out that the crossover to understanding why TDD was important basically sat between the fact that TDD was essentially misnamed. If you took out the references to Testing, which is generally seen as a dull chore to many new and experienced coders, then you are left with a development process which is much more interactive than producing UML diagrams and can tell other developers a lot more about your design (and hopefully less open to interpretation.)
The process of writing tests before you develop in TDD is to explain the behaviour of a class rather than actually testing it. He pointed me to some links that explained the very position and how some are considering the name Behaviour Driven Development in place of TDD and frameworks to help interface with such a thing.
So thanks to Scott, here are some great links about TDD where you can hopefully understand the why’s behind it.
Jean-Paul Boodhoo – Behaviour Driven Development
James Kovacs’ Weblog – A Tale of Two Epiphanies: TDD and Mocking
And a great site that talks about testing of all sorts on all different platforms – testdriven.com
Oh, and if you are wondering the crazed title of this blog came from… Once I’d been preaching TDD to Scott for the past few weeks and he finally got the exact why when he actually did it and what benefits you experience from it, I likened the experience to a drug user explaining to a non-drug user why they perceive rave music to be the most enthralling thing they’ve ever experienced, the non-user will never get it till they’ve tried it.