From LinkedIn · · 1 min
Later is me
What 'we'll add tests later' actually means once 'later' arrives. Tests are not a code-quality bonus. They are the only honest proof that a system behaves the way the team thinks it behaves.
By Olha Shevchenko. Audits production systems on AWS and Node.js.
"We'll add tests later."
I have seen enough production systems to know what "later" usually means.
Later is me.
It is the day someone brings in a person like me to figure out what their own system actually does.
By then the tests still do not exist. And the engineer who understood the code is already gone.
So now the behavior has to be reconstructed from production.
The system runs. But nobody can explain why it runs, what breaks it, or which assumptions are load-bearing.
It is a rumor.
Untested code that "works" is not a production system. It is a demo that has not failed yet.
Tests are not a code-quality bonus. They are the only honest proof that the system behaves the way the team thinks it behaves.
Without them, every answer is partly a guess. Including the team's own.
"Later" feels cheaper because the team still has context. But the cost does not disappear. It shifts. Eventually someone has to reconstruct the system from behavior, logs, deploy history, and side effects.
A reliable system has known failure modes. Code that nothing exercises does not.
So "we'll test it later" is not really a scheduling decision. It is a decision to stop knowing how the system fails.
The cheapest tests live in the head of the engineer who wrote the code. The most expensive ones get inferred from production, by someone who was not there when it was written.