Aug 23, 2022
Table of contents:
Task preemption is when you temporarily stop working on your current task to switch to a different task, with the intention of completing the previous task at a later date. In certain situations, switching from what you are currently working on to work on something else can be more efficient, but it comes at the price of switching costs.
This is a counterintuitive, but important thing to consider if you want to optimise how you work to get the most done.
In this article we’re going to be looking at preemption in task management, how it works, its benefits, drawbacks, and when you should use it.
Task preemption is where you stop what you’re doing, and switch to a different task. The task you switch to should be a better candidate for the thing you are trying to optimise for.
This means you would need to be constantly evaluating all of your tasks, particularly if you are regularly getting new tasks added to your to-do list, or if you are frequently waiting on other people and their replies or contributions would move tasks back onto your task list. When there’s a better candidate task on your to-do list for the given thing you are trying to optimise for, you would need to stop what you were doing, and switch to that new task.
For example, if you were working by “earliest due date” and you’re given a task that is due sooner than the task you are currently working on, you would need to switch to the new task. Or perhaps you are working by “shortest processing time” and you’re given a task that can be completed quicker. You would need to switch to the new task that can be completed more quickly.
If you’re working by weighted importance you would need to calculate the weight of new tasks and then evaluate them against the current task. If the weight was higher, you would need to switch to the new task, otherwise you would continue with the current task.
Scheduling your work is a very difficult problem to solve. Even if you could predict the start and end times of every task you have, it would still be almost impossible to come up with the perfect solution. Task management also has to contend with a certain level of uncertainty. You can’t predict the future, so why try?
Preemption offers a way to evaluate the best solution at any given moment using a more “just-in-time” approach.
The benefit of preemption is that it means you are always working on the best candidate for the given metric you are trying to optimise for. This could be particularly important if your task list is regularly updated by outside forces who expect you to work in the most efficient way possible.
Preemption is also beneficial so you don’t get stuck working on a given task when there’s clearly a better choice. It can be tempting to march on with the current task, even if you hit problems or obstacles. However, sometimes it’s better to park that task and work on something else instead. Preemption is a good way to prevent the “sunk cost” of task management by always looking for a better task to work on at any given moment.
Whilst there are many benefits of preemption, there are some significant drawbacks too. The biggest negative of preemption is that it can come with a significant cost of switching context.
Switching context is not real work, if anything it’s meta work that is likely wasted effort. For example if you needed to set up an environment to work before actually getting started with the task. Switching to a different task that requires a different environment would waste time and effort.
With certain types of tasks, typically creative or complex tasks, there is often a ramp up time that can be significant. This is the period of time it takes you to get up to speed, or into the flow state. For example, say you were sitting down to do creative work, it’s unlikely that you would start producing great work immediately. With any type of creative or complex work there’s a period at the beginning where you need to get into a position to do the work. Switching tasks effectively throws away this ramp up time.
So with all things considered, when should you use preemption?
Firstly, preemption is only really valuable if your workload is unknown. For example if you have a constant stream of new tasks added to your to-do list by other people or outside sources. If your task list is basically the same at the end of the day as it was at the start minus the tasks that you worked on that day, preemption isn’t something that you have to worry about.
Secondly, if those new tasks are potentially required to be done first, preemption might be worth exploring. For example if new tasks should be worked on as a priority because of their due date, how long you expect they would take to complete, or their importance to you particularly if that means you unblock a colleague or you provide work to a client.
Thirdly, if the tasks on your to-do list have low switching costs, preemption might be a good strategy to use. If the switching costs of your tasks are too high, preemption could mean you get less done because of the wasted effort of the switching costs. This alone could be a reason to not use preemption, even if it would be a good fit otherwise.