Before we dive in, I want to share a story of two developers. Made up characters, but a very real storyline.
Let’s use “Diego” and “Melissa” as an example.
Diego is a high output software engineer at a growing startup.
As the startup is still very small, Diego finds himself wearing many hats.
In addition to his normal developer duties of writing and reviewing code, Diego spends a lot of time helping the support team, interviewing candidates, sitting in on design review, writing up and grooming tickets, and he’s always the guy you can count on to ask for help anytime.
Diego is a busy man!
And it’s starting to ware on him. Diego feels overwhelmed and exhausted, and feels as if he doesn’t have the time or energy to do any of his old hobbies he used to enjoy before joining the startup.
He is running on fumes or an absurd amount of caffeine, which is affecting his sleep. He comes to work with less and less excitement and new ideas each day.
Now let’s look at Melissa.
Like Diego, Melissa also works at a small but growing startup, and wears many hats.
Melissa is a busy woman!
And she loves it!
Melissa doesn’t feel overwhelmed and exhausted, and has plenty of time and energy to engage in hobbies and other activities.
She’s not running on fumes or an absurd amount of caffeine.
Get’s between 7-8 hours of sleep per night, and feel no where near burn out.
She comes to work excited and fresh with ideas.
What’s the difference between Diego and Melissa?
Diego “reacts” to work and doesn’t have a solid way of staying organised.
He’s heads down on a task, when a peer pings him asking if they can pair “really quickly” on a bug. Diego drops what he’s doing, and helps.
Diego is doing code review, when he gets a message from the marketing team asking when a new feature will ship and if he can give 2 sentence summary outlining it. Diego is already in the middle of helping someone, so he adds this request to one of his 7 places he keeps a todo list… forgets about it… then rushes to do it 4 hours later when the marketing team asks about it again..
Although Diego is a high output employee, as someone who reacts to his work and not super organised, Diego is finding the need to spend an hour or two extra each day to find quiet time to finish his own priority work.
Let’s look at Melissa now.
Melissa is heads down on a task, when a peer pings her asking if they can pair “really quickly” on a bug.. Does she help them right away? Absolute not. Her blocked out focus time is sacred to her. She responds with a “Sure! Book an open spot on my calendar after 3pm and I’ll be happy to help”
One more example:
Melissa is doing code review, when she gets a message from the marketing team asking when a new feature will ship and if he can give 2 sentence summary outlining it. Melissa is already in the middle of helping someone, so she adds it to her “distraction bucket”. 30 minutes later once she’s finished helping her peer, she goes back to her bucket board (the single source of truth for all her tasks), see’s the reminder and quickly knocks it out.
“Bucket board”, “Distraction bucket”, “huh”?
I’ll come back to these a bit later, but the important thing to know here in the difference between Diego and Melissa, is that Melissa understands that you can’t do everything at once, and that multi-tasking is complete joke. But with a key organisation tactic, she’s able to have a better relationship with time to be able to get more of it back, accomplish and do more than she ever thought she could..
And that “tactic”, or rather organisational pattern, is exactly what I’ll be diving into today..
But what If I’m not a developer? Will this help me?
Geared towards developers, team leads, and managers, or really anyone else who…
- Find themselves “reacting” to their work
- Not feeling in control of their day
- Your work always seems to pile up at the last minute
- Often working down to the wire (where you’ve had plenty of time to get what you need to done)
- You find yourself making excuses that you don’t have time
- You’ve felt impacted on your time management after transitioning from an in-person at the office to remote work because of COVID
- Your a time-geek like myself, and love finding new ways to optimise your day
Who am I to talk about this subject?
- Before Hopin, I did a lot of freelance development work on top of a full-time mostly remote job
- A typical me:
- 1 to 2 freelance gigs per month
- Finish my IC work at my day job generally within the first 4 hours of my day
- Spend time learning how to fly airplanes
- Taking Korean lessons to better communicate with my wife’s family
- Mentoring several junior developers for a few hours each week
- Still finding time to travel and explore with my wife
Jump to today
- Myself and everyone on our team are working super hard to build the #1 virtual events platform in the world
- Korean lessons still going strong 2 times a week
- Taking on monthly house renovation projects
- Put out a weekly newsletter and YouTube series
- Still find time to travel and explore with my wife
Reacting to your work
People that react to their work, doesn’t mean that they aren’t good at their job. Remember Diego, he’s a rock star, high output developer. He just doesn’t have the tools to deal with these types distractions.
Now I keep mentioning “distractions”..
If Dave from Marketing reaches out needing a one-off summary of a feature we are about to ship.. surely that can’t be a distraction right? I mean it’s something that’s really needed so we can better communicate what we are building to our customers?
In my mind.. anything that is not my single most, immediate priority item is a distraction. If I’m in the middle of something I’ve blocked out time to work on.. and something comes up that isn’t the world on fire.. it’s going in my distraction bucket..
Now this is the second or third time you’ve heard me mention bucket… So I should probably explain.. as “Bucketing” is the main organisation tool I use.
Throughout the last few years, I’ve found regardless of work or personal life. I always found myself breaking down time into 6 categories..
- Distraction Time
- Focus Time
- Preparation Time
- Delegation Time
- Follow Up Time
- Check In Time
Let me give a brief definition to each.
Time spent on anything needed before actual work can get done or decision can be made. This is time spent on getting your ducks in a row.
Is there anything on your plate that you can offload? Do you have to be in all those meetings on your calendar? Can someone else run the meeting?This is time used to figure out what can and needs to be delegated.
Roll up your sleeves and get to work. This is time spent heads down, in the zone.
Follow up / Check In Time
These time buckets are pretty similar. Follow up work is when the ball is in your court. You are the blocker and need to come back with information for someone else. Check in work is for spending time gathering any information that you need. Getting verse giving a status update.
Which you’re already familiar with by now
Putting Time Buckets into Action
Now this will vary between IC roles verse leadership or managerial roles. So I’ll give examples for both.
- In an IC role, it’s much simpler to put time buckets into action, so I’ll start with that example first.
- Perfect day for an IC Developer:
- 9:00 - 9:15am: team standup
- 9:15 am - 12pm: Work on “Feature A”
- 12 - 1pm: Lunch break
- 1pm - 2pm: Some sort of team meeting / activity
- 2pm - 5pm: Wrap up work on “Feature A”, put up a PR, and call it day
But we all know perfect doesn’t really exist, and those time slots are filled with distractions, from peers pinging your to pair on a bug, getting asked to do review some code, an impromptu conversation at the water cooler, Instagram, etc.
For an IC, the primary time buckets you’ll use are Focus and Distraction.
- Blocked time doesn’t mean anything if it isn’t respected.
- You need to defend those blocks with your life
- Put them on your work calendar as “Christian’s focus time”, or “Christian Focus - NO MEETINGS”
- Let people know that is not a time to be messed with
During those hours it’s entirely up to you how you spend it. But the point is, you now own that time.
Now lets look at distraction time for an IC
- We all know that your perfectly planned day, doesn’t always go to plan… so it’s important we plan for it
- With that, the question you’ll need to ask yourself is “When are the best times for me to be distracted?”
Maybe 30 minutes in the morning , immediately after lunch, or the last hour of your day. Whatever the case is, block that time out in your Distraction bucket.
Distraction Bucket in Practice
Again, time bucketing means nothing if they aren’t respected. So how does a distraction bucket work in practice? Now I don’t put an allocated time slot on my work calendar and call it “Distract Christian Time”… but since my focus time is, any open slot at that point is fair game.
Say, Jeff, my team mate reaches out when I’m in the middle of my focus time asking to pair on some code, or to walk him through some new architecture… My response in Slack or an email, simple: “Sure! Can you add it to my calendar”
They’ll see only a select few open spots… that all just so happen to be very convenient times for me to be “distracted”..
And for an IC type of worker, those two buckets are likely most of what you’ll need. You can still take advantage of some of the others like Check-In / Follow up, likely those will be used more as you grow into a leadership role, then adding those other buckets you’ll def need.
With that being said, let’s see what it looks like for me now as an Engineering manager, and what tools I use to manage this:
Of course I am naturally pretty glued to my calendar to know what meetings I need to attend in a given day.
Each morning always starts in my prep time bucket. I’m using this time to make sure I’ve got everything in place needed for grooming sessions, 1 on 1’s, product discussions, a bit of coding.. whatever it may be.. this is basically me going through my to-do list..
My day now does consist of lots of meetings, but I still need to spend time in heads down mode.
But Distractions don’t stop.
I still get pinged all the time.. even more than I did than when I was an IC
The difference now is how I feed and fill my time buckets.
And it really just depends on who the message is coming from..
If it’s something I get pinged in on Slack, that is not organised or coming from my top priority channels.. I leave it to the end of the day and use that time out of my distraction bucket..
Now if it comes from one of my direct reports.. that’s part of my job is to help and unblock.. so I’ll immediately stop and help..
However… I still have focus hours where I need to minimise context switching…
So how do I manage this?
I block out 2, four hour blocks per week. All at the end of my day. Luckily most of my direct reports are in Europe, so this timing works out.
If timezones aren’t helping you out, then you may need to split up your focus periods into smaller chunks but more frequently.
Maybe 4, 2 hour periods…
So what happens during this time?
Again.. unless it’s an oh-shit moment.. I’m not getting the notification and it’s going to have to wait…
If I am in the middle of non-focused work, I may respond in Slack with a quick eye emoji response that I’ve seen and recognise the tag, but literally I’ll just copy the link from Slack, and put it into my “needs triage / distractions bucket”…
Basically throughout my day now, I’m having intake, and triaging it to the right bucket.
During my focus time, depending on what the work is.. I’m tackling those items.
Tools I use
As an IC, I used google calendar with my iCalendar. iCalendar was primarily used as my “to do” list to mark down the blocks of “when” I will spend that time.
As a manager, I don’t always get the luxury of deciding when I’m going to get to spend time doing said task. My time is heavily dictated and influenced by my team. But I still don’t want to lose track of what I’m doing..
So for this, a Kanban style board is really helpful..
It’s not set to a specific time of when and where I’ll do it. I just look at the board and the status’ to better know what needs my current attention.
Really the 4 hour focus blocks are for me to really step back, have a think, and take action on anything that requires a greater attention span of more than 10 - 20 minutes.
… I also manage and update this board after any interaction I have. The status of these items change.
… Say in my follow up board, I’ve got a task to “Figure out Amplitude plan needed for our current usage”… this is something I need to spend time so my boss’ know how much budget I need… Once I do this, and report back to say wait for an approval.. this moves to my check-in (balls in your court) board.
This board also helps serve as a really good outline for my daily standups.. What have I have been working on, is there anything I need? Anything I am about to do? It’s all right there. I don’t even have to think about it..
So going back to what I was talking about “Reacting” ..
As a manager, in a way you are reacting, but you can still take control over your day.