The Thing That Proves Your System Exists Is Not Its Code, But Its Use

Thomas Hirschmann

Hatched by Thomas Hirschmann

Jun 14, 2026

10 min read

87%

0

The oldest test in philosophy and the most neglected test in product design

What if the most important question about a system is not whether it works, but whether it can be experienced as working by the thing it is meant to serve?

That sounds simple until you notice how often we confuse three different realities: the system as designed, the system as implemented, and the system as lived. A product can satisfy every requirement on paper, pass every checklist in the lab, and still fail in the only place that matters: the hands of real users trying to get something done. This is not just a software problem. It is a problem of existence itself.

Descartes gave us a famous starting point: if I can doubt everything, I cannot doubt that there is thinking happening. Doubt becomes proof of the mind. In product terms, there is a parallel insight hiding in plain sight: if a user can appropriate your system into their life, then the system has become real in the only sense that matters. Not real as code. Real as a tool, a habit, a support, a solution.

The deepest tension, then, is this: verification tells you that the thing is internally coherent, while validation tells you whether it has become externally meaningful. One is about existence in engineering terms. The other is about existence in human terms.


Built right is not the same as built into life

Verification is comforting. It gives structure, traceability, and the satisfying feeling that every requirement has been checked off. A verification cross reference matrix can make a team feel rigorous, disciplined, and safe. Did the feature compile? Yes. Did it meet the specification? Yes. Did it pass the prescribed tests? Yes.

And yet entire products have died in full compliance.

A navigation app that is technically accurate but too slow to load in the moment of need. A medical device that meets all formal requirements but is too confusing for a stressed nurse to use under pressure. An enterprise dashboard that reports everything it promised, but in a language no manager can interpret quickly enough to make a decision. These systems may be beautifully verified and still fundamentally invalid.

This is because requirements are not reality. They are a model of reality, and models are always incomplete. They describe what a system should do under imagined conditions, but human life is messy, adaptive, improvisational, and social. People do not merely use systems. They bend them, repurpose them, work around them, and sometimes rescue them from their creators.

That last point matters. A system is not truly finished when the last line of code ships or the last requirement is met. It is finished, if it ever is, when people can incorporate it into their own goals. In practice, this means the real test is not whether the product can survive scrutiny in a controlled environment. The real test is whether it can survive contact with human intention.

A system does not become real when it is completed. It becomes real when someone can think with it, through it, or against it.

That is why verification and validation must not be treated as two similar stages in a pipeline. They are different philosophies of truth. Verification asks: did we satisfy the design? Validation asks: did we satisfy the situation?


The Cartesian lesson for builders: existence is relational

Descartes used doubt to find something indubitable. Strip away the world, the senses, even the body, and one thing remains: the fact of thinking. The insight is often taught as a proof of the self, but it can also be read as a lesson about what cannot be reduced away. The self is not proven by a document. It is proven by an activity.

That is a powerful analogy for systems design. A product is not proven by its specification, its architecture diagram, or its test suite. It is proven by the activity it enables. The moment a person uses it to achieve a goal, adapt a workflow, or make a decision, the system crosses from being an artifact into being part of lived reality.

This shifts the center of gravity from internal correctness to external participation. A calendar app is not successful because every reminder fires on time in isolated tests. It is successful because a busy parent trusts it enough to coordinate school pickups, meetings, and a doctor appointment. A collaboration tool is not successful because every button works. It is successful because a team develops a shared rhythm around it, including the imperfect, creative ways they stretch it beyond its original intent.

This is where appropriation enters the story. In actual deployment, users do not simply comply with a design. They appropriate it. They turn it into something that fits their context. They create shortcuts, conventions, hacks, and habits. In other words, they supply the missing link between manufactured possibility and human reality.

Many teams fear appropriation because it looks like deviation. But appropriation is often the clearest evidence of value. If people are modifying the system to match their needs, they are revealing the shape of those needs. The system may not have been built for that use, but it has entered the domain of meaningful action.

This leads to a counterintuitive conclusion: the more a product depends on perfect user obedience, the less mature it often is. Durable systems tolerate adaptation because they are designed around the variability of life, not the fantasy of compliance.


Why so many good systems fail: the invisible gap between proof and purpose

The most dangerous failures are not the ones that break loudly. They are the ones that succeed in one frame and fail in another. A team proudly announces that all requirements have been met, but the product still stalls in the market. A lab test shows impressive results, but the deployment never gains trust. The issue is rarely that the team was careless. More often, they optimized for the wrong kind of certainty.

Verification rewards closed worlds. Validation must survive open worlds.

That is why successful products often require more than technical quality. They need a theory of use. They need to anticipate not just what the system should do, but how people will interpret, misinterpret, adopt, resist, and repurpose it. The same interface can be elegant for one group and opaque for another because users bring different goals, vocabularies, pressures, and habits.

