Time Blocking for Developers: How to Achieve Flow, Stop Being “Busy”, & Start Being Productive
“No, I can’t meet with you Monday.”
I find myself saying this a lot. Not because I have a bunch of other meetings scheduled or because I’m taking the day off. (I wish!)
No, this isn’t about that. It’s about achieving “flow”.
What I’ve found is that the key to my personal productivity is to develop a pattern for how I spend my time. It’s to divide my week into “meetings/calls” and “getting sh*t done”.
Sure, sometimes these two types of activities must cross paths. But, by and large, my productivity strategy is dependent upon my ability to parse the two types of work into separate days of the week. So, if you look at my calendar, you can see just that.
Monday, Wednesday, and Friday are for work. It’s when I block time for myself to get things done, work on projects, and do the bulk of my writing.
Tuesdays and Thursdays are almost always jam-packed with calls and meetings.
It’s like a firewall for my time.
If I let those calls and meetings bleed into my productive days, then the entire day goes to hell.
Even though it may seem arbitrary (e.g., “why can’t you just take a couple of calls on Mondays and then spend the rest of the time working?”), it’s definitely not.
I do not have infinite attention.
And I cannot automatically jump from a call back into writing without losing focus and momentum.
Context switching eats into my work time and before I know it, it’s 5 o’clock and I haven’t done a damn thing. This is how many of us feel–and it’s a real reason why many people can never seem to find time to do “real” work.
Busy Kills Productivity
Many of the busiest people I know often feel unproductive and unfulfilled. They float from one meeting to the next, scribbling down notes and discussing strategy. Then, they frantically try to get something done in the 30 minutes before they have to hop on the next call.
They’re busy but not productive.
Often, our work schedules leave us feeling this way. Like we’ve spent 8 hours doing stuff but didn’t actually get anything done.
This is because the bulk of “real work” (e.g., coding, writing, etc.) is done during very specific periods of the day, and those periods often become diluted or nonexistent by inefficient workflows.
Being busy kills our ability to be productive.
It’s estimated that most office workers only have 11 minutes between interruptions. And then it takes a whopping 25 minutes for us to fully return to the state of focus on the task we began before we were distracted.
If you’re keeping score at home, that means that it’s easy to spend an entire day “working” but never actually accomplish any work.
This, of course, rings true for all of us. We have days where we spend all of our time jumping back and forth between tasks, putting out fires, and responding to email. It’s mentally exhausting, but means that we actually get very little productive work done.
And it sucks. Not only does it feel like you wasted an entire day, but your inability to move tasks forward likely cascades to ruin someone else’s productivity. This means the entire company may get less done because you didn’t block your schedule efficiently.
But there’s a solution. It’s peak period of productivity that are strategically planned. This concept is commonly known as flow or deep work.
When we achieve flow, we’re able to accomplish more in just a few hours than we could in an entire day (or week) of distracted, on-again-off-again work.
So, let’s just all get a bit more flow, right?
Achieving Flow at Work
We all want to find flow in our work.
It’s magical. It’s mythical. And it feels euphoric to have such hyperfocus that every distraction seems to completely melt away. But it’s extremely difficult to achieve.
If it takes us 25 minutes to achieve focus, this means we need a minimum of 30 minutes to mentally enter into the meat of productive work. And once we’re there, we can only maintain that level for as long as we go without running into another distraction.
Of course, the nature of work is rarely one of isolation and focus. It’s a smorgasbord of competing tasks, inquiries, and alerts all vying for our attention. And you can’t just sit at your desk with your head down all day, ignoring anything other than the task at hand.
So, what’s the solution?
It’s a form of time management known as time blocking. Or, more specifically, it’s the strategic use of time blocking as a way to manage time and energy to optimize productivity.
Here’s how it works:
- Divide your time into discrete blocks (e.g., 1-3 hour windows)
- Define each block as either a “work” block or a “busy” block
The point is that rather than just having a calendar full of individual tasks and events throughout the day, you develop a pattern of work that allows you to have uninterrupted time to get things done.
So, instead of jumping from a meeting back to 30 minutes of work time and then jumping on a call, you block time onto your calendar that is divided in such a way where similar tasks are grouped together. This helps eliminate distractions and gives you periods to focus on specific tasks that can’t just be squeezed in between emails and phone calls.
Blocking Time to Achieve Flow
If we want to achieve Flow, then we need to give yourselves the right structure in order to accomplish it.
There are a hundred other articles out there that will talk about the need to isolate yourself from distractions like your phone, email, and social media. I’m not even going to wade into that territory, because it should be abundantly obvious. You cannot achieve Flow if you stop working every 3 minutes to check who liked your latest Instagram post. But you’re an adult, so you already know that.
Instead let’s focus on how to optimize the use of time blocking in a strategic way that maximizes the opportunity for for achieving flow.
To begin, it’s important to recognize that no schedule is infallible and your attention span is not infinite. So, most the strategies for optimizing your schedule are actually about understanding and accounting for your own potential shortfalls.
You also don’t work in a vacuum. You probably have a team and a manager, so you need to consider them as part of your plan as well.
In practice, this means developing a schedule that allows you to focus on completing important tasks and also leaves room for “busy work” like emails, meetings, and phone calls.
Optimize for Energy
We all tend to have days or times or the day when we feel most productive or creative.
You want to capitalize on this by trying to block your time in such a way that you have the most energy at the times during the day when you’re trying to be most productive.
So, if you know that you tend to be sleepy after lunch, then try to use that time to take care of things like email. Then, give yourself the afternoon to get back to more serious work.
Give Yourself Downtime
Repeat after me: You cannot do 8 hours of work in an 8 hour day. Period. As tempting as it may be to assume that with the right mindset you can be uberproductive, attempting some Herculean amount of work will likely backfire and mean that you actually end up getting less done.
It doesn’t do anyone any good if your schedule is packed full of back-to-back tasks that you can’t physically or mentally accomplish. Instead, you need breaks–downtime to give your mind a rest, reset your energy, and rediscover your motivation.
You’re human. Act accordingly.
There are many schools of thought on this. One of those most common is the Pomodoro technique, which breaks up work into 25-minute intervals. But, for reasons stated above (i.e., it probably takes you 25+ minutes to get into deep work in the first place), this is probably not ideal for most developers.
A better pattern may be to sync into a 110-minute cycle that involves 90 minutes of work and 20 minutes of break/distraction.
If we assume that an hour for lunch, this pace would allow you to get almost 6 hours of work done in an 8-hour day. But, more importantly, if we assume that it takes 25 minutes per cycle to enter Flow, you would spend over 4 hours per day at peak productivity. You can get a lot done.
Find the Right Rhythm
Everyone has work patterns that work best for them. Some people hate Mondays and other people can never get anything done on Fridays. You likely know this about yourself. And it’s important to take this into account rather than to try to fight it.
For some developers, this may mean breaking up productive stretches with mid-day calls or meetings. For others, it may mean devoting entire days to on-and-off cycles of work and blocking everything else for another day.
Depending on what type of work cycle you find most effective, when you tend to have the most energy, and what external constraints may exist (e.g., stand-up call every morning), you can reverse engineer a weekly cadence.
In my schedule, I know that I have standing calls that already eat into Tuesdays and Thursdays. I also know that I tend to be most productive in the morning and early afternoon.
So, I generally block my time to meet these constraints.
As you can see from my schedule, not only do I separate my days into “Work” and “Busy”, but I identify specific tasks that I hope to accomplish each day and block time for that specific task.
And I also give myself breaks. I know that I can’t crank on an article for 90 minutes, finish it, and move right into the next piece. So, I give myself 20-30 minutes of downtime between these tasks or schedule them around a natural break time like lunch.
Take Time to Schedule
Another important part of this process is taking the time to set, confirm, and maintain your calendar.
If you roll into every Monday with a clean slate and no idea what you’ll be getting done for the next day, then you will immediately enter into “do whatever pops up” mode, which will kill any chance you had at being truly productive.
Take time at the beginning of each week (or the end of the prior week) to look at which tasks and projects you have coming up and create a prioritized schedule based on your available time blocks.
This will also save you from scheduling (or being scheduled into) meetings that interrupt your productive time.
At the end of the day, we have to assume ownership over our time and guard it like our lives depend on it. That means being proactive when it comes to our schedule and using tactics that allow us to be more productive, happier, and more fulfilled.