← Back to Blog

When Reality Is Forced to Fit the Model

The tools and models we use should serve our effort to understand reality, not dictate what reality is allowed to look like. A useful model may guide our thinking by prompting us to break concepts into parts and put them back together more accurately. But we should not revise our understanding merely because a framework cannot represent an aspect of the system that matters.

Consider a simple example from object-oriented modeling. Suppose we represent people as instances of a Person class. How should we represent a person’s tendency to yell when angry?

A Boolean attribute such as yells = true/false can reduce a complex, context-dependent behavior to a fixed label. Unless carefully defined, it suggests that yelling is an inherent property of the person.

A method such as yell() captures something the person can do. But a method alone represents capability. It does not explain why some people yell more frequently than others or why the same person yells in one situation but not another.

So we reconsider our understanding. Perhaps a particular person yells, on average, once a month, depending on the circumstances. The model might then include both an observed yelling rate and a method representing the behavior. We can refine it further by considering the inputs that influence that behavior: stress, environment, emotional state, and specific triggers.

The observed rate is not necessarily the underlying trait, but it provides a measurable starting point. The important distinction is among capability, disposition, state, and context.

Now imagine that our framework permits only the Boolean attribute. Instead of improving the framework, we begin sorting people into “yellers” and “non-yellers.” Observations that contradict these categories become inconvenient, so we discount them or force them into one of the two labels.

Once assigned, a label may influence how others treat the person, what they expect from them, and what decisions they make about them. Those altered interactions can affect the person’s behavior, producing new observations that appear to confirm the original classification. The model no longer merely describes reality; it begins to shape the reality it was supposed to represent.

This is the danger of a rigid model. Its simplifying assumptions can gradually become expectations, policies, and constraints. Rather than refining the model to fit the system, we reorganize the system to fit the model.

Of course, a flexible framework does not guarantee a good model. Even when the framework supports both attributes and methods, a modeler might still represent yelling with a Boolean attribute.

A careful modeler continually compares the representation with observed reality. Eventually, they might ask: I know people who have yelled only a few times in their entire lives, but do I know anyone who has never yelled? If nearly everyone receives the label yells = true, the attribute fails to distinguish among people in any meaningful way. That is evidence that the model (not our understanding of people) needs to change.

Modeling is necessarily an act of simplification. The goal is not maximum realism, but the level of fidelity required for the question or decision the model is meant to support. When a model fails to capture distinctions that matter, we should refine its assumptions and structure, or find creative ways to better utilize it, not distort reality for the convenience of the tool.

Javad Seif
Originally written in Claremont, California — April 25, 2023
Revised in Pasadena, California — August 17, 2026

Editorial note: OpenAI tools were used to assist with editing and refining the writing in this revision.

Comments

Loading comments…

    Leave a comment

    Choose a name and a passcode. You can edit or delete later with that passcode — it isn’t stored in a way we can look up, so keep it somewhere you will remember.

    Never shown on the site.
    At least 4 characters. Needed to edit or delete this comment.