Think of an emergency room charting tool. Verified internally, it may meet every data entry requirement. Validated in practice, it may fail if it forces clinicians to click through fields while a patient deteriorates. Now compare that to a sticky note on a monitor with a single critical detail scribbled in shorthand. The sticky note may be “noncompliant” from a formal perspective, yet more valid in that moment because it serves the actual goal: saving time and attention.

This is not an argument against rigor. It is an argument against mistaking rigor for truth.

The deeper problem is that many requirements are framed as if the world were static. They assume users know in advance what they need, that contexts are stable, and that adoption is a purely rational transaction. But real use is dynamic. A system enters a social ecosystem, and that ecosystem changes it. The product becomes part of a negotiation among intent, friction, trust, and improvisation.

Verification can tell you whether a bridge is built according to plan. Validation tells you whether people will actually cross it.


A practical mental model: three layers of reality

To design better, it helps to think in three layers.

1. Artifact reality

This is the system as built: code, hardware, interfaces, documentation, specs. Here, verification rules. The question is whether the artifact matches its intended form.

2. Task reality

This is the system as it functions in a workflow: speed, clarity, reliability, error recovery, fit with adjacent tools. Here, validation rules. The question is whether the system helps accomplish the task.

3. Lived reality

This is the system as appropriated by real people in real conditions: workarounds, norms, trust, emotional load, organizational politics, time pressure. Here, neither verification nor validation alone is enough. The question is whether the system can be woven into life without tearing it.

Most failures happen because teams stop at layer one. Good teams reach layer two. Great teams design for layer three.

This framework also explains why user research can feel so frustrating. In the lab, users may act one way. In the field, they act another. Not because one setting is false and the other true, but because the meaning of the system changes with context. A feature that looks unnecessary during a demo may become indispensable in a real workflow. A streamlined interface may become dangerous if it hides the cues users need under pressure.

The real question is not, “Does the system function?” but, “Under what forms of life does this system become true?”

That is a profound shift. It asks designers to move from abstract success criteria to situated success criteria. It also asks product teams to stop treating edge cases as nuisances and start treating them as evidence about the world their product actually enters.


Designing for appropriation, not just compliance

If users will inevitably appropriate systems, the smart move is not to prevent it entirely. The smart move is to design for it.

That means building in room for variation. It means making important functions legible, resilient, and recombinable. It means anticipating that people will create their own micro practices around your system, and deciding whether those practices are healthy, dangerous, or simply inevitable.

Consider a spreadsheet used as a project tracker. No product manager would call that the ideal use case. But the spreadsheeet wins because it is adaptable, familiar, and easy to bend toward a team’s actual needs. That is appropriation in action. The system survives because it leaves enough structure for coordination and enough flexibility for local reality.

Designing for appropriation does not mean endorsing chaos. It means recognizing that users are not passive recipients of finished meaning. They are co authors of function. If your system cannot survive reinterpretation, it is brittle. If it can be reinterpreted without losing its core value, it is robust.

This is especially important in AI systems, where outputs are probabilistic and user expectations are easily overinflated. A model can be verified against benchmarks and still fail validation if people do not trust it, cannot understand it, or cannot fit it into existing decisions. In such cases, the question is not only whether the system is accurate, but whether its uncertainty is usable.

A good rule is this: design for the cheapest correct human intervention. If the system is wrong sometimes, make it easy to notice, easy to override, and easy to recover from. If the system is right only in special conditions, make those conditions explicit. If the system will be appropriated, make the appropriation safe and productive.


Key Takeaways

  1. Stop treating verification as success. It only proves that you built what you specified, not that anyone can use it effectively.
  2. Treat validation as the real finish line. A system matters when it helps people accomplish goals in the messy conditions of actual life.
  3. Expect appropriation. Users will adapt your system to their context, and that adaptation is often a sign of value, not failure.
  4. Design for three realities. Build for the artifact, the task, and the lived environment, not just for the spec sheet.
  5. Ask a better final question. Instead of “Did we build it right?” ask, “Did it become real for the people who needed it?”

The final test is whether it can think with someone

The most striking connection between self and system is this: existence is not merely a property, it is a relation. A thought proves a thinker because thought is an event of activity. In the same way, a product proves itself not by sitting complete on a server or in a warehouse, but by entering the active life of a user.

That reframes what it means to build well. The goal is not to create an object that passes every internal inspection. The goal is to create something that can be inhabited by intention. When a person uses your system to solve a problem, make a decision, or reshape a workflow, the system stops being just a design and becomes part of reality.

So the deepest question is not whether your system was built right. It is whether it can survive the moment when a human being tries to think, act, and live through it. That is the point at which verification ends, validation begins, and meaning starts.

Sources

← Back to Library

Hatch New Ideas with Glasp AI 🐣

Glasp AI allows you to hatch new ideas based on your curated content. Let's curate and create with Glasp AI :)

Start Hatching 🐣