Tracing through the Code of the World

"Tell us a story.
I know you're not boring."

— The Strokes, Reptilia

I.

We come preloaded with wetware. To do good, we need to be good at using it. Specifically, let us talk about dealing in information. Who can be good at software that is bad at information?

We come upon this world like a legacy code base: not documented so well, nor easy to figure out. We have to do quite a bit of self-teaching. You can spend hours on an aggregator and learn a lot, but also have no idea what is going on. What we need is tech for making information ourselves.

You may have heard the term "narrative". People (sociologists) said: "Look, we humans are natural storytellers. Information about the world is stored in stories, so let us agree that we can legitimately come to know things through them."

Let us take narrative to be "information via stories having meaning". You can see from the examples below, we already use them in the software world.

Example How it works as a narrative What is learned, what meaning
The Little Man Computer The story of a program from the POV of the Little Man, what happens (inputs), and what he does (computation and outputs). How a computer works.
Use case / user story How the user makes use of the product. What they want to happen, what they do, and the results they get. Just what the product is about and why the user cares.
"There was this one bug I had ..." Solving the bug: problems and solutions, making investigations and making trials. Insights into how things work (and do not work). Debugging techniques.
Tech product review The trial of a product. What the narrator did, what they experienced, the good and bad of it, the overall verdict. What the thing is actually like, whether it is good or bad (as opposed to our imagination and expectations of it).
Project report An idea made reality. How it was implemented: challenges that arose and how they were resolved, the finished product. How to make the thing itself. General lessons on how to solve problems.

Now, what if you were to make a conscious effort when you trace through the code of the world to read it as a story? Surely, you would improve your comprehension and put yourself in good position to be a contributor.

II.

How well can you learn if no one is teaching you and you are not thinking things through?

OK, but suppose no one is teaching because no one knows. Still, we can make our own efforts and think things through for ourselves. We are going to need something to direct our efforts instead of just "trying" in the abstract.

Let us imagine that we have a way of learning. What is it like? Somehow it is like going through a codebase, browsing through the files, and figuring out how the program works. Well, suppose that we were to do that and then someone were to ask: "Genius of software, how were you able to figure it out?" What would we say? We might say something like: "Well, this is a program of such-and-such a type. Once I saw that there, I knew to look for this kind of thing." In other words, we have patterns and we match pieces to them. Once we match one piece, the pattern gives us other pieces to look for next. (Sound like parsing?)

OK, so we know what we are looking for. We want something like the above, except we want it to be for the experiences we have and the events we read about. For a narrative, this would be the plot type. Check out the table below for some examples of plot types and see if you do not think that you could match events and experiences to these.

Plot Type Plot Points
The Rise and Fall Of
  1. Humble beginnings.
  2. Expansion through virtues.
  3. Collapse due to vices.
Tech Hype Cycle
  1. Technology Trigger.
  2. Peak of Inflated Expectations.
  3. Trough of Disillusionment.
  4. Slope of Enlightment.
  5. Plateau of Productivity.
Clash of the Titans
  1. Announcing the prize.
  2. Competitors arrive on the scene.
  3. The contest.
  4. A clear winner emerges (or not).
All that Glitters is not Gold
  1. A yearning for something.
  2. Sacrifices made to obtain it.
  3. All seems well at first.
  4. Hints that there is a down side.
  5. Realize it was not worth it, and should not be taken by appearances.
Here Comes a New Challenger!
  1. A static distribution of power.
  2. A new challenger arrives on the scene and does what others are not doing.
  3. Disruption occurs!
  4. The established powers adapt to the new threat (or not).
  5. A new distribution of power is established.

Of course, not everything always perfectly fits pre-existing patterns (certainly not all programs fit into design patterns), but you can take plot types as a starting point. When they do not work, then you will see where and figure out why. From there, you write your own story.


« index »

« subscribe »