A program is not its source code — it is a theory in the minds of its developers. — Peter Naur, 1985
Definition
The mental model of a software product is the shared understanding that a development team holds about:
- What the system does — its purpose, behavior, and boundaries
- Why it is structured the way it is — the reasoning behind design decisions
- How its parts interact — data flows, dependencies, failure modes
- How to change it safely — where changes are safe, where they are dangerous, what breaks
This understanding is practical knowledge — not documentation, not source code, not architecture diagrams. Those artifacts help transmit the mental model, but they are not the model itself. The model lives in the heads of the people who build and maintain the system.

Comments
Nothing yet. Say the first thing.
Sign in to join the conversation.