Skip to content
Principle: Flip Thinking

Principle: Flip Thinking

Flip thinking (Dutch: omdenken) is the principle that a problem which feels unsolvable usually isn’t a sign that reality itself is unworkable. The problem is usually in the model: it’s too simple for the complexity you’ve run into. Adjust the model. Don’t ignore reality.

Worldview and context

Reality is inherently complex. As soon as we reason about it or build a model of it, we necessarily simplify that complexity. A model is never reality itself, but a workable simplification of it. The statistician George Box summed this up in a phrase that has since earned a permanent place in how we think about models: “All models are wrong, but some are useful” (Wikipedia – George E. P. Box). A model is wrong by definition, because it simplifies. That doesn’t make it worthless, as long as you stay aware of what it leaves out.

This is a concrete application of Openness to models and reasoning about reality. Openness holds that all knowledge is provisional, with Popper’s fallibilism as one of its sources. And that another person’s perspective may contain something I don’t yet see. A model carries exactly the same limitation. It is a simplification, hence incomplete by definition. The complexity it leaves out is no less real, just because it falls outside the model.

A problem that feels unsolvable is usually not a sign that reality itself is unworkable. Usually, the model we’re reasoning with is too simple for the part of reality we’ve run into. Recognising that changes the question. Not “how do we get rid of this difficult reality”, but “which part of my model fails to account for how complex reality actually is”.

This connects to Berthold Gunster’s concept of omdenken, internationally known as flip thinking. He distinguishes between “yes, but” and “yes, and” (Omdenken – The Dutch Art of Flip Thinking). With “yes, but” you hold on to the model, and reason away the reality that doesn’t fit it. With “yes, and” you accept reality first as it is, and let the model (or the approach) catch up afterwards. With “yes, but” you fit reality to your model. With “yes, and” you fit your model to reality.

The principle

Every model or line of reasoning about reality is a simplification. Reality itself is more complex. If part of that complexity doesn’t fit your model, and it feels unsolvable as a result, don’t adjust reality to make it fit the model. Flip your thinking: accept that complexity, unconditionally, as fact. Then the question isn’t “how do we get rid of this”, but “given this fact, what can we actually do with it?”

Consequences

The principle itself is universal. What it means differs per domain.

General / life – facing a difficult problem: first investigate whether it’s genuinely unsolvable, or whether your model of the situation is simply too simple for the complexity you’ve run into. Distrust any solution that silently ignores or defines away a difficult part of reality. That’s often the signal that there’s something worth applying flip thinking to. A tree standing “in the way” somewhere is not automatically an obstacle to be removed. Investigate first whether it can actually be used, as shade, a landmark, or support for something else. Only cut it down afterwards.

Architecture / information models – information models are, by definition, a simplification of reality. If that reality turns out to be asynchronous, a model that assumes a single consistent state at every point in time is never true. The asynchrony is then the part of the complexity the model didn’t account for. Flipped: don’t base the model on time-consistency as the norm, with deviations as errors. Base it on asynchrony and deviation as the norm itself. That’s exactly the thinking behind event-driven architecture, event sourcing and eventual consistency. Not one truth at every moment, but a sequence of events over time. Temporary inconsistency is then not a bug, but an expected characteristic of the system. Even conflicts don’t need to be prevented. They can be resolved by design, as with CRDTs (Conflict-free Replicated Data Types).

References

Published on  · Last updated on