Tracking Work with Emacs

My workflow has changed over the years, but I've been using this for about four years now and I'm quite happy with it, so I thought I'd share, inspired by this Accelerate your software engineering career by tracking your work post.

So, how do I track what work I need to do? As you might expect, mostly with text files.

Directories and Files

My flow is to have a markdown file per month, organized in per-year directories.

Every month, I have a script that will cleanup all completed work in one month file and then roll it over into the next file: 2023/01-notes.md becomes 2023/02-notes.md with any completed work removed.

File Organization

Each markdown file starts off with # TODO List followed by a list of things I need to do, one per line.

Each bullet point is formatted as - [TAG] Something-something, where [TAG] can be absent or it can be one of DONE, CANCELED, and maybe some other completion marker.

After this section, I have a list of top-level headers that, if present, match one of the tasks. I use this area to add notes about what I'm doing, and I can use sub-headers to organize if needed.

I also have a couple of emacs commands to move lines up and down (useful to prioritize my top-level list) and to jump between a top-level list item and a header. This allows me to navigate very quickly when looking at any kind of work and the items within.

For tasks that require lots of notes - for example, bugs where I want to keep callstacks or a fragment of memory dump or something - I will typically create a new file and link it from the section body, for example something like 02-large-project.md.

I can typically find things by chronological order if it's been more-or-less recent and I have some idea of when something happened, but failing that a simple grep is all I need.

Why I Like This

I like this setup a bit better than org, mostly because it's very few bindings needed to be active and also because of the simplicity (it's very easy to read and edit this with any plain text editor - emacs just has a few conveniences).

Actually, this flow started even before I used emacs in earnest, back when TextPad was my editor of choice. And, to be fair, TextPad was always really, really fast, and I have no reason to believe it's any different these days.

Happy work tracking!

Tags:  management

Home