Narrative as User Experience Design

August 5, 2025 7 min read

Listen to the audio version of "Narrative as User Experience Design"
0:000:00

Have you ever read a book that was both effortless and incredibly dense? A book that introduced you to a world of staggering complexity, yet never felt overwhelming? You finish a chapter and realize you've just absorbed a thousand years of fictional history or the core tenets of a difficult scientific theory without breaking a sweat. And then you've read other books on seemingly simple topics that felt like wading through mud, forcing you to constantly backtrack, rereading sentences to remember who's who or what's going on.

The difference between these two experiences is rarely the quality of the ideas. It's the quality of the delivery mechanism. The first author understood something intuitively that the second didn't: writing isn't just a literary art; it's an engineering problem. The most effective writing is a form of user experience design for the mind.

The core of this problem is managing the reader's cognitive load. I've started to think of it as narrative as user experience design.

The Mind as a Cache

In computing, a cache is a small, high-speed layer of memory that stores the data the processor is most likely to need next. It's faster to pull from the cache (L1, L2) than from main memory (RAM), and vastly faster than pulling from disk. A well-designed program anticipates which data will be needed and pre-loads it into the cache, leading to huge performance gains. A poorly designed one results in constant "cache misses," forcing the processor to undertake the slow, expensive journey to main memory, causing the whole system to grind to a halt.

The human brain works in a similar way. Our active, working memory is a very small, very fast cache. It can hold a few characters, a couple of active plot threads, and a handful of new concepts at once. Everything else, the broader plot, the backstory, the things that happened five chapters ago, is stored in the slower, long-term memory. The job of the writer, then, is to function as a memory management unit, skillfully loading information into the reader's cache just before it's needed, and gracefully evicting it when it's not.

The Syntax of Thought

Consider how J.R.R. Tolkien solves this problem in The Lord of the Rings. He had to introduce his readers to Middle-earth, a world with a history more complex than that of most real countries. A lesser author, and you've probably read their books, would have started with a massive info-dump, a multi-page prologue detailing the creation of the world, the lineage of the Númenórean kings, and the ancient wars. This is the equivalent of trying to load the entire hard drive into L1 cache at once. The result is a system crash. The reader gives up by page three.

Tolkien doesn't do that. He employs a technique you could call "lazy loading". We don't start with the cosmology of Eä; we start with hobbits in the Shire. We spend chapters learning about their small, self-contained world. The cache is loaded with simple things: Bilbo, Frodo, Sam, a birthday party. Only when we are comfortable with these variables does he introduce a new one, Gandalf, who acts as a pointer to a wider world. Then Strider is loaded into the cache. Then Rivendell. Each new, complex concept is loaded only when the previous ones have been firmly established.

When a massive amount of context is required, Tolkien stages a deliberate, system-wide update: The Council of Elrond. This chapter is, functionally, a cache flush. The action stops, and all the key players gather to explicitly load the reader's working memory with the entire backstory of the Ring, the history of Isildur, and the plan for the journey ahead. It's an intentional, expensive operation, but it's necessary to ensure the reader has everything they need cached for the fast-paced execution of the rest of the book.

This same principle applies to technical writing. A book like Nick Bostrom's Superintelligence or other explorations of the simulation hypothesis must build an argument of staggering abstraction. The author can't just state the conclusion. They have to construct the argument from the ground up, ensuring each dependency is resolved before the next one is introduced.

A good technical author begins by defining their terms. When they introduce a concept like "substrate independence," they are effectively declaring a variable. They are loading a specific, defined piece of information into the reader's cache and giving it a name. For the rest of the chapter, they can simply use the pointer, "substrate independence," and the reader can retrieve its value from cache instantly, without the expensive lookup of having to remember what it meant. A bad technical writer uses terms without defining them, or defines them poorly, leaving the reader with a chain of null pointers and a program that fails to compile.

Three Rules for Cache Management

Thinking in these terms gives us a set of practical rules for writing anything, be it a novel or a product memo.

First, load lazily. Don't introduce a new person, metric, or concept in an email until the moment it's needed. If you're discussing a project, don't list all fifteen people on the team at the beginning. Name the three relevant to the first point, then name the two relevant to the second.

Second, use pointers. Just as Tolkien re-uses "Isildur's bane" to remind us of the Ring's history, you can use recurring phrases or simple labels to help the reader retrieve context. A character can be "the agent with a copper bottle," or a technical problem can be "the database deadlock issue." These pointers are cheap to use and save the reader the work of re-parsing the original context.

Third, control the pace. Some parts of your writing should be slow. These are the moments you are deliberately loading new, complex information into the cache. Other parts should be fast, executing logic that relies entirely on information that is already cached. Alternating between these two modes, between loading and processing, is the key to narrative and explanatory rhythm.

It should be no surprise, then, that these principles of cache management are also the fundamental architecture of a well-told story. This framework reveals why narrative has been humanity's most durable and successful protocol for storing and propagating information, often across centuries. A story is a form of cognitive engineering, a delivery system so perfectly optimized for our mental hardware that even dense technical data, when wrapped in a narrative structure, can be transmitted with vastly greater fidelity and retention.

Structure Enables Art

This might sound like a cold, mechanical way to think about writing. What about beauty, style, and the art of the perfect sentence? But the two are not in conflict. The engineering enables the art. A program with a beautiful UI that constantly stalls and crashes is a failure. Similarly, a writer with beautiful prose who fails to manage the reader's cache will produce a work that is admired but not understood. The structural engineering has to be sound before the interior design can have any effect.

Ultimately, this is about respect for the reader's time and attention. Your ideas are the payload; your words are the delivery protocol. Every cache miss you create, every time you force the reader to stop and ask "wait, who was that again?" or "what does that term mean?", you are introducing latency into the system. Reduce that friction to zero, and you can deliver an idea of enormous complexity directly into their mind.

So the next time you sit down to write, don't just think about what you want to say. Think about the reader's cache. Ask yourself what's in it right now. Ask what your next sentence will load, what it will retrieve, and what it will evict. Great writing isn't just about having a brilliant idea. It's about engineering the experience of understanding it.