DEV Community

Cover image for The Singleton Reality: Why “It Works” Is Not Evidence of Good Engineering
Leon Pennings
Leon Pennings

Posted on • Originally published at blog.leonpennings.com

The Singleton Reality: Why “It Works” Is Not Evidence of Good Engineering

If you plow a field with a Ferrari F40, the field will be plowed.

The outcome is correct.

The task is completed.

Yet the Ferrari is:

  • Excessively expensive for the job

  • Fragile under the wrong conditions

  • Costly to maintain

  • Poorly suited for rain, mud, or sustained use

In the real world, everyone knows a Ferrari is not the right tool for plowing. We have tractors. We have benchmarks. We understand what works and why.

Now imagine the only field in the world. There are no other machines to compare it to. No tractors, no benchmarks, no historical experience — just the Ferrari. It works. The field is plowed. But we have no way to judge its suitability, efficiency, or long-term cost.

This is the world of software engineering. Every company building custom applications faces this reality: there is no reference frame, no control group, no benchmark beyond whether the system “works.” Success becomes the only visible measure, and quality in any deeper sense is unknowable.

What does this mean for how we design, implement, and maintain software? That’s what the singleton reality is all about.


The Singleton Reality

There is no true A/B testing in software architecture.

You cannot take the same system and implement it twice — once with Framework X, once with Framework Y.

You cannot run the same organization through CQRS and a layered monolith under identical conditions.

You cannot replay the same business evolution using synchronous calls instead of event-driven architecture.

Once a system is built, it proceeds along a single, irreversible path.

Architecture, framework, and tooling collapse into one history.

And like the Ferrari plowing a field, the system produces results.

Features ship.

Users are served.

The business functions.

But without knowledge of the tractor — without a grounded understanding of what a fit-for-purpose architecture looks like for this kind of problem — there is no way to judge:

  • Whether the design is economically rational

  • How much accidental complexity was introduced

  • What long-term maintenance will cost

  • Or whether a simpler, more robust approach would have been better

The system works — and that success silences the question of suitability.


Success Silences Better Questions

In singleton systems, success suppresses counterfactuals.

If the system works:

  • The tools get credit

  • The architecture is justified retroactively

  • The design choices are treated as “proven”

Inefficiencies are explained away as:

  • “The domain was hard”

  • “The requirements were unclear”

  • “The team didn’t execute well enough”

Rarely do we ask whether the approach itself was ill-suited.

This creates a dangerous asymmetry:

If the system doesn’t work, it invites analysis.

If the system works, analysis is unnecessary.

So the system is never evaluated for appropriateness, economy, or durability.


Working Software Is Not the Same as Good Engineering

In software, we conflate correct output with engineering quality.

But “it works” tells us nothing about:

  • How difficult the system is to change

  • How much knowledge it takes to maintain

  • Whether complexity reflects the domain or the tooling

  • Whether the system can survive years of learning and correction

A Ferrari plowing a field will:

  • Break more often

  • Cost more to maintain

  • Fail catastrophically under the wrong conditions

None of this is visible if the only metric is “the field got plowed.”

This is the core problem of singleton systems:

They hide misfit behind functionality.


The Drift From Engineering to Assembly

Because systems are singletons, pressure accumulates in one direction:

  • Deliver features

  • Meet deadlines

  • Make it work

The dominant question becomes:

“Does this solve today’s problem?”

Not:

“Is this the right kind of solution for the kind of problem this is?”

This is where engineering quietly gives way to assembly.

As long as behavior is correct, no one examines:

  • Whether internal structure is legible

  • Whether essential complexity is visible

  • Whether tomorrow’s changes have somewhere to go

The Ferrari plows the field.

The conversation ends.


When “It Works” Becomes the Only Optimization Target

Once success is defined purely by outcome, optimization silently shifts.

If the only question is:

“Does it work?”

Then the system is no longer optimized to be understood or changed.

It is optimized for least resistance to implementation.

This shift is not incompetence.

It is a rational response to pressure in a system where correctness is the only visible metric.


Implementation Is the Easy Part

Writing code that produces the correct result is rarely the hard problem.

Modern languages, frameworks, and tooling are extremely good at helping us implement behavior.

The difficult work is something else entirely:

  • Understanding the domain

  • Discovering which rules actually matter

  • Learning which constraints are essential and which are incidental

  • Knowing where behavior truly belongs

That understanding emerges slowly — through use, failure, and correction.

But when optimization is focused solely on “making it work,” that understanding is treated as overhead.


Optimizing for Least Resistance

When resistance to implementation becomes the primary concern, certain patterns appear everywhere:

  • Behavior collapses into declarative annotations

  • Constructors are reduced to wiring points

  • Objects lose responsibility and become data carriers

  • Framework conventions replace explicit structure

Each of these choices reduces friction today.

They allow engineers to focus almost exclusively on tooling — the mechanically easy part of software construction.

And each of them quietly removes something far more valuable.

They erase information about why the system behaves the way it does.


What Gets Lost Is Not Functionality — It Is Meaning

The system continues to function.

Features ship.

Tests pass.

Users are served.

But the code stops explaining itself.

It no longer communicates:

  • Why a rule exists

  • Why a boundary matters

  • Why a concept deserves to be modeled explicitly

That knowledge migrates into:

  • The heads of a few people

  • Tribal conventions

  • Framework internals

  • Historical accidents

The Ferrari still plows the field.


Why This Undermines Endurance

Software endures not because it was easy to write, but because it remains possible to re-understand.

Long-lived systems must absorb new knowledge:

  • New edge cases

  • New constraints

  • New interpretations of old rules

If the code was optimized only for minimal resistance during implementation, it offers no structure to integrate that learning.

Change becomes additive instead of corrective.

Patches accumulate.

Workarounds replace design.

The system still works — but it can no longer evolve cleanly.


Essential vs. Accidental Complexity

Every system contains essential complexity — the irreducible complexity of the domain itself.

Good engineering keeps that complexity:

  • Explicit

  • Legible

  • Close to the code

Bad engineering replaces it with accidental complexity:

  • Framework indirection

  • Implicit behavior

  • Generated wiring

  • Convention-heavy design

In a singleton system, accidental complexity is especially dangerous.

Because there is no steering mechanism.

If essential complexity is no longer legible, the system can evolve only by:

  • Upgrading dependencies

  • Adding patches

  • Introducing workarounds

When essential complexity is no longer visible, corrections are no longer possible — only compensations.
Workarounds emerge in place of design.


Code Changes Because Understanding Changes

Software does not change primarily because developers make mistakes.

It changes because understanding grows.

Teams learn:

  • Which rules actually matter

  • Which edge cases are fundamental

  • Where earlier assumptions were wrong

If the system was written only for today’s understanding, that new knowledge has nowhere to live.

It gets bolted on.

Hidden behind flags.

Embedded in conditionals.

The system still works — but its internal coherence degrades.

Expressive systems behave differently.

They give new understanding a place to land.


Expressiveness as a Survival Strategy

Expressive code does not exist to be verbose.

It exists to:

  • Name concepts explicitly

  • Encode invariants visibly

  • Make responsibility undeniable

  • Preserve the shape of the domain over time

In a world of repeatable systems, this might be optional.

In a world of unique singleton applications, it is essential.

Because expressiveness preserves engineering intent when outcomes alone cannot tell us whether we chose the right machine.


Tooling Is Not Architecture

One of the clearest signs of singleton failure is when:

  • Removing a framework collapses the system

  • Upgrading a dependency requires redesign

  • Behavior lives in annotations instead of code

  • The runtime behaves in ways the source does not explain

This is not leverage.

It is hidden coupling.

The system works — until it doesn’t.

And when it breaks, understanding is nowhere to be found.


Conclusion: Engineering Without Second Chances

The singleton reality does not make quality impossible.

It means quality is never proven by success alone.

A working system may still be:

  • Overengineered

  • Underfit

  • Fragile

  • Economically irrational

Just like a Ferrari plowing a field.

Good software engineering, under singleton conditions, is not about modernity or brevity.

It is about preserving:

  • Legible essential complexity

  • Explicit assumptions

  • Structural honesty

Because in a world where every system is built once,

the only thing that survives is what continues to explain itself.

And if we never ask whether we’re building tractors —

we will keep celebrating Ferraris that merely happen to work.

Top comments (0)