The best todo list system I've come up with so far
One system to rule them all
I'm obsessed with productivity systems. I've gone so far as to spend years programming a personal CRM for my own use and about a half decade tracking my working time to the minute as a salesperson. The system I've tinkered with the most is the core todo list, which helps me understand what to do next.
Primarily I've used this as a salesperson and to manage my day-to-day life, but I think it would be applicable to a wider variety of tasks. There are some good things to learn here for a non-technical audience, but my particular system would likely be uncomfortable for you unless you have at least a bit of programming background.
What follows is built on emacs org-mode and heavily inspired by David Allen's book Getting Things Done.
My biggest gripes with most todo systems (most to least important), and how I currently address them
Quality | Problem | How it's fixed |
---|---|---|
Prioritization |
The core issue I had with most systems I tried was that they create some sort of list of tasks that are due or past due, but all of those items were essentially created equal. If I have 25 things I can do right now, they are not ordered from most to least important, and there's not an easy way to have them well-ordered by default. This is especially important in sales, where there are hundreds or thousands of actions you could take next, but the few most impactful actions are >10x as important as picking a task at random. Additionally, there needs to be a way to distinguish between "you can do this today" and "you really, really need to do this today". Finally, I like to be able to generate lists on demand of tasks fitting a particular constraint. For example, what can I do without internet? What should I do when I'm feeling especially high-energy/creative, vs. tired and unlikely to succeed at anything requiring my best self? The goal of all this, and I think a good goal for todo lists in general, is to remove as much as possible any sort of decisionmaking when you finish a task and are looking for the next thing to pick up. Ideally, you should completely trust your system to give you what's logically next, and avoid all the dangerous procrastination that can come of making "what's next?" into a question you stop and think about, instead of a clear, predetermined outcome. |
To fix the above issues, I think you need a few things, all of which org-mode makes easy:
|
Recurrence |
Tasks recur in complicated ways. For example, if I have a one-on-one on Thursday, I would like a task to write up my notes and next steps from that meeting. That task shouldn't bother me until after the meeting Thursday. And, when I complete it, it should go away until next Thursday, not X days after I complete the task. Other tasks like doing laundry for my family, I might need to do every three days. Filing expenses might need to happen a few days after the first of each month. Many systems are good at recurring on a fixed interval, but very few are good at recurring relative to the last time you completed a task. |
Org-mode supports all the types of recurrence I need (and more). |
Permanence |
If I'm going to invest time in getting really, really good at a system, I don't want to depend on my company having certain software to be allowed to use it, especially if that software is not something easy to acquire on an individual basis. For example, I leaned really hard on the Task system within Salesforce while working at LaunchDarkly, then switched jobs to a company using a different CRM. On a longer time scale, most software tools are trying to grow big or get acquired, and so the latest hot tools will categorically look very different in a few years, even if they succeed. A lot of the time that involves adding complexity to a workflow that used to be simple, or gating features you might depend on behind expensive paid plans. |
Org-mode is open source software that's been around for decades, I can run it on my computer, and it's not going anywhere. |
Applies to work and personal life |
Realistically, when I assess what I have to do on a weekday, that involves a mix of things I'm doing for my family, for my job, and for myself. Being able to weave those together into one system makes it easier to use it as my single source of truth. I'm sometimes in work mode (middle of a Tuesday) or family-only mode (Sunday), and want to be able to see only tasks related to that part of my life at that time. |
By splitting up tasks between files, and incorporating only certain files into agenda views I use in different situations, it's easy to only look at "work stuff" or "family stuff". By limiting which files are shared between my computers/phone, I can handle keeping work files off of personal computers and keeping startup ideas/possibly sensitive IP off of work computers, while still being able to work from the same sort of interface on each machine. |
Speed |
I use the system more than any other system. Ideally, that means no latency and very few keystrokes to do anything I want to do. That goal in turn points to being able to run it locally (on my own computer) rather than have to go log into a website to see it. |
The blessing and curse of Emacs is that there's a shortcut for everything. This makes the learning curve quite steep, but since it's a commonly used tool that I'm using every day across a period of many years, that's a cost I've been happy to pay. |
Privacy |
I'm reluctant to share everything about my life and decision-making process with tools that might sell that data, especially given how uncannily good LLMs will likely make targeting ads or other offers at me based on what they find. |
As long as you have a way of sharing files between your computers that you trust, an open source-based system like this limits privacy risk. |
How can you set this up for yourself?
The views I'm looking at draw from several files:
- "Capture", where I put ideas I think of or things to remember when working on something else - this helps me trust I'll get to that idea and keep going
- "What to do next for each prospect or client" for my sales job, which has the clients in order of importance so that I work on the most impactful things first
- "What's the rest of my job" for my sales job, which is typically of secondary importance to client work and covers everything from longer strategic projects to internal meeings
- Family and kids
- Personal projects
- Daily routine (semi-randomly generated daily)
In terms of tooling, I use Aquamacs to run Emacs, Automator to start up Aquamacs by loading all files relevant to my machine, and Dropbox to share files between machines. My .emacs file defines agenda views and tags. I happily paid for BeOrg to access and edit these todos on mobile.
I'm happy to put more time into detailing this if there's demand in the future.
Why not to do things this way
If you don't have a bit of background in programming (doesn't have to be much—it's never been my main job), Emacs will probably be pretty intimidating to learn and configure. I haven't thought enough about what I'd recommend otherwise.
If most of your work is highly collaborative with others, a local-first system like Emacs might be less useful than a place where your tasks are visible/modifiable to others more easily.