Top Ten Reasons That TDD Sucks

With all of that talk about test driven development, I thought I would enumerate why TDD is completely misguided.

  1. I never have enough time to write the tests, once I’ve finished the main functionality.
  2. Testing isn’t my job, because it’s QA’s job to make sure I do quality work.
  3. Unit tests don’t help me, because my code works perfectly the first time.
  4. Unit tests don’t help me, because my code always works perfectly when I add new features.
  5. There’s no need to test drive my code, because the design handed to me by the architect covers every possibility
  6. Running the tests is a pain, because it takes too long to scan through all of the output to see if everything was fine
  7. Running the tests takes too long, because reloading the database and restarting the app server between tests takes forever
  8. I can’t do TDD, because they don’t make JUnit for Z80 assembly language
  9. I don’t like TDD, because I enjoy the hours I spend in my debugger
  10. TDD is just a fad, and it’s completely unnecessary anyhow since projects always succeeded before
  11. (BONUS) TDD sucks because I agree with all of the points here, and I don’t understand sarcasm.