The problem#
The new year is a traditional time for adopting new organizational schemes, among other oft-broken promises to oneself of improved habits. In that vein, I recently adopted a new system for managing my TODO list.
Managing a household involves a lot of infrequent tasks that are easy to forget like checking filters on various appliances every few months and similar invisible maintenance tasks. I had been managing such tasks using recurring Google Calendar events with email reminders, but it was getting unwieldy for multiple reasons. It didn't provide a good record of whether and when tasks were completed (which matters for tasks that should be done some number of weeks or months since the last time it was completed, not since the last time I was reminded of it). Additionally, it doesn't provide a good way to share the TODOs with other members of the household who are also responsible for some of those tasks. And it also cluttered up my calendar with items that didn't really have a meaningful assignment to a particular day or time.
The solution#
Task management systems are very personal: while I will describe what I came up with that hopefully I will continue to find useful, what works for you may be very different.
I set up a TODO list for my household (plus a separate one just for myself) using Sleek which uses the todo.txt format (see todotxt.org for more info and other software). The directory containing the TODO file is shared with the rest of the household with Syncthing. For backups, the directory is a ZFS dataset, so it is automatically snapshotted regularly and included in my backups. If you wanted, you could also apply my copy on save logic to snapshot every change, but that's likely overkill.
Example tasks#
While the simplicity of the todo.txt format means it's easy to edit by hand or use any tool including ones you write yourself, the Sleek GUI handles the syntax for you so it is accessible to non-technical users as well.
Sleek supports "threshold" dates before which tasks are hidden from view
by default and recurring tasks which can be "strict" (based on due date,
prefixed with +
) or not (based on completion
date), which allows the specification of tasks like "check
funance filter 2-3 months since the last time it was checked":
rec:3m t:2025-02-15 due:2025-03-15 check furnace @filter
as well as "pay the electric bill between the 20th and the end of each month":
rec:+1m t:2024-12-20 due:2025-12-30 pay electric @bill
The thresholds allow for keeping the noise down on the list by hiding tasks that cannot be done yet (can't pay a bill that hasn't arrived yet) or don't make sense to do so soon after they were last done.
The details#
Task management philosophies#
A task management system, whether it's a specific way of using a specific application, not having a particular plan of what tasks you will accomplish when, or anything in between, is an implementation of a task management philosophy. Which is to say that in order to decide what system works for you, you need to know what your goals are and perhaps have an idea of what systems don't work for you.
The todo.txt documentation references the book Geting Things Done, which I had not heard of before writing this blog post, as a philosophy it explicitly tries to support. A key observation there that resonates with me is that simply having a written collection of tasks is a way to improve productivity: instead of worrying about making sure I'm not forgetting to do something, I can add it to a TODO list when I think of it and thereafter trust that it exists as a TODO so I don't have to spend energy worrying about remembering to do it. For me, there's an immediate follow-up problem of then there being too many TODOs and the list quickly becoming overwhelming, which is why I like systems that let me hide TODOs that cannot be acted on in the present (or that I've decided to not act on immediately).
Other aspects of an organizational system may be important to you. For instance, in a friend's description of his system, organizing tasks hierarchically is very important because that fits how they think about things. The todo.txt format has limited support for hierarchies with its "projects", which I have not made use of so far.
Which tasks to track#
It doesn't really make sense to use this system to track tasks so frequent they are done every single day (e.g. opening and closing window blinds), after all Sleek does not even support referring to times with finer granularity than one day. Nor does it make sense for tasks whose schedule is mostly determined by visible need (e.g. running the dishwasher when it's full or doing the laundry when running low on clean clothes). Although many cleaning tasks are not quick, so it may be useful to write down a TODO due soon instead of completing a large cleaning task immediately.
Regular maintenance/cleaning tasks#
Many appliances have recommended regular maintenance like checking on their filters or cleaning various parts that are easy to forget. Especially as you can often get away with doing these tasks much less often than recommended by the manufacturers, it's nice to have a record of when they were actually done.
A similarly scheduled task is cycling rechargeable batteries. In order to not have to worry about exactly when a battery is low enough it really needs to be replaced or deal with corrison leaks from old alkaline batteries, a while ago I followed this guide to replace most of my alkaline batteries with rechargeables and just recharge them on a schedule. Then I don't have to think about the optimal time to replace batteries.
Bills#
While bills should be in my email, and therefore automatically become TODO items by being in my email inbox, that "should" assumes everything is working right. As I have in the past not received bills for various reasons including clerical errors by the organization charging the bill, I created TODO items for making sure I pay bills even if the email doesn't reach me for some reason. I looked through the history of when I had received each bill and set the threshold date to the last day of the month I had received each bill in the past, so I wouldn't get notifications for bills that just haven't arrived yet.
Misc. renovation plans#
We have a vague list of small to medium size projects that we would like to do at some point, like getting an electrician to add some outlets in various places. I have those tasks in with no due date and a context like "@electrician" to indicate they can't be completed without hiring an electrician and can be filtered out of the default view. Then we can remember everything we wanted an electrician (or handyman, etc.) to do when we do decide we have enough small tasks to be worth hiring one for.
Other features#
Tasks can be marked with priorities which, for the highest few priorities, Sleek will highlight them in a priority-specific color. I haven't had enough tasks for priorities to be meaningful, as thresholds keep the list small, but maybe that will change as I use the system more and accumulate more tasks it is tracking.
While I've marked tasks with "@
" contexts, I've mostly used them as
tags to be visually distinct, not as much for their intended purpose of
specifying a context in which a task could be completed. For example,
tasks that could be done sitting in front of a computer like sorting out
bills could be marked as the "@computer" context.
Similar to contexts, there's separately a concept of "+
" projects
which are intended to group tasks as a minimal way of supporting a
hierarchy of tasks. I'm not sure how those would apply to how I'm using
Sleek.
Future improvements#
I haven't been using this system long, but I've already been occasionally annoyed by the fact that I can't check off a task on my phone or review my TODO list when not in front of my computer, when most of the tasks do not involve doing something on the computer. There are phone apps and web UIs for todo.txt, so I plan to look into them, but need to make sure they sufficiently match Sleek's semantics.
Comments
Have something to add? Post a comment by sending an email to comments@aweirdimagination.net. You may use Markdown for formatting.
There are no comments yet.