How to avoid context switching penalty : Productivity 101

Apr 14, 2022
Productivity Context Switching

Why are you not productive?

All you will need to do is ask around a bit and you will find that everyone works differently and has different ways of getting things done. But, If you look at how most productive people work, you will see common patterns. Some of these patterns emerge because these productive individuals are addressing, in their approach to work, a set of problems that all of us face. This is a discussion on a set of tools discovered by observing work style of such individuals, that you can implement in your daily work and get things done without exhausting yourself in the process.

I went down this road to because I observed some people, who are producing absurd amount of work without giving up on their personal life, their hobbies and their leisure time. So, instead of assuming that they have superhuman powers, I assumed that they have figured out solutions to problems that I didn’t even know exist.

So it turns out that these people are getting so much done by not exhausting themselves by the end of everyday. This is mostly because they are avoiding what is called the “context switching penalty”.

What is Context switching penalty?

You have a upper bound on your per day mental capacity to engage in deliberate thinking, processing information and recall. The upper bound may vary significantly from person to person, but it exists. And since we are knowledge worker we must make sure we use this mental capacity optimally.

Context switching penalty is a tax you pay from the remaining mental capacity of the day, when you switch back and forth between tasks which requires your deep focus. The problem is that this extra energy that you burn is significant in some cases, which wastes your mental capacity and reduces your productivity.

When do you pay this penalty?

Following are a set of conditions which when met you pay a greater amount of penalties for each context switch you do:

When the thing you are currently working on

  1. Is detail oriented and requires you to access your working memory frequently
  2. Invokes your deeper understanding of the abstrations you are working with
  3. Requires you to traverse a wider portion of your knowledge graph[*1]
  4. Requires you to use a knowledge set that you are not well versed in

and then you switch to something that differs in

  1. Depth of details
  2. Knowledge set in use
  3. Things you need to keep in your working memory

then you would pay a heavier penalty for every such switch.

You might be able to get away with a lot of context switches without paying much penalties if

  1. You don’t have to be very detailed in your work, staying at high level works for you
  2. Knowledge set your are traversing for each of such tasks are abstracted to higher levels and details will be figured out by someone else.

What can you do about it?

Now that I have detailed the problem, following are few remedies I have used to work around the problems I have with being productive. So here they are:

  1. Allocate timeboxes for a given task, with a hard limit of distractions. Set DND on slack, put your phone away, put ad-blocker on your browser. Remember productivity is not about doing a lot of things, productivity is about managing your distractions.
  2. Dump your short term memory into a text file. Create a section where you will write short sentences about what you are doing, what you just discovered, what is that important piece of information you needed to remember for this task, what is the edge case you needed to write a test case for etc.

    What you write in this section doesn’t have to make sense to anybody except you. What you write are “hooks” which are phrases or anything at all that makes you remember something. The goal of this is , if you have to switch context to some other task and then you come back to this task, you have a set of hooks that you help you load things to your RAM instantly. (It is literally what CPUs do for their context switches, they dump their resisters’ data into RAM and then read it back)
  3. Seek clarity. If you are not sure about what the end goal of a work session, or even a project, should look like, then just MAKE IT UP. And prepare a set of questions you think is likely going invalidate what you just made up. Then try to answer those questions.
    Revise your hypothesis and repeat this process until you know what you actually need to do.This process will quickly orient you towards what you actually need to do. Once you reach clarity then timebox and execute.
  4. Triage whatever is seeking your attention quickly. If it is not absolutely necessary to respond to it right away, make a note of it a single place, a todo list may be. Come back to this list on a set time on your calendar.
  5. Declutter your Todo list. Figure out a recurring system to de-prioritize and remove things from your todo list. This is absolutely necessary to avoid being overwhelmed by amount of work on your plate.
  6. Review your notes, read up on your hooks and load stuff on your memory before coming to the big detail heavy work
  7. Plan you days. If you have a lot of meetings in a given day don’t pick up that heavy task. Group easier tasks together and block a wide chunk of time for your detail heavy work.
  8. Batch similar tasks together in terms of the section of your knowledge base you need to access to accomplish them


PS: These are what I have discovered by talking to people and trying to distill their thought process into something I can execute. So these are based purely on anecdotal evidence and feel free to modify or discard any of these according to your needs.