Make Reality Your Spec: Tests Before Opinion
Part of a "Software Engineering Enchiridion"
(Image: I super-charge my ability to work with reality through tests after a large Italian lunch with the best coffee money could buy (in Milan, at that exact moment - better coffees may exist)
“If you want to improve, be content to be thought foolish and stupid with regard to external things. Do not wish to seem to know; if you would know, throw away opinion.” — Epictetus
Measure your system before you debate it, because only real-world evidence tells you what’s happening.
You think you know what your system does. You don’t.
You think you can argue it into truth. You can’t.
Argument by assumption doesn't cut it. It makes the proverbial "ass" out of "u" and "me".
Software doesn’t care about your hunches. It doesn’t care about your swagger in a meeting, or the endless back-and-forth about “what should be happening.” It runs. It does. It fails. And it leaves traces—logs, metrics, events, signals. That’s the truth. That’s the spec.
The rest? Hot air. Noise. Ego.
Every team has the same disease: the belief that talking is the same as knowing. A bug appears. Someone says, “It must be the database.” Someone else swears it’s the cache. Another blames the network. Opinions fly, noise descends.
Here’s the cure: don’t trust a damn word of it.
Test. Instrument. Measure. Look at what the system is actually doing.
Reality is the only authority worth bowing to in software. Not your opinion. Not mine. Not the “architect” or "principal" who hasn’t touched code in five years. Reality. The numbers in production are your only scripture.
When you test, you explore. When you measure, you see. When you see, you learn. And when you learn, you can act. Without measurement, you’re just another drunk shouting theories at the night sky.
So make reality your spec. Test to explore your hypotheses. Wire in telemetry before you wire in arguments. Build dashboards before you build castles in the air. Treat every system as guilty until proven innocent by its own metrics.
And remember: the humbling part is this—it will make you look stupid. You’ll find out the thing you swore couldn’t possibly be the problem is the problem. You’ll find out that your cherished design isn’t behaving like you claimed. Good. Swallow it. Epictetus would smile.
Because ignorance dressed up as confidence is the real foolishness. Data that proves you wrong? That’s progress.
Focus on tests, instrumentation, monitoring, and observability—let facts guide decisions, and leave opinion as a last resort.
If you enjoyed this article in the Software Engineering Enchiridion series you might also enjoy:



