I recently overhauled my approach to TODO lists in a way that solved several problems for me, so I figured I’d write about it here.
Old Way
Previously I had a todo list based on a set of recurring TODOs, with the logic that once I complete an item it pops back up on the list N days later (N can be different for different items).
(this is just an org-mode agenda with scheduled items with repeaters, for those who are familiar)
I enforced working on items with beeminder via a goal that required that I do three items from the list each day.
This setup had a number of downsides:
- the items varied wildly in effort, which means I was incentivized to pick the three easiest items, which in turn meant the remaining items tended to be harder, so I’d eventually get to the point where there’s only difficult items left
- except also the rate of three per day wasn’t quite enough to ever exhaust the list, so what actually happened was a lot of the more difficult items languished
- I was reluctant to add new items, because this would exacerbate the previous point
- I was also reluctant to increase the goal rate from 3 to 4, because that would make the problem of “lots of hard things on one day” even worse
- due to the above reasons, I couldn’t reasonably use the system to track one-off items
New Way
The key insight I had is that I should instead enforce (via beeminder) completing a particular percentage of the list, oldest items first.
The fixed-percentage-of-the-list component addresses the issue of calibrating the work rate to the workload, and using a percentage like 33% protects me against the situation where many items all show up on the list on the same day. It smooths the rate at which items are removed from the queue.
Actually a bit more complicated
The mechanism above doesn’t address all the problems I listed earlier, but this refinement does:
- all my todo items (repeating or not) get effort estimates, and based on this they’re partitioned into three buckets – small, medium, and large
- small items are things that are virtually no effort, and I’m required to complete all of them every day (i.e., the rate is 100% actually, not 33%)
- medium items take 3-10 minutes each; I have to do 33% of these per day, but if have an off-routine day (a concept I’ve formally defined for myself and use elsewhere in beeminder to excuse myself from doing things) then I don’t have to do any
- large items take 11-30 minutes, and I have to do 33% of these but only on the weekend (when I usually have more time), and just as with medium items I have an excuse for off-routine days
The upshot of all this is that the work I’m required to do each day is much more consistent, and as a result I have significantly less anxiety about it (no worrying about outlier days with too much to do, and no worrying about things languishing) and I get a lot more done (especially since I no longer have days where I just pick three easy items and then quit).