The Map Is Not the Territory

“The Map Is Not the Territory” is a mental model originating from general semantics. It encapsulates the idea that our perceptions or conceptual models of things are not the things themselves.

In software, we constantly create “maps”: requirements documents map user needs, architecture diagrams map how components should interact, and our mental understanding of a codebase is a personal map of how we think the code works.

These maps are useful and necessary. Without them, we couldn’t plan or reason about complex systems. However, problems arise when we forget the map’s limits.

A typical example is overconfidence in initial design: a team designs a system on paper, but when coding begins, they discover modules cannot communicate due to latency issues not captured in their assumptions.

As statistician George Box said, “All models are wrong, but some are useful.”

  • Design docs, UML diagrams, and architecture schematics are abstractions. Don't confuse the blueprint with the actual running software.
  • When implementing a system, expect that unforeseen factors will emerge that weren't captured in the initial designs. Be prepared to adapt the plan as you discover new 'terrain' during development and testing.
  • Models and designs are valuable for guiding development, but always be willing to question assumptions when evidence from the real system contradicts them.
添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论