Minimizing the cost of context switching

It is a well-know fact that context switching is extremely damaging to productiviy and concentration. However, in today’s working culture, it’s also unavoidable, especially if, like in my case, your job involves a lot of communication. Slack, email, Discord, Github… Notifications and interruptions come from everywhere. You can’t just ignore them either, because usually they are from people who need something from you to be able to continue their work. After all, sometimes I am the originator of interruptions, and I get annoyed if I don’t get an answer right away.


I have accepted context switching as a fact of life and tried to find ways to minimize its impact. One method that works for me is the “Pomodoro technique”. The idea is to set a timer, usually for 25 minutes, and commit to focus on one thing and one thing only during that time, blocking all interruptions. When the timer runs out you take a break (typically to check messages etc.) and then you start over. The name "pomodoro" comes from the tomato-shaped timer used by its Italian creator. It may sound cute to a non-italian but in my case it brings up images of food rather than work, so I prefer to talk about "focus time”. The Pomodoro technique is a pretty simple idea but somehow its creator managed to build a consultancy business around it. There are also many apps to help you manage the focus sessions, with Session being my favorite at the moment. I like Session because it allows you to state the intent of the focus period when you start, and record your reflection on how it went when it ends.

When switching from one task to another, it takes time to get back to the context of the task. To minimize this friction, I have found it useful to save as much as possible of the context when stopping a task, so that I can retrieve it easily when I resume. For example, if the task involves working on a document, it’s a good idea to save the link to the document with the task description, perhaps bookmarked at the place where you left it. It’s much easier to start on a task like “Review the plan for project X” if the plan is one click away. If resuming the task means finding the document all over again, and remembering what you had done previously, the overhead of switching tasks becomes much higher. If context switching is a metaphore coming from operating systems programming, then saving and retrieving state fits well within this metaphore, since it’s exactly what OSs do when switching from one task to another.

Finally, I use workflowy to manage my ToDo list. It's basically an infinite, collapsible bulleted list that makes it easy to add hierarchies of topics and links to each task. Many people swear by mind maps, but I find that my brain works best in sequential lists.