Many of us try time management techniques and biohacking tricks to get more done in less time.
While these techniques can be effective, they often require a lot of discipline. It can be challenging to stick with over the long haul. Fortunately, we can use a simpler method to achieve the same results without all of the hassles.
All we need is task batching.
Planning your day into blocks of time when you work on similar tasks can help you stay focused and avoid distractions. Consequently, you can get more done in less time and have more free time to relax and enjoy life.
What is task batching, and why should you do it
When you look at your to-do list, you may spot many tasks requiring similar actions. You may have a few tasks saying "Call person A to discuss X," "Call person B to discuss Y." All of those tasks require talking on the phone. Such similarity is quite apparent. However, we can look at task similarities from various angles.
You may have a task requiring writing emails or chat messages. Perhaps, you need to write a few documents or update diagrams in the documentation. Writing emails/chat messages is one task group, updating documentation is another group of similar tasks.
What is the point of finding such similarities?
We can plan to work on multiple similar tasks back-to-back. You write one email and start writing another one as soon as you finish the first one. You don't switch to another task. Don't make a phone call. Don't start coding. Instead, you batch all email writing tasks into one email writing block of time.
During that time, you don't switch to a different activity. You don't do it because context switching breaks the flow and wastes time. You not only need to focus on another task when you decide to break the batch, but you must also spend time preparing your working environment. You don't use IDE to write emails, do you?
How to batch similar tasks together
Grouping tasks by similarity is quite obvious, but we can do even better. You can batch the tasks by some property describing the working environment you need to finish them.
For example, I need uninterrupted time to write this article. I split my writing session using the Pomodoro Technique, but I don't want to get interrupted during a single Pomodoro. That's my working environment requirement. I plan to write three texts about different topics during this writing session. Yet, I still batch them together because all I need is a lack of distractions, my notes, and a text editor.
Similarly, if I have simple tasks such as updating code dependencies, cleaning up a test environment, etc., I batch them and plan to do them on a low-energy day. Those are perfect tasks for the day when I feel that I cannot do anything requiring focus.
We can call it batching by energy level. Of course, we must be careful here. If we batch multiple low-energy tasks with no other common properties, we still have to deal with context switching. However, in the case of low-energy tasks, I don't worry about it. On the days when I am tired and unfocused, I am happy that I can make any progress. That's why I keep a separate low-energy to-do list.
We can also batch tasks that require talking with a specific person. After all, if you have a meeting with the client once a week, it would be great to deal with all issues concerning the client during that meeting.
How to avoid context switching
You may suffer from context switching even if you don't interrupt the task to start working on another one while the first is not finished yet.
Are you familiar with the graphic showing a programmer's calendar with one meeting + buffer no-working time before and after the meeting? Not only meetings cause such waste of time. Every context switching does. Even if your mental state stays the same, you need to open different files. It takes time too.
Task batching is the simplest way to avoid switching between activities requiring focusing on different things or using different tools.
Do whatever is more convenient to you. You can block the time to have a designated time when you focus on one context or sort tasks on your to-do list and work on them one by one. I used to put "coding time" meetings in my work calendar. Fortunately, I no longer have to do it at my current company.
Any method is suitable as long as you can batch the tasks and work on them without interruptions.
Tips for planning your day
When it comes to planning your day, there is no silver bullet. You will have to test what works best for you. Some people advise starting your day with the most critical tasks. I start with a few relatively unimportant ones, but all four take less than 15 minutes in total. I like the dopamine boost from closing four tasks in the morning.
For example, I have two blocks of writing time every day. I write articles (or texts for my clients) in the morning and the evenings. In the mornings, I tend to be more creative. On the other hand, I want to get the stuff done fast in the evening, so I work more quickly.
Similarly, I have two blocks of productive coding time: 9:00-12:00 and 15:00 - 17:00. What about the other 3 hours of the workday? I can spend some of the time eating lunch, but I still have to do something for two and a half hours. Usually, I write documentation, do admin tasks, and learn work-related stuff. I have one problem, though. People tend to schedule meetings during my prime coding time. I don't know how to deal with that yet.
Will my schedule work for you? It won't. There is no one-size-fits-all answer for getting more done in less time. However, by using task batching, you can avoid context switching and work on tasks that require similar skills or tools. You can also try planning your day around activity blocks. Finally, remember that it takes some experimentation to find the best routine for you.