Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan Now×
Skip to content
World desk4 min

Every Software Project Runs on Two Models: The System and the One in People’s Heads

Every software project has an implemented system and the mental models people form about it. Understanding where they diverge helps teams clarify requirements and test behavior.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A software project has an implemented system—its code, data, rules, and interfaces—and the mental models people use to understand what that system does. The two are connected, but they are not automatically the same. If a user expects one outcome while the software or its developers assume another, the gap can surface as unmet needs, ambiguous requirements, or defects.

What are the two models?

The model in the software

The implemented model is the system as it actually behaves: what inputs it accepts, what rules it applies, what information it stores or changes, and what results it produces. It is embodied in code and other technical artifacts, even if no single diagram or document captures it completely.

As an Amazon Associate I earn from qualifying purchases.

The model in someone’s head

A mental model is a person’s understanding of a program, its concepts, and how it works. A user may believe a button saves a draft; a developer may understand it as submitting a record for review. Both people are acting on a model, but only the system’s actual behavior determines what happens when the button is clicked.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

There is often a third model to consider: the model the project intends to express. Requirements, designs, and conversations describe what the team believes the system should do. That intended model can differ from both the implementation and the understanding users or developers have formed.

Why the models drift apart

Software is intangible, and knowledge about a system is often tacit: people learn its behavior through experience, assumptions, and conversations rather than through a complete, shared description. A 2010 paper by Adrian Kuhn, David Erni, and Oscar Nierstrasz frames this as a challenge to maintaining a shared understanding of a project. Their paper proposes an IDE visualization called CODEMAP to give development participants a stable, spatial way to refer to a project. It describes preliminary results from an ongoing user study, not proof that the approach improves outcomes.

Different roles also encounter different parts of a system. Users know their goals and workarounds; developers may know the architecture and implementation constraints. Requirements language can leave room for multiple interpretations, and informal knowledge may not travel with a project as people change roles or teams.

A 2005 paper on requirements understanding describes mismatches between user and developer mental models as a concern in meeting user needs, and connects misunderstandings with defects, cost, and schedule problems. It presents Pathfinder networks as a way to represent and compare those models and identify potentially ambiguous or duplicate requirements. This is a proposed analytical approach, not evidence that every project mismatch causes a particular outcome. Read the article abstract.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How to make the gap visible

Alignment is not a one-time exercise in writing requirements. It means making assumptions inspectable and checking them against what people need and what the working system does.

Ask people to describe expected behavior

For important workflows, ask users and developers separately what they think happens before, during, and after an action. Specific prompts help: What can the user enter? What changes? What happens if the information is incomplete? What should the user see next? Differences in answers are useful evidence of assumptions that need clarification.

Use examples and working software

Concrete scenarios expose ambiguity more readily than abstract phrases such as “manage an account.” Walk through normal cases, exceptions, and boundary conditions. When possible, compare those expectations with a prototype or functioning feature; observed behavior can reveal a gap that a shared vocabulary alone did not uncover.

Keep a shared reference point

Diagrams, examples, agreed terminology, and concise records of decisions can make a project’s intended behavior easier to discuss. These artifacts do not replace conversation, and they become unreliable if nobody maintains them. The useful test is whether the people who need them can use them to explain the same behavior.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Build alignment into team routines

A 2014 conceptual analysis considers system metaphors, stand-up meetings, and on-site customer practices in agile development through the lens of shared mental models. These practices can create opportunities to develop shared understanding, but the paper does not establish that one is universally most effective or that any practice guarantees agreement. See the analysis.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What to check when people disagree

  • Whose understanding differs? Compare users’ expectations with developers’ understanding, and distinguish both from the intended requirements.
  • What is being compared? Look at stated expectations, observed system behavior, and beliefs about how the system is structured; they reveal different kinds of gap.
  • When does the mismatch appear? Check during requirements work, recurring team coordination, and interaction with working software rather than relying on one review point.
  • What evidence would settle the question? A user scenario, a reproduced behavior, a clarified rule, or a revised example may resolve a disagreement more directly than another round of abstract discussion.

These are complementary checks, not a ranking of techniques. The relevant sources describe ways to think about shared understanding and particular practices; they do not establish that one representation or routine is best for every team.

What the research does—and does not—show

A 2023 systematic literature review describes programmers’ mental models as knowledge and understanding of programs, programming concepts, and programming in general. Its search found 3,678 articles, selected 84 for closer analysis, and reached a final set of 187 articles after snowballing. Those numbers describe the review’s search and selection process; they are not counts of projects with mismatched models or proof that a particular technique improves project outcomes. Read the systematic review.

The evidence supports treating mental models as a real software-engineering concern and shared understanding as something teams may deliberately support. It does not show that every project has exactly two models, that they can be made identical, or that one coordination practice reliably prevents defects. A practical aim is narrower: make important expectations explicit, find consequential disagreements early, and check the implementation against the behavior people need.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.