Boo on TDD. What’S important is that your work is tested; whether tests are manual or unit, are written before or after code, doesn’t matter. And when people say that no code should be written except to pass a test, I hear cultism. Sorry, that’s just silly.
Further, to test one’s own code is only a start. It absolutely needs to be blackbox tested against a functional spec, a document, by someone else. Because every developer has blind spots and he will exhibit the same blind spots in testing as he dud in development.
And except for one guy @antony on Twitter, every TDD advocate I’v ever talked to has said to write ALL tests prior to coding, which is just nuts.
My manager at Microsoft, thankfully now in an urn, told me to write separate code entirely outside my completed and release-read tiny application just so his group could check a box that the project had unit tests.
There is way too much fanaticism around TDD, and the worst is that it’s OK to do sloppy work (“technical debt”) on the deliverable because the unit tests have taken too much time.
This is nuts.