If we’re going to build a Machine for getting shit done, it makes sense to spend a little effort thinking about requirements. What parts does the problem have, and how do the relationships between those parts constrain the solution space?
The act of getting shit done can be divided into two distinct phases.
First, there is figuring out just what shit to do, and in what order. This is task management. There are lots of different task management methodologies and tools, but in the end the whole point of task management is to identify what shit you should be doing now (or at least pretty soon) without losing track of all the shit you need to do later.
Then there is actually getting shit done. Slice your calendar finely enough and you will find that you rarely do a lot of shit at once, at least not very effectively. So if you have a lot of shit to do and not much time to do it in, you coordinate the process using time management.
The following workflow illustrates the relationship between task management and time management:
Task and time management are often deeply coupled. For example, many people keep a task list on their calendars. If I am an enthusiastic time manager and spend a lot of time looking at my calendar, this task management strategy may work for me. But if I am bad at time management and rarely use my calendar, then my task list will not get much attention and my task management strategy will probably fail.
As it happens, I am an enthusiastic task manager, but I am bad at time management. Recognizing this, I need the Machine to be robust with respect to the relationship between task management and time management. In other words, I need my incompetence at one to have little or no effect on my performance of the other. And that means that I should analyze just how sensitive each element of the Machine is to the other, and set requirements that mitigate these sensitivities where possible.
According to the diagram above, task management is the input to time management. What could bad task management do to my time management?
Task management is supposed to tell me what shit to do and in which order. So there are really only two things that could go wrong at the output of my task management system:
- It might tell me to do the wrong shit (or not to do shit I really should do).
- It might tell me to do the right shit but in the wrong order.
The first case won’t trouble my time management system at all. I will cheerfully succeed at doing the wrong shit, right on time.
The second case might load my time management system, in that if I do my shit in the wrong order I may hit a road block and have to go back and do some other prerequisite shit while continuing to keep track of the shit I had to interrupt. But that’s not the same thing as breaking my time management system. I can still use it to get shit done; I just wind up with more shit to do and more shit to keep track of.
So time management systems in general just aren’t all that sensitive to bad task management. A reasonably effective time management system will just eat whatever shit I put in front of it, whether it’s the right shit or not. No special requirements here.
What about the opposite direction?
Task management carries its own to-do list. Managing tasks means doing some specific shit… someplace, at some time, and to the exclusion of most other shit. So whatever my task management system looks like, the act of running it will live in the province of time management.
What if running my task management system requires me to spend large blocks of time doing complicated shit? This will eat up much of the time available to be managed. Since there is always pressure to do real shit–meaning, shit that isn’t task management navel-gazing–this will lead in the real world to neglect of my task management system, which will soon fade into irrelevance, and I will find myself figuring out what shit to do either differently or not at all.
So a task management system can be quite sensitive to time management: if I am spending all my quality time doing task management, I won’t get much real shit done and my task management system will eventually collapse under its own weight.
This suggests the following requirements of a task management system:
- Task management activities should be small. I should be able to complete one, and move the ball materially forward, any time I have a moment to spare. I still can schedule large blocks of time to focus on task management, but I shouldn’t have to.
- Task management activities should be independent. I should be able to complete them in whatever order they present themselves. That way the little time I do spend on task management is spent getting it done instead of figuring out how to do it.
If I can meet these requirements, then my task management system will place a minimal load on my time management system. This keeps my task management system relevant and viable, and leaves a lot more time for actually getting shit done.