3 ms·
TDD requires you to manually predict every possible failure mode and edge case before starting work. It is obviously complete nonsense. Pure snake oil designed
by gaius 8y ago
TDD requires you to manually predict every possible failure mode and edge case before starting work. It is obviously complete nonsense. Pure snake oil designed to sell training and consulting, not to produce working software.
- tashoecraft 8y agoWhile I don't do TDD, I know this isn't correct. The idea isn't to prove every single possible way the code can go wrong. It's supposed to be an iterative process, this should do that small thing, write tests to prove it, then refactor updating your tests. Saying it's just designed to sell training and consulting is ridiculous.
- lancerkind 8y agoNicely said @voodootrucker. And I agree with @Tashoecraft. Lots of people get value from TDD. Unfortunately, some don’t and assume it’s the TDD process that’s broke. Its not the tool’s fault. It’s also understandably difficult (though not rational) that groups of people have trouble adopting new practices like TDD. Agile Thoughts podcast exposes some of the social blockages starting with episode 14: https://agilenoir.biz/series/agile-thoughts/ https://agilenoir.biz/series/agile-thoughts/
- voodootrucker 8y agoIt sounds like you have experienced a project where all the tests are defined up front? This generally should not be the case. The process should look more like: 1. write a test 2. make it pass 3. refactor 4. repeat Generally, one would start with "the happy path" tests, not spending too much time testing for all the failure cases until the correct functionality of the overall feature works as intended.