The Dice Hack for Long Todo Lists

I wanted to write about a productivity technique that has been working well for me recently. I might eventually turn this into a proper blog post or something, but wanted to get people’s feedback here.

tl;dr: I’ve managed to boost productivity and lower stress in dealing with long lists of small-to-medium administrative tasks, using the simple hack of numbering them, rolling dice to pick which one I will work on, and then repeating. Read on for more details and my analysis of why I think this has been so (surprisingly) effective.

The problem

As of this semester, I am the new chair of my department. (Note that condolences, rather than congratulations, are in order; we rotate the chair position, and it’s my turn to do a 3-year stint.) This has greatly exacerbated a problem I’m sure many knowledge workers can sympathize with: I often have an extremely long to-do list full of tiny-to-medium administrative tasks, which are all generally important and best done sooner than later, but have no particular due date. For example, at the moment, I need to schedule a time to get new glasses, send an email to a student about an academic integrity issue, figure out a spring course change for an advisee who won’t respond to my emails, order some Christmas gifts for my dad, email students offering them computer science teaching assistant positions for the spring, calculate how many math graders we can afford to hire, reply to two different text messages… and this is a rather tame, short list, since it’s the end of the semester.

My natural tendency, when faced with such a list, is to become filled with dread and anxiety and retreat into full-on deer-in-the-headlights defensive procrastination mode.

Why is this? I think I’ve identified (at least) three reasons:

  1. Looking at a giant list is overwhelming, because my brain tries to process everything in the list all at once. Looking at each item makes me think about how I really ought to do that thing, and picking any one thing to do makes me feel bad because of all all the other things on the list that I’m not doing.
  2. Trying to decide which item is “most important” or “should be done first” is paralyzing, because the items usually all have a similar level of importance (and/or the ones that are most important are the ones I dread most).
  3. There are usually a few items on the list that I dread in particular; working on the list means having to work on those things, so I avoid the entire list.

I have other systems for blocking out time to work on big projects, and I don’t have too much trouble working on things that are really and truly urgent. The problem is that giant morass of vaguely important administrative tasks.

System 1: Final Version

For several years, I kept a todo list in a todo.txt file, and processed it using a custom script based on Mark Forster’s Final Version. My script would go through the todos, repeatedly asking me which of two tasks I wanted to do first, and then inform me which task I should do next. The idea is to complete “chains” of tasks where you start with the item you want to do the most, which gives you momentum and motivation to tackle the next task in the chain, which is one you want to do a bit less, and so on. Each time you make progress on (or complete) a task, it moves to the end of the list.

This quite effectively solved the problem of feeling overwhelmed, that is, problems (1) and (2) on my list above. It’s much easier to decide between two items instead of picking one from an entire list, and I could just do whatever the script told me to do next, without ever having to look at the list as a whole.

However, there were a couple problems. One problem is that the chains would get quite out of date. I think Mark Forster’s intention with the system is that you would get through multiple chains in one sitting, so each day when you started working you would begin by creating a chain from scratch. This also ensures that you make at least some progress on those tasks you really don’t want to do: they will eventually make their way to the beginning of the list, as other tasks are worked on and move to the end, at which point they will get picked as the last item in a chain. You can then make some progress on those dreaded tasks once you have worked your way through a whole chain and built up some momentum.

However, it never really worked that way for me. I very rarely made it all the way through a chain in one sitting, which meant that the next time I sat down to work I had several bad options: I could continue the same chain where I left off, which was not very motivating and often no longer reflected my priorities; or I could start over from scratch, which meant that I never got to those dreaded tasks at the beginning of the chain, which would just languish at the top of the list forever.

System 2: Todournament

I then discovered Todournament, a very clever web app by Tom Lieber that helps manage your todo list. You start by pasting in an arbitrary list of todos; then, similar to Final Version, the core mechanic is to repeatedly ask you which of two items you want to do next. However, unlike Final Version, which builds a chain, Todournament has all your todos duke it out, tournament-style, to identify the one item that you want to do next. After you do the winner, you might have to resolve a few more head-to-head matchups before it can identify the next thing you should do, and so on.

This was useful and motivating for a while, just out of sheer novelty, I think; but on reflection it had similar problems, and perhaps even made them worse: I would of course leave all the dreaded items for the end, and only very rarely would I get through my entire list. The next day I would dump in a bunch of new todos, and the cycle would repeat, with a few dreaded items languishing forever.

The Dice Hack

Here, then, is my current system:

  1. Make an auto-numbered list of todos. (I use an auto-numbered list in Roam, which is where I already store and track todos; but any software that can auto-number a list of items will do, such as pretty much any text editor, an HTML page viewed in your browser, Obsidian, Notion, emacs org-mode, etc.)
  2. Roll a (virtual) die to pick between the numbered items at random. (I use the roll command, i.e. I type roll d24 at the command line to choose among 24 items, but again, any software or app that can pick a random number works; you can find lots of websites and apps for picking random numbers.)
  3. Do (or at least make progress on) the chosen item. No exceptions!
  4. If you complete the item, remove it from the list, or check it off and move it to the end. (This is why it’s important for the list to be auto-numbered, so the numbering will be recalculated when the list is modified.) If you only make progress on the item, you can either leave it in the list or remove it, depending on whether you want to have a chance of working on it again later.
  5. Repeat.

That’s it! Super simple. In fact, I think its simplicity is part of the reason I never tried something like it before: it seemed too simple to work. But it has worked surprisingly well for me over the past few months (YMMV). Why is this? I am not completely sure, but I have identified a few reasons why I think it works for me.

Why it works

Just like Final Version and Todournament, of course, it removes the feeling of being overwhelmed: I do not have to think about the entire list at once, and I do not have to do the difficult work of picking what to work on next: my system will tell me what to work on.

But unlike those systems, it also gets me to do those “dreaded” items in a way that I find very emotionally satisfying. When I go to roll the die, I usually have a vague, low-level sense of apprehension; sometimes there are even specific items that I am hoping will not be chosen (“please not number 7, anything but number 7…”). 95% of the time, I look up the chosen item and feel a sense of mild relief: “oh, that one’s not so bad. I can do that one, no problem.” Then I do it, check it off, and feel accomplished and efficient. The other 5% of the time, the choice lands on an item I’ve been dreading. “Oof,” I think. “Oh well. I guess I’d better get to work on this one.” But as with most such things, the reasons I was dreading it usually turn out to be not very good reasons: sometimes it turns out it actually wasn’t that bad at all, and I get it done much more quickly and with less fuss than I was expecting. Sometimes, I was dreading it because it was somewhat amorphous, or required some sort of difficult communication with other people; but when forced to work on it, I can usually find a good step I can take to make progress (send an email asking for more information; schedule a specific time to do a task I can’t do at the moment; start drafting a difficult message; etc.).

Why don’t I cheat and reroll when a dreaded item comes up? I never have, so far. Partly, it’s the knowledge that if I started doing that, the system would lose a lot of its effectiveness. However, I’ve never even been very tempted to cheat. Somehow, psychologically, having a system tell me, unequivocally, “THOU SHALT NOW WORK ON ITEM 7” just makes me go “OK, ugh, FINE” and then actually do it. It turns out that (for me, at least) “dreaded” items typically have a pretty small “activation energy”, and the system provides just enough energy to push me over that hump to actually make progress on them.

As is probably clear from the above description, I think it’s crucial, from a psychological standpoint, that I go through the ceremony of rolling a die to choose each item. From a mathematical point of view, it would be entirely equivalent to first randomly shuffle the list, and then go through the items in order. However, that would not be at all psychologically equivalent: I would be able to see when dreaded items are coming up in the sequence, leading to stress and avoidance. In other words, it’s important to have no idea what I’m going to work on next until the exact moment that I have to start working on it. I could also make a program which shuffles the list in memory and then displays each next item, one at a time, after I’ve finished working on the previous one. However, I think there is something useful and fun about the ceremony of actually rolling a die and then looking up the resulting number in a list to find out which item is next. (It might be even more fun to actually roll a physical die. If you have n items on your list, select a die with at least n sides; if you roll a number greater than n, just reroll. However, this might not work that well if you have more than 20 items on your list, as I often do. Note that using multiple dice and summing them doesn’t work, since you don’t get a uniform distribution.)

And that’s it! And indeed, Beeminder isn’t even really involved at all, except that in my case, some of the items that I throw in my list are things I need to do to appease various Beeminder goals. I just figured it might be the sort of thing that would appeal to the sort of nerds who use Beeminder. Very happy to hear any feedback, questions, success stories, etc.!

7 Likes

I love this technique, and I enjoyed reading your thoughtful writeup about what led you to this point! I’ve been using dicerolls for my to-do lists for a few years, and I really like the ritual of rolling a physical die, rather than using an app for it (I am lucky that I rarely have more than 20 things on my to-do list). I agree that the randomisation really helps a lot in reducing dread.

3 Likes

I agree. Beautiful writeup.

I find that when I decide to use a system, it’s really hard for me to make exceptions, so whenever I’ve tried random selection, I start missing deadlines. :face_with_peeking_eye:

I’ve also had the problem of never getting to the dreaded tasks when using ordering-based systems. The only mitigation that’s worked for me is to use a really pointed question like “If this were the last thing I worked on today, which would I rather it have been?” Whenever I can’t bring myself to work on whatever task wins that tournament, I know it’s time for a nap!

3 Likes

Nicely written indeed, thanks!

This goes into my collection of anecdotes on… ugh, I’d really like Beeminder community’s help with coming up with a concept handle for this phenomenon. I’m thinking in direction of “System 2 bypass” but that feels unwieldy.

(Russ Roberts went on to write whole pages in Wild Problems about this by the way!)

3 Likes

Indeed, I doubt pure random selection would work well for me if I used it to manage everything I have to do. I only use this system for what I term “administrative” tasks (a vague, undefinable term) - I create lists of them and then block out time to work on the lists via random selection. But I separately block out time to work on e.g. big projects, or things with hard deadlines coming up soon.

2 Likes

This thread got me thinking.

I recently tried a goal to use the random task button on Complice, and the number of times I had to press the button a second or even third time because the one I got had some dependency that hadn’t been met was a bit frustrating. I just went back and looked at Complice’s system again and realized it has a filter built in. :woman_facepalming:t2:

I guess sometimes we all need something to remind us to check the obvious, thank you for doing that.

1 Like

Also, as an addendum, if anyone wants to roll physical dice but has more than 20 items on their list, I realized after posting that there are various things you can do that would work well (as long as you are OK doing a tiny bit of arithmetic):

  • You can’t roll multiple dice and sum them, but you can roll multiple dice and treat them as the digits in a (mixed) base number. For example, you could flip a coin and roll a d20; heads represents 1-20 and tails is 21-40. Or you could roll a d6 + a d10, and use one less than the d6 as a tens digit and the d10 as a ones digit. Or you could roll 3d6 and interpret the result in base 6 after subtracting 1 from each die (with some way to determine which are the first, second, and third digits, e.g. different color dice).
  • You can roll e.g. a d100 but take the remainder modulo some suitable value. For example, let’s say you have 43 items on your list. Then you can roll a d100, take the remainder when dividing by 50, and reroll if you get something above 43.
1 Like

@cthulhucultist, can you elaborate on this / point to where I can look this up?

Because my initial reaction when I read @byorgey’s post yesterday was that I want to try to as well, and since all my to-do’s are in Complice/Intend, that was a go-to, to try their randomizer, but it was also frustrating that it wasn’t really as useful.


@byorgey, thanks for the write-up of the strategies. This is inspiring, as I feel like I am at a point where looking for a new system might be useful. Especially, with your later caveat that this is applicable to a block of time dedicated to these assorted tasks. And condolences on the admin responsibilities, indeed :slight_smile:

1 Like

On the Now, or Today tab below your task list, or where you choose your task, it lists your goal categories. If you click on one of them, it filters so that only that category is visible until you click it again to remove the filter. I’m also now realizing that you can have multiple categories selected as well. In the past, I’ve only ever clicked one of the categories by accident, but now I have it filtered for household related tasks, so when I click get random, I’ll only get something from that category.