Organizations treat documentation as if it were the anchor of truth in their infrastructure.
It promises structure, continuity, onboarding, governance and transparency.

But documentation rarely fulfills that promise.
Not because people are lazy, but because the system it tries to describe — and the organization around it — move faster than any document can keep up with.

This article explores why documentation consistently fails to represent technical truth, why this is not a problem you can fix with discipline, and why the illusion persists nonetheless.


1. Documentation Should Describe What Is True — But Usually Doesn’t Link to heading

Documentation ought to describe the state of the system as it is at the time of writing.

That means writing in a factual, verifiable present tense:

  • “This system behaves like this.”
  • “This component currently works like this.”
  • “This process produces these outcomes.”

But most documentation is written in a hypothetical or future-oriented style:

  • “The system will…”
  • “This component is intended to…”
  • “This process should…”
  • “The architecture ensures that…”

It describes expectations and desired behaviour, not how the system actually behaves.

The moment you recognize this mismatch, the illusion becomes obvious:

Documentation uses the grammar of truth,
but expresses the content of intention.


2. Documentation Reflects Intent, Not Behaviour Link to heading

Documentation usually represents:

  • the design people intended
  • the processes people hope to follow
  • the assumptions teams make
  • the constraints they believe exist
  • the behaviour they expect to see

It almost never represents:

  • effective configuration
  • inherited defaults
  • runtime overrides
  • unplanned workarounds
  • silent changes in dependencies
  • updates in external systems
  • drift caused by human interaction
  • cross-team decisions

This is why you almost never hear:
“Read the documentation first — it explains everything.”

Instead you hear:
“Ask person X. She knows how it actually works.”

That single sentence reveals everything about the illusion.


3. Organizational Drift Outpaces Technical Drift Link to heading

Technical drift is bad enough:

  • hotfixes
  • small config edits
  • new defaults
  • patch-level behaviour changes
  • different machine histories

But organizational drift is often stronger:

  • teams are reorganized
  • responsibilities shift
  • priorities change
  • new management arrives
  • cross-team boundaries move
  • specialists leave
  • ownership becomes unclear

Documentation tries to describe a system with a moving target and a moving observer.

It cannot keep up.


4. The Social Function of Documentation (Mostly Organizational) Link to heading

Documentation is rarely created because engineers need it.
It is mostly created because organizations demand it:

  • auditors require it
  • managers expect it
  • compliance mandates it
  • onboarding frameworks mention it
  • process governance depends on it

Its primary function is not operational clarity, but organizational signalling:

“This system is under control.”
“This environment is structured.”
“This process is documented.”
“This team is compliant.”

But this signalling is fragile.
It maintains an appearance of understanding without guaranteeing actual understanding.

Documentation is enforced, not natural.
And enforced artifacts decay first.


4.1 Documentation Follows the Author’s Mental Model Link to heading

Documentation does not represent the system.
It represents the author’s worldview.

A technically-minded engineer writes:

  • dense
  • precise
  • implementation-focused
  • system-first

A process-oriented person writes documentation very differently:

  • process-focused
  • abstract
  • role-driven
  • using a different vocabulary and mental model

Both produce “documentation”.
Both mean completely different things.

This mismatch alone prevents documentation from forming a coherent truth-layer.


4.2 Documentation Depends on External Teams — and Cannot Detect Their Changes Link to heading

Most systems span multiple teams.
Documentation references:

  • firewall rules
  • identity providers
  • app behaviours
  • network paths
  • platform defaults
  • CI/CD policies
  • shared components
  • external APIs

But documentation cannot detect when those teams change something.

If team A updates a subsystem, team B’s documentation silently becomes wrong.

Cross-team coupling makes documentation decay faster than any single team can compensate for.


4.3 Documentation Can Be Valuable — But Only Locally Link to heading

There is a type of documentation that is genuinely useful:
documentation created by a person or a small team to deeply understand a specific process, to reproduce complex steps, or to ensure that a particular workflow can be repeated reliably.

This kind of documentation is practical, task-oriented and close to the actual work.
It helps individuals regain context, avoid mistakes and stabilize routines.

But this usefulness does not scale to organizational documentation.
Local documentation describes what one team does.
Organizational documentation tries to describe how the entire system behaves — and that is where the illusion reappears.


5. Documentation Is Not the Knowledge Graph We Think It Is Link to heading

Documentation does not contain:

  • effective configuration
  • real dependency graphs
  • inheritance paths
  • runtime defaults
  • drift history
  • correlation patterns
  • operational shortcuts
  • exception cases
  • tribal knowledge

The real knowledge graph lives in:

  • telemetry
  • runtime configuration
  • call traces
  • incident logs
  • senior engineers
  • outdated conventions
  • undocumented standards
  • people’s memory and judgement

Documentation captures the narrative.
Systems capture the truth.


6. Why Documentation Cannot Stay Up to Date Link to heading

Several structural forces make this unavoidable:

6.1 Complexity Outpaces Idea Capture Link to heading

Systems evolve faster than humans can write.

6.2 The Cost of Maintenance Is Invisible Link to heading

Nobody budgets time for documentation upkeep.

6.3 Documentation and Tests Die First Under Pressure Link to heading

When delivery pressure increases:

  • tests degrade
  • documentation decays

Both look “optional” in the moment.
Both are foundational in hindsight.

6.4 No Single Person Understands the Whole System Link to heading

Documentation becomes fragmented across perspectives.

6.5 Documentation Does Not Self-Validate Link to heading

Config APIs error when wrong.
Documentation never does.

6.6 People Trust People More Than Documents Link to heading

If documentation conflicts with an experienced engineer,
everyone trusts the engineer — correctly.

Documentation is optional truth.
Runtime behaviour is mandatory truth.


7. Ways to Address the Problem Link to heading

Documentation cannot become perfect.
But it can become honest, maintainable and useful.

7.1 Document Intent Explicitly — Not Behaviour Link to heading

Write: “Intended behaviour”,
not
“Actual behaviour”.

Be precise about what the document is and what it is not.

7.2 Pair Narrative With Telemetry Link to heading

Documentation should exist next to:

  • effective config
  • runtime state
  • dependency graphs
  • drift snapshots

Narrative + data is stronger than narrative alone.

7.3 Automate All Factual Documentation Link to heading

Humans should explain context.
Tools should capture facts.

Automate:

  • version inventories
  • config extractions
  • dependency maps
  • drift diffs
  • change histories

7.4 Keep Docs High-Level Link to heading

Deep details decay immediately.
High-level docs remain stable and useful.

7.5 Accept Documentation as Guidance, Not Truth Link to heading

Its purpose is orientation, not representation.

The truth must come from the system’s behaviour.


Closing Link to heading

Documentation is valuable — but not in the way organizations expect it to be.

It is not a mirror of technical truth.
It is not a guarantee of understanding.
It does not prevent drift.
It does not replace telemetry.
It cannot keep up with the pace of change.

Documentation tells a story about a system.
Telemetry tells the truth.

The illusion breaks the moment we acknowledge this.
And that is where real understanding begins.


Follow-Up Questions Link to heading

  • Should documentation describe intent, behaviour, or both — and how do we separate them clearly?
  • How can telemetry-based systems provide “living documentation” automatically?
  • What is the minimal useful level of documentation for onboarding?
  • How can we detect when documentation has drifted away from reality?
  • Would documentation become more honest if it stated explicitly what parts are assumptions?

Get in touch

Email me: starttalking@sh-soft.de