Bucky, who seems to write a bile-ish blog, thinks that test driven development is bad because he doesn’t like compile errors in his code. Because of that, he suggests writing the interface first.
I would suggest that the modern IDE’s make the “write a test that doesn’t compile” stage easier. Looking at a tool like Eclipse: I can write a call to a method that doesn’t exist, then click on the call and create the method from it.
Also, a large part of what TDD is about is evolving the interface as part of the process of writing the tests. That’s why it’s test-driven development; writing the tests drives the detail focus of your design. Writing the interface first breaks this paradigm; you may well still be working in a thorough and professional way, but it’s not TDD (not that there’s anything wrong with that)
PS: Before any of the Thoughtworkers (hi guys 😉 makes this comment, I’ll do it: Test-Driven Development Is Not About Testing