Mitigating Multi-tasking
日本語はこちら。
As you progress in your career, I find your job becomes more and more fragmented resulting in a large time spent "multi-tasking". When you've been working at the same place or are in a senior position, you tend to get pulled into various meetings and your schedule starts to fragment. Worse yet, the left over time between meetings are quickly eaten up by all the chats, mails, random errands that you need to deal with as part of your job.
You might hate it, but it's probably unavoidable so you'll need to deal with it.
This post will be about some techniques I've used to deal with it.
Break up your task
As your calendar is fragmented with all the meetings and tasks, a single task will become fragmented among all the breaks in your schedule. This makes is harder to keep track of what you've done and what you need to do. When you leave your task in the middle, it becomes harder to remember where you were and obviously takes time to get back up to speed.
One way to mitigate this is to break up your tasks beforehand. There's a couple of merits to this:
The scope becomes smaller, making it easier to remember the whole picture.
You have a higher chance of completing the task within the given time.
Also, breaking up your tasks into smaller mini-tasks is good practice in general. It forces you to think about the task more thoroughly beforehand and you have a better chance of giving more accurate estimates.
Write all the tasks down
I try to write out every task I need to do in Trello. The tasks range from the usual "implement A", "fix issue B" to small minor ones like "send a Slack message", "send a calendar invite". I go as far as to write down the broken down sub-tasks (as per the previous section) under each task card.
This really helps in keeping track as you can quickly remember what your next step is and as the sub-task is smaller, it's easier to grasp and continue from where you left off. Also you have a higher chance of completing the task leading you to feel better.
Write your next step and anything you've deferred
As your schedule is fragmented, there's a higher chance that you have to suddenly leave your current task due to other tasks taking priority or are interrupted by phone calls, chats, etc.
I find that it's good practice to write down small steps of what you need to do to complete the task and also anything you've had to defer till later. Once you have that jotted down, it becomes easier for you to come back to the task after any interruptions.
A good example of this in coding is writing down what you have to implement as "comments". When I need to write a chunk of code (e.g. a function or a class), I try to write down the steps I need to implement as comments so that I know exactly what I need to write next when I come back.
Try to batch similar tasks together
This is more cumbersome than the previous ones but I sometimes try to batch similar or related tasks together.
As an example, I try to batch code review tasks together (as in I do it consecutively without switching to other tasks). This helps as once you're in a certain mode of operation (e.g. coding, code review, responding to chats/e-mails), it's much easier to repeat the same process even if it's for a different task. It seems as if the part of the brain used for the mode has already warmed up and using the same part is much easier.
Give a good goal and reward yourself
This one ties into the previous item related to "breaking up your task". Setting a clear-cut goal for each sub-tasks is a good motivator. You can split your task anywhere but if you can, try to set it to something that you can feel like you've accomplished something (e.g. completing a function/class). This leads you to feel like you've accomplished something and gives you a sense of good progress. The best ones I've experienced are ones where you get an explicit feedback like completing a task with a UI or a passing test with a green check mark ✅.
All these are techniques I use to mitigate the negative effects of multi-tasking on a daily basis. I'm sure everyone has their own ways but I can assure you some of the examples above will help you out.