3 ms·
To put it in math terms, TDD/BDD gives you output = C1*(e^t-1) while non-TDD/BDD gives you output output = C2*log(t+1) That is, you get better speed at
by listrophy 16y ago
To put it in math terms, TDD/BDD gives you
output = C1*(e^t-1)
while non-TDD/BDD gives you output
output = C2*log(t+1)
That is, you get better speed at the beginning without TDD/BDD at the cost of slower output as the codebase grows. With TDD, you generally start slower, but increase output velocity over time. (and let's not point out semantics here... the equations will hold for awhile, then flatten out).
So, where's the intersection? I claim it's usually at about the minimum viable product or before.
And of course, this all exists on a continuum. So don't TDD things you don't understand. Instead, spike on the new technology outside your app, then bring it in with "gentle" TDD/BDD.
If you're sold on TDD/BDD like I am, the key is to work to increase C1. That is, get better at these disciplines. You should be able to write tests quickly and have them run quickly.
And frankly, during a pivot, I'd rather have obsolete tests (pointing me to obsolete code) than obsolete—and hidden—code. Obsolete tests scream "Fail" when they're obsolete. Code does not.