17: Tasks, Linetime, and Timelines
Hi all. This is an edition of A Warm Newsletter, written by me, Jared, about the things that I’m thinking about. This week I’m writing about task management. Kinda overdone I know, but I’m going to be coming at it from a tool making perspective, asking, what’s the API of a task? What’s it’s type? This is a stake in the ground to mark my current thoughts and give me a kick in the ass to work on this area more.
A couple of weeks ago I started editing a public domain ebook as a fun little craft project. I ended up finishing later that week and finally wrote up what that was like this week. If you’re interested in reading Democracy and Education by John Dewey, you can download an epub or and azw31.
Putting the whole thing together was a step-by-step process, with each step being a loop. I had to slowly introduce more precise structure into the document, first splitting apart chapters, then restructuring headings, then adding ids, etc.
Honestly, it was way easier than writing up my experience with it. The initial thought is that it doesn’t make sense to compare a technical task with concrete steps to a creative task like writing, but, maybe it does.
Encoding Writing
Ideally what I want is to turn writing into a process, something that can be iterated on and improved. A process can reduce the activation energy for a task greatly, which is oftentimes the thing that most gets in the way.
One of the problems with this is that writing is not just a one time thing that I sit down and do. It’s a multi-stage task situated among all the other things I’m trying to do at the same time. A piece starts out as a collection of notes and ideas, then moves to a draft, then is published. And even then, it is most likely revised at some point in the future. And it only get’s more complex.
What if instead I want a workflow for writing around the personal website chats? Or conducting interviews? Or tweeting and threading? (Or you know, writing for the actual work I’m supposed to be doing).
These tasks all exist on an individual level, but also fit into the larger framework of me actually doing them. I need to keep track and prioritize all these against each other on a given day.
The bit you all saw coming
What would a digital tool for this look like? Of course I’m going to ask. I can’t help but try and solve any kind of problem I’m having this way.
I feel pretty strongly that it’s not traditional tasks management apps. The general pattern for those is to focus on sorting and organizing discrete tasks. The complexity arises not from individual points but from the relationships between them and the often hidden processes in how you actually complete them.
What would a tool that let you actually capture that complexity look like? I think it must be computational. We use programs to gain a foothold into complex systems and orchestrate them all over the place, so why not here? To get concrete, what I’m talking about is a scriptable task manager. It would let you:
- Write code to define tasks from sources
- Write code to define workflows for “consuming” those tasks
- Write code to sequence tasks and workflows through time
One hard part of this is thinking about the computational interface of a task. What are the properties important to it, what are the capabilities it should expose to other programs in the system?
An initial thought is tasks should at least define their dependencies and their dependents, and some time that their “due”2. This doesn’t quite cover it though, as due dates are more probability based than concrete.
As you can probably tell this is a massive rabbit hole. I shall leave further loose pondering for later and dive into the more concrete for now:
Some inspiration
Something close to this, I saw recently is Line Time a pomodoro-esque tool by Yoshiki Schmitz. While it doesn’t capture the scriptable nature of what I’m talking about, it lets you create sequences of text and timers for different tasks. It’s a pretty simple idea but quite empowering. A starting point to get deeper into what I’m guessing at would be a way for workflows to consume tasks.
The whole thing is a fairly standard web-app stack, which makes me think maybe I should start hacking on something as a webapp as well…
Another interesting direction is something like Gatsby’s new “Recipes” feature 3. They basically combine code for setting up code infrastructure and documentation around it, into an executable “recipe”.
I want to write recipes for each of my tasks! Recipes for writing, for tweeting, a whole cookbook for my day to day work. And like any recipe, I should be allowed to deviate from them, to make tweaks here and there as I go along.
-
I’ll be writing a proper “sales pitch” for this book some time in the future, but for now all I’ll say is that this is basically as close to a first principles approach to education and it’s role in society as I’ve ever seen. If that sounds interesting to you, give it a read and let me know what you think. ↩
-
Interesting off shoot here, but what’s the equivalent of double entry book keeping for task management? If every task had to define a task that depended on it and a due date, you would end up with a tree of tasks, some very long term, but all due at some point in the future. ↩
-
This is in the lineage of other literate programming but adds the spin that it’s just React Components instead of code. On face this strikes me as extremely weird, but maybe there’s some sense to it. Things that should be in recipes are things that can be simply done in all the different contexts people might be developing Gatsby apps, and so should probably be declarative in nature. ↩