For most people, task scheduling is throwing stuff onto a calendar according to some rules, (mostly: don’t schedule over lunch,) and filling the calendar as well as possible. When all of your work is time dependent, like prescheduled calls or meetings all day, this is a fine solution; the calendar sorts things by time, and your work is sorted by time. Great! But what wait a second: very few people have that kind of job. So how is everyone else supposed to schedule? We think the calendar is a bad solution, and want to introduce the DAG
Calendars are bad
The calendar is actually a very misleading tool for work that is not time-blocked. It is easy to throw a 1 hour call in from 3 to 4, but when does “add the login feature” fit on the calendar? How long will it even take? Usually the answer is ¯_(ツ)_/¯, which makes scheduling anything else on the calendar misleading or impossible. You *could* throw the feature addition in from 9-11AM, but the 11-12 slot has problems:
- If you put something there and the feature takes too long, suddenly you feel “behind”.
- If you put something there and the feature goes faster than expected, your calendar doesn’t show the real time you had. You can either spend the time moving everything in your calendar, or leave the misrepresentation.
- If you don’t put anything after that feature, your planning tool isn’t actually showing your plan.
- If you just roll everything you intend to do today into a “today” bucket, you lose specificity about relative size of tasks and are more likely to guess wrong about how much you can do in a day.
All of these problems get compounded when your coworker, manager, or spouse wants to have an idea of what you are doing, and when it will be done. In the worst case, your manager asks you to estimate times for everything (with something like Jira) and then browbeats or punishes you when work goes differently than your fictional estimates. This is also a great way for managers to “encourage” you to stay late/on weekends “to finish what you said you would do”.
So what is a better tool?
DAGs are great
The scheduling we are talking about has only a few features: there is a 1+ number of things to do, and some of them belong before others. (You can’t do “deliver supplies” before “pick up supplies”, or “make deck based on Kim’s analysis” before “get data to Kim for analysis”.) There is a name for this kind of structure: the directed acyclic graph. That is mostly jargon from math, but it has the same properties we just described:
- Every element is a block with lines to show relationships (a graph)
- There is an ordering to before-ness or after-ness of items (directed)
- If A is before B is before C, then C cannot be before A (acyclic)
Instead of imposing arbitrary times on work that doesn’t have natural start/stop times, a DAG lets you do the first things first, noting how long they actually take, and move on to the next things when you are able to do them. No more adjusting your fake intial estimates to match reality; just doing work in the right order, and making note of what happened.
So how do I use one?
The easiest way is to buy a bunch of index cards (~$5 for 100) or the ever-wonderful full-size sticky notes and write down all the things you have to do. Sort them in order of execution. (I find it easiest to sort them on a table with first steps close to me and downstream tasks behind. You might find that some tasks have more than one “before” or “after” element. For example, “Go to shopping center” unlocks “buy some timber” and “buy some cold drinks”, and together those unlock “Go home and build a sawhorse”; this would look like a diamond pattern with “go shop” near me.) After sorting, keep them in your pocket and continually keep doing the top card.
Whenever you finish a task, write down when you start and finish each card for future reference if you like. (It can help to have some blanks to write surprise work on, for example if your boss just “drops in” and you lose an hour in an unscheduled meeting).
This method is great for reducing the costs of multitasking, not perfect; it is hard to share the cards, and if you want metrics or visuals on your work you need to enter all the data by hand. But it would definitely be convenient if someone was building a digital version, right?