No matter how hard you try to perceive a leaf on a tree, your eyeballs are only sending extremely noisy sensory data to your brain. Your subconscious mind creates a mental model of what is happening, and continuously updates it. It needs to filter, smooth, and distort the new incoming sensory information to fit the model, so that your conscious mind is able to make sense of it. If you see something that violates your mental models too extremely, it literally becomes the case that you can’t believe your eyes, and you are left stumbling around, Velma-like, in search of a new mental model of the situation.
Through a handy invention called “language”, human beings are able to share mental models with each other. These models are on a continuum from “metaphorical” (as in stories, myths) to “literal” (as in folk theories, scientific hypotheses). These shared mental models all come together to form a worldview, which is at the heart of what we call “culture”. This allows the tribe to understand the world and each other.
The shaman's job, then, is to:
Understand the tribe’s existing mental models
Update shared mental models over time to reflect the changing environment and evolving needs of the tribe
When spooky shit starts happening that falls outside of the “shared reality operating system”, it is the shaman’s role to debug.
I used to spend a lot of time thinking about how to split code up into files and directories based on what code “belongs” together. But that’s a completely vague criteria and also doesn’t have any obvious connection to my actual goals. There are also usually multiple different axes along which things could be grouped eg a compiler could be split by pass, or by language features. So now I tend to put everything into one file until I start to notice difficulty navigating, and then I split out things that I’ve noticed I tend to read or edit at the same time. Unlike the previous criteria this is easy to evaluate by just remembering what I did and is easy to connect to my goals — it means less jumping around in future edits which will make coding and debugging slightly faster.
Why is it so hard to do my work? The challenge of attention residue when switching between work tasks
As revealed by two experiments, people need to stop thinking about one task in order to fully transition their attention and perform well on another. Yet, results indicate that people find it difficult to transition their attention away from an unfinished task and their subsequent task performance suffers. Being able to finish one task before switching to another is, however, not enough to enable effective task transitions. Time pressure while finishing a prior task is needed to disengage from the first task and thus move to the next task and it contributes to higher performance on the next task.
Attention residue represents the extent to which a person’s attention is only partially focused on a current activity (task or social interaction) because a prior activity is still holding part of his or her attention. More precisely, that prior activity has stayed active in working memory — up through the present — and keeps attracting attention even though one has had to engage in another activity. Whereas some types of ruminative thoughts can be anchored in events that are far in the past and tend to come and go, attention residue is rooted in temporally proximal events (i.e. a task or social interaction that has recently occurred) that have stayed active and persisted in working memory. To summarize, attention residue occurs when one has switched activities without fully transitioning one’s attention.