The fanaticism around this stuff is scary. I’ve read garbage like
- we don’t need design documents anymore. The unit tests are the documentation. Huh?
- Unit tests are more important than code. If you have to cut corners, do it in the code, not the tests.
- Software development is now 100% TDD, since any work not using TDD is illegitimate.
This is mental institution stuff. My two objections to TDD (I don’t even want to talk about agile or scrum, there really isn’t anything “there”).
- minor: writing tests before code is stupid, but just wasted time stupid; you’ll be revisiting the tests constantly as you work, or have incomplete tests
- major: developers are responsible for their own testing. Who dreamed this up has no experience in software; I’ve tested my own stuff in what felt like thoroughly only to see a coworker break it in thirty seconds. Blind spots.