My stupidly simple TODO system

Ah hello there, long time no see! Here’s a quick post about something that came up with the super nice folks I’m working with now.

We’ve been discussing self-organization techniques and I offered to share my homegrown “system” I’ve been using for some years now, so why not dust off this bloggy thing here?

I started using it originally to track what I’ve been doing at work in order to write detailed invoices, but it turned out to be simple enough to use that I’ve just kept at it out of habit. It combines very basic features of a TODO list, a notepad, and a work journal with a minimum of fuss. So here goes:

It’s a standard text file, named for the project (i.e. “kill-all-humans.txt”), and kept in a Dropbox (or whatever) folder so it’s backed up and available on multiple devices. I also use https://cryptomator.org/ to encrypt the file before it goes in the “cloud”.

As a developer, I always have a text editor open, so this file is always at hand.

In the file, I start each day with a “header” entry like this:

2020-08-24
[Start: 09:30]

and if I remember to, I end each day with

[End: 19:30]

And in between, I write down (at start of day, or just whenever I need to remember something) a line or more like this:

TODO: Deploy and monitor endpoint

And when I’ve actually done things, change the TODO to an Asterisk *:

* Deploy and monitor endpoint

Sometimes I use an arrow -> for followup actions but there are no hard rules.

I also just copy and paste snippets of code, write down outlines of tasks, prepare commit messages, links to tickets, anything at all as a scratchpad. The only rule is to move everything that is done up in the file, and anything that’s still TODO goes downwards. For example, let’s say we have this currently:

2020-08-24
[Start: 09:30]

TODO: Standup
TODO: Deploy and monitor endpoint
TODO: Do code reviews

...

(copy-pasted stuff, other old junk, plans for world domination)

A while later, standup is done, I did the reviews, someone asked me to pair on a problem, and I remembered I need to top up the coolant fluid in the nuclear device. So I mark the done stuff as done and add the new tasks at the bottom:

2020-08-24
[Start: 09:30]

* Standup
TODO: Deploy and monitor endpoint
* Do code reviews

TODO: Pair with Kermit
TODO: Top up coolant

But the coolant is kinda urgent, so I move it to the top, and clean up:

2020-08-24
[Start: 09:30]

* Standup
* Do code reviews

TODO: Top up coolant
TODO: Deploy and monitor endpoint
TODO: Pair with Kermit

This way, my TODOs turn into a small log of my daily work almost automatically. I can just scroll down to remind myself what I was working on or what’s up next.

Occasionally I clean up the extant TODOs or clear out things that people stopped yelling at me about fixed themselves, or just let them turn into a kind of sedimentary layer.

Here’s a real-life example:

2020-08-24
[Start: 09:30]

* Dev tactical:
* Look at and report perf metrics
* Make ticket to fix or remove the whole is_donor/is_applicant stuff?
* Check out that one ticket NL email list
* Ask Grover to join Support meeting?
* Go over Honeybadger
* Organize vacation
* Clickup desktop?
* Get Redis stuff live
* check up on anon dump? -> all good
* Deployed and monitored Redis stuff, move back to main app followup
* Duplicate indices?
-> remove_index :debits, name: "index_debits_on_debit_collection_id", column: :debit_collection_id
* made ticket

* Deploy and monitor endpoint
* aaaaah cloudflare caching got in the way but I think I fixed it

* Worked with Gonzo on deterministic anonymization
* Add "salt" to hashing, make ticket

[End: 19:30]

“But”, I hear you say, “why not use TODO app XYZ, it’s so much slicker and has little booping sounds and syncs your tasks with your microwave?”. Well to be honest, I just can’t be bothered. And IMHO “productivity” programs are either proprietary and take down your data with them eventually, or are open-source and shit. Text files are forever.

That’s it. Bye!