Test Driven Development...

Recently during the 'first official meeting of the Managed DirectX fanclub' (as Dave called it), Craig mentioned something he's been doing recently called 'Test Driven Development'

It *sounds* like a lot more upfront work, but the process intrigues me.  Anything that can help eliminate bugs, and regressions has got to be a good thing.  I'm curious what other people's experience in this field is.  Craig even mentioned than he found he was even more productive, which was at least somewhat surprising given the extra work involved.

Of course, it makes me wonder.. If I have to write the test before i implement the method and i'm designing a library, i can't even make the test compile until i've defined the method.  It's like a catch-22! =)