I have a bit of a philosophical question for the TDD witches and
wizards out there. I’m working on some code that is really
churning… It’s doing complicated calculations, but the actual
desired results are a moving target. The acceptable values, and even
the structure of the software’s output are changing constantly. The
internal architecture is changing rapidly, and I’m constantly throwing
away methods I no longer need.
This has resulted in me no longer writing specs on this part of my
codebase. They just become obsolete very very fast. Changing the
specs constantly feels like a pointless doubling of my effort. Specs
seem to help with debugging and verification that the software is
performing as expected. But I’m spending most of my time trying to
figure out what I should be expecting. I verify that things are
working quickly and informally, because it’s likely the definition of
“working” will change before the week is up.
Am I being stupid? Is it really a pointless doubling, or am I
creating more debugging time for myself than I’m saving without
writing specs? Should I be more religious about Test First?
Thanks in advance for the insights,