I wish Reddit looked like this. No ranks. No votes. No ads. No bloatware.
I hate TDD, but I do it anyway.
I hate TDD.
- TDD is slow. It takes longer time to ship features. This is obvious as you have to code for the features as well as the tests.
- TDD is wasted effort. During the early turbulant stage of an application development when business requirements change like a 16 year old’s hairstyle, 90% of tests you write will become useless later. They are usually not salvageable either as features change or dropped completely.
- TDD is full of haxx and spaghetti. I try to keep test code to look nice and maintainable. That might work well at the beginning. Sooner or later, you’ll be left with bloated ugly code. Add other collaborators in the mix, test code looks likes shitstorm. You’ll soon have 3 different sign out helper methods and 4 sign in helper methods that do the same thing and 5 different sign up helper methods with only 1 working.
I still do TDD.
- TDD keeps core functionalities to run. When you are about to deploy your code, at least you know that areas you tested works the way it should.
- TDD ensures that you haven’t broken X, Y, Z while you worked A. As your app becomes more complex with many pieces of code working together, your code changes in one area might break some other code. This happens more often as the codebase grows. TDD lessens unexpected breakage from happening from code changes.
- TDD is having todo list without having a todo list. And while writing a todo list, you are actually writing an automated test at the same time. It’s so much win.
Why did Panasonic discontinue Technics SL1200 mk2?
A new way to spell debugger