5 ms·
The longer I'm in this industry the more I'm keen on a bit more formalism and upfront design. I think TDD is a really effective tool. But make no mistake - it'
by LAC-Tech 4y ago
The longer I'm in this industry the more I'm keen on a bit more formalism and upfront design. I think TDD is a really effective tool.
But make no mistake - it's, requires discipline, and good software architecture. Which is my hot take on why it has so much blowback.
- devoutsalsa 4y agoIt’s hard to execute on a plan that requires everyone to be exceptional.
- LAC-Tech 4y agoI think the opposite. It's easier to have discipline and adhere to a process than it is to be exceptionally talented. (Assuming that's what you meant by 'exceptional')
- Jensson 4y agoDisciplined people are exceptional. Most people when forced to do TDD will just write a bunch of nonsense tests that adds to your technical debt, it requires discipline to write good tests.
- User23 4y agoThose people will manage to write terrible code regardless of coding technique. TDD at least has the benefit of surfacing it sooner.
- User23 4y agoAlmost always when I see criticism of TDD it quickly becomes apparent that the person doing the criticizing either has no idea how the TDD process is meant to work, has no idea how to separate concerns when writing code, or both. For example the claim that TDD impairs your ability to modify code is completely the opposite of my experience. It’s quite simple, just don’t write overly specific tests, and test your module interfaces (however your language implements them) rather than the internals. One code smell is that if your tests are getting in the way of refactoring you’re certainly doing it wrong, since refactoring is a key and I would say even defining part of the TDD development process.
- roeles 4y agoThere is an exploratory phase before you can make a plan, where you learn by tinkering. Once you have found a solution that works for your context, you can switch to engineering. That's where TDD is used.