The Unreasonable Effectiveness of the To-do List – Zeigarnik Effect and Developer Productivity
Tags: productivity, career
Published: 2022-05-13 17:05:29

I touched on the business cost of context switching in [last week's post](https://blog.shimin.io/the-business-case-for-fewer-developer-meetings/). This week, I want to dig deeper into a hidden cost of context switching: the cognitive costs of unfinished tasks.

Ever notice you are more effective when working on one project at a time instead of juggling multiple projects concurrently?

Do you have multiple meetings in the day so you are constantly stressed about what to do next and unable to focus?

In a more general form, do work-related thoughts intrude into your non-working hours?

I'm an anxious person by nature. Learning about the [Zeigarnik Effect](https://en.wikipedia.org/wiki/Zeigarnik_effect) and how it shapes my mental capacity has been a productivity and mental health game-changer. While I am not a 'productivity expert', I want to document how I deal with the cognitive cost of juggling multiple unfinished tasks.

## The Zeigarnik Effect

The Zeigarnik Effect states that an uncompleted task has an associated cognitive overhead. The task will periodically demand our attention and drains our mental resources until it is completed.  

The effect is named after the Russian psychologist Bluma Zeigarnik. While on vacation in 1923, Zeigarnik noticed the same restaurant server who previously remembered the entire table's orders did not recognize her when she went back to fetch her forgotten purse – merely minutes after the table finished paying.

Inspired by this realization, Zeigarnik later performed a series of experiments to confirm that we keep a 'cognitive cache' for any uncompleted tasks, making their context easily retrievable. Later studies confirm her initial hypothesis, though with the caveat that this cognitive penalty only occurs when we do not have a well-formed plan on how to complete the tasks. See [Masicampo 2011](https://doi.apa.org/doiLanding?doi=10.1037%2Fa0024192) on how plan making can eliminate the negative cognitive effects of unfinished tasks.

The Zeigarnik Effect partly explains why we have trouble constantly context-switching and juggling multiple projects. Each unfinished task drains our mental capacity and reduces our ability to focus – that is, until they are 'garbage collected'. According to this [2020 study,](https://doi.apa.org/doiLanding?doi=10.1037%2Fa0037127) unfinished work tasks can lead to excess rumination and negatively affect our sleep quality – even on the weekends.

## Dealing with Unfinished Tasks

My number one tool for dealing with the Zeigarnik Effect is the humble text-based to-do list. Specifically, I use a single page of the macOS Notes app to keep all my work-related to-dos.

If I'm in the middle of a task and have to context switch to a meeting or bug intake, I chunk the unfinished portion of the task into a new to-do list item and add it to the front of the queue. Whenever a new task comes up during a meeting, I translate it into an actionable item – even if it's as simple as a 'ping X to confirm Y'.

I rearrange the to-do list periodically based on priority – oftentimes multiple times a day – so I always have a rough plan of attack for the next few business days. And because the tasks are in actionable form, they do not drain my attention the same way a list of unknowns would. This allows me to focus deeply on the task at hand.

I first came across the benefits of this approach when I read David Allen's [Getting Things Done](https://en.wikipedia.org/wiki/Getting_Things_Done). As part of the GTD workflow, I wrote down goals that captured my attention and clarified the actionable steps needed to achieve them. The simple act of writing actionable steps towards a goal down and putting them away provided immediate and immense stress relief.

Why do I use a text to-do list when Jira tickets, Trello boards, and Gitlab issues are available? Because it is easy – which epic and milestone should I tie 'ping Sarah about the checkout workflow copy' to? Plus, small tasks that do not merit an entire Jira ticket will still drain your mental resources – so they are added to the list regardless of size. If the list gets uncomfortably long overtime, sharpen your machete and remove the lowest priority items – anything that's truly important will resurface later – another tactic I borrowed from Getting Things Done.

Meditation's another tool that helped me deal with the negative aspects of the Zeigarnik Effect. I try to meditate between 5-10 minutes a day – it's the garbage collection process for my mental health. Any unfinished tasks occupying my mind will surface to the conscious mind during meditation. I can either make a quick plan to deal with it and file it away mentally or physically  – or failing at that, meditation is the daily practice of not being so easily distracted by them.

The last thing I do to shield myself from the Zeigarnik effect is I always choose to stop coding after finishing a milestone instead of leaving code half-finished. While some developers swear by finishing the day mid-code – so they can easily jump in the next day – I find the practice causes work to bleed into my personal life. If forced to, I add a 'fix failing tests' to the top of the to-do pile before switching to something else.

## Final Word

I first came across the term Zeigarnik Effect in Kathy Sierra's [Badass: Making Users Awesome](https://www.oreilly.com/library/view/badass-making-users/9781491919057/). While I mostly wrote about its detrimental effects in this post, you can also use it to help you perform your best – see [this article](https://link.springer.com/chapter/10.1007/978-3-030-46463-9_10#Bib1) on how professional athletes use the Zeigarnik Effect to reduce performance anxiety.  

Here are the key take ways points:

-   Interrupted and unfinished tasks will drain your mental resources, leading to _stress and poor performance_.
-   You can _eliminate_ the negative effects of unfinished tasks through _plan-making_.
-   The act of turning unfinished thoughts and tasks into _concrete next steps_ – such as a to-do list – can be a quick and effective way to combat the Zeigarnik Effect.

If you found this post helpful, please share it with others. You may also be interested in learning about [how to spot 'Fake Agile' teams during interviews](https://blog.shimin.io/interview-questions-for-fake-agile-teams/) or [using Bloom's Taxonomy for faster skill development](https://blog.shimin.io/bloom-taxomony-and-front-end-skill-development/).

If you have any tips on how you deal with the Zeigarnik Effect, leave a comment below or ping me on Twitter [@ItsTrueInTheory](https://twitter.com/ItsTrueInTheory).