So here is the situation-- a quote from my boss: "[...] we need to focus on programming. [...] At the end of the day I want to write good software and not get bogged down with testing." This is said after we have had 3 months of a daunting list of bugs and recently designating a non-programmer to write web tests with Selenium framework.
My boss is very much unit-test shy (he can't see the cost benefit when it slows down developers). What are your opinions out there on web tests and programmatic tests in general? Should they be written by the (or a) programmer or does it matter? My thought was that part of writing good software is writing tests? He's a Microsoft ivory-tower kind of guy, and so any resources out there that have been put out by Microsoft (or good articles in general) in favor of testing by design would be helpful.
Here's what I did.
I wrote the tests anyway.
I wrote the code after writing the tests.
The code was rock-solid and (mostly) bug-free (to the limits of my abilities.)
I never told anyone I was doing TDD. Unless they ask.
It turns out that TDD is actually faster than messing around trying to design something, code it and hope it works.
A few things include an extra step 0: a "technology spike" to see how things work. This is followed by some test development to exercise the as-yet-not-written real software.
I'm a little behind schedule when it comes to starting design. Since my design is "design and write tests for that design" while some other folks design is "scratch around with some clever ideas but no real proof." Some folks can design on paper well. I can't. But I can design tests.
I'm generally pretty far ahead when it comes to finishing code. Since -- when I'm done coding -- all the tests pass.