A simple productivity technique that makes me efficient, reliable, and unshakable
As an engineer, I've often been told that I am very efficient, reliable and great at context switching. The secret behind this is a very simple productivity technique.
As an engineer, I've often been told that I am very efficient, reliable and great at context switching. This has helped me thrive in dynamic, startup-like environments. So… what’s the secret?
It’s actually really simple (but that doesn’t mean it’s easy!) - I religiously use a daily prioritized to-do list. Let’s break it down.
To-do list
To-do lists are the humble first step in anyone’s productivity journey. They are incredibly simple, which is why most people quickly move on to more complicated productivity tools. But I think the simplicity of a to-do list is it’s greatest strength.
I use Pomofocus as my to-do list, but anything works - even paper.
I only write down task names, and I keep them short - just enough so that I know what the task is.
Daily to-do list
My work to-do list only contains items I plan to work on that day. For tasks that I want to work on in the future, I use a separate backlog to-do list, which is equally simple.
When I start my work in the morning, I add two tasks on my to-do list: “plan work for the day” and “catchup”.
First I plan work for the day - I think about what I want to achieve today, and adding each task to the list, no matter how small. The ideas for this come from (1) my backlog to-do list, (2) my mind and (3) leftover task from yesterday.
Then, I catch-up: I check my e-mail and other communications channels, reading every message so that my inbox is at zero. Each message that requires an action goes on the to-do list. I check my calendar for any meetings and add these too.
The resulting to-do list may look something like this:
Plan work for the dayCatchupImplement drag-drop in the table
Answer Jack
Address John’s comment in my video pull-request
Standup
Standup prep
1/1 with manager
1/1 with manager prep
Get unblocked on dashboard update
Dashboard update
If I end up with more tasks than I think I’ll be able to do, I move some of them to the backlog to-do list.
Prioritisation
I work on tasks based on their priority - the highest priority task is first (eat the frog). Pomofocus allows me to drag tasks around, so I place tasks based on their priority from top to bottom - this gives me a clear view of what order I’ll be doing the tasks in.
Sometimes I put lesser priority tasks before higher priority ones - if the lesser priority task is very short, I like to get it out of the way first to gain some momentum (the 2 minute rule).
Religiously using the to-do list
This system works until a coworker sends me a message that they urgently need a task done - a task not on my to-do list. When that happens, I simply add a task to the list and order it based on priority. If that new task ends up on top, I switch the tasks.
This of course displaces other tasks and adds more to my day than I initially planned, risking that I will not get everything done. That’s why prioritization is important - if I fail to finish all my tasks, at least the tasks that I had done have been very important. In fact, in the last 2 years there has very seldom been a day when my to-do list hasn’t changed throughout the day - that’s just the nature of my job.
The leftover tasks from the day are processed on the next day, and are either planned for that day or moved to the backlog to-do list.
Why this works
This system makes me efficient because of the following reasons:
Because everything that’s expected of me for the day is in one central to-do list, my mind can focus solely on executing the tasks, rather than thinking about whether I’ve forgotten something.
Because I religiously use the to-do list by adding each new input into it, I never forget anything. For example, if someone sends me a message, I add a to-do item to reply to them (if I can’t do it immediatelly). This is how I’ve established myself as very reliable amongst my coworkers.
Because I see which tasks I am postponing to fit an urgent task into my day, I can notify the requesters of those tasks that the delivery will be delayed.
Because I always follow the same process when an urgent task interrupts me, I can easily context switch without worrying that I’m leaving something behind.
The verdict
I found this system works very well when working in a very dynamic environment where a new high priority request can come rushing through the door at any minute. This is the kind of environment that I’ve been working in for my entire career.
I think this system is less useful if your work is rigid - for example if you are an indie developer, or your work is planned ahead for you. As always, there is no overall best system, only the best system for each individual.
Whether or not you like this system, I hope that this story inspires you to try out your own productivity system!