Working remotely with a global team means I have a lot of flexibility with the structure of my day. It also means I have communication coming from multiple different directions, and from different time zones. How do I organize this, stay productive, and stay sane?
While I enjoy the flexibility, I am also a creature of habit. My routine evolves as I learn more about the way I work, but each day follows a similar pattern. If something comes up, I’m happy and thankful I can adjust for it, however on a “normal day” my schedule is more or less the same. It starts to trigger my anxiety if I have too many days away from routine.
Starting my day
When it comes to working remotely, people often talk about making sure they have a hard stop at the end of the work day to separate personal and work time. I also like to make sure I have a clear start time. Otherwise, I’m the person who might sleep in way too late, even if I go to bed early. I have two things that help me with this.
- My partner works an office job with comparatively strict hours. We’ve established a pattern where we always get up at the same time in the morning, no matter how much I whine about wanting to sleep longer. I enjoy the time we spend together in the morning, and seeing him off to work. And the minute he walks out the door is when my work day starts. I make my coffee or tea, and head to my desk. This means I’m almost always online between 8:30 and 9:00.
- I also schedule most of my meetings for the morning. This happens naturally having many of my meetings with teammates in Europe while I’m in the United States, but it also really helps with establishing the “hard start” of my day.
My mornings are generally focused on communication and planning. The very first things I do are go over what I did the day before, make a to do list for the day, and catch up on messages. Most mornings I also have a sync with the Android team to catch up on what we’ve been working on the past 24 hours, discuss any issues, and make plans.
While reading through messages, I also use them as a task list for later in the day in addition to the lists I write in my notebook. I have many of my notifications from the various tools we use at Buffer to send as an email. When initially opening messages, I don’t always take action first thing in the morning if it will take much time or thought. If it’s a long email I want to take my time reading and/or responding to, I’ll mark it as unread and move onto the next one. If it’s something I plan on waiting on until another day, I’ll use the Gmail “Snooze” feature to hide it until I think I will get to it. This way, at the end of my morning everything in my inbox is a task to be accomplished, whether it’s a GitHub notification about a PR I need to look at, or an announcement I want to take time reading. Most unimportant to me things I have filtered out so they aren’t in my main inbox, and can look at them as I have the time. This speeds up this step in the morning.
I follow a similar pattern catching up on Slack messages. If there is a conversation I want to come back to to read more closely, or take some time to respond to, I’ll use the “Remind me about this” feature and schedule it for when I think I’ll get to it. If I don’t look at it right away, it has a nice slackbot notification that will hang around as a task for me.
Now I have task lists in multiple different places. How do I manage that? They each take a slightly different role.
My email has notifications and messages. I have the notifications automatically labeled and grouped to make them more manageable. I have GitHub notifications together, Jira together, and other messages together. This essentially gives me three to dos, with sub tasks under each one. I’ll have items in my master to do list in my notebook for taking care of the GitHub and Jira groupings. The other messages will be left to look at in between tasks.
The messages in Slack will be another thing left for in between tasks. This might be while I’m waiting for Gradle to build, or in a gap of time before a meeting.
My notebook is my master list. It will have notes about tasks I’m working on, to do lists for the day, and longer term goals. I generally have one page for the day, then possibly other pages if I’m taking notes while working through things. Items or goals that are likely to be there for multiple days I put on post its that I can move from one day to the next without rewriting.
Batching my meetings in the morning helps with a number of things. The first is that it is often the most convenient for everyone as most on my team are online during my mornings. By scheduling things then, we can accommodate for the time differences.
The other reason I like grouping meetings in the morning is it allows for uninterrupted afternoons where I can get into a deeper flow.
I also try to get as much communication as I can in the mornings, for very similar reasons as the meetings. This is especially the case for time zones if a quicker answer is helpful. In the space between the start of my day and when I stop for lunch, I try to respond to what I can, and ask any questions I need answers to. This is important if I need clarification on a ticket I plan to work on that day, or if I have a question about a PR review. This gives the responder time to see it before they log off if they are only online during my mornings.
Filling time until lunch
Once I finish catching up there, I start moving closer into code-land. Before I go to lunch I like to get as much as reasonable taken care of in my GitHub bucket of tasks. This includes reviewing pull requests, and responding to comments on mine either by changing the code or providing an explanation. Sometimes this time also includes responding to questions on Jira tickets.
I eat a light breakfast, and a pretty early lunch around 11:00, so there is usually very little time to start other things, but on a light day, I might also start working on a coding task before I step away. This is usually continuing on something I was already working on, or doing the preliminary set up and research for whatever new things I’m starting.
I always almost always eat my lunches at home, but I make sure to always take that time away from my home office. I feel like that separation is important for a break in the afternoon. I take the time to prepare my lunch, and sit down to enjoy it while catching up on the news.
I try to take a full hour for lunch break, but only take about 20 minutes to eat. There’s a couple things I do with the rest of that time. One is to take a short nap. If you didn’t catch on from my talk about starting my day, I enjoy sleeping. You might even call it a hobby.
What I’ve recently been trying to do with that time instead is to go on a walk. Not having a commute to an office every day is great, but it makes it really hard to get out. We have a great park that I like walking to, and it’s healthy for me to get out and moving. It’s hard to keep this up as it gets colder outside.
My long afternoons feel the most productive. The communication, planning, and small tasks I get done in the morning are important, but there is a sense of accomplishment from submitting deliverable code. This time is important for flow. I often close Slack and other messengers during this time to avoid distractions. If someone DMs me something urgent, I’ll get the notification through email or on my phone.
I guess this is the main part of my job description. While I do some programming in the morning before lunch, the afternoon is when I get the bulk of it done. I’m more focused and ready to work through problems. I’ll be finishing things from other days, picking up Jira tasks, working on long time goals, fixing bugs, etc. While the morning my browser is where I spend most my time, Android Studio gets all the attention now. With my cat in my lap, I have my git commands ready.
In between tasks and during Gradle builds, I’ll pick up some unrelated smaller things. This might be messages I snoozed in the morning, or reading a blog post. The timing on when I take breaks and what I do in them is a bit less structured. They usually happen naturally between Jira tickets, or when I just need to look away from the code. I’ll decide then if I want to pick up reading a blog I have saved in Pocket to read, or check off one of my other tasks. Because I take such an early lunch, at least one of these breaks usually includes a snack.
I do some reading between coding tasks, but you can only fit in so much in that time. I try not to start anything new too close to the end of my day. When I finish a task and don’t have enough time left in the day to significantly work on a new one, I’ll go into learning mode. This could be experimenting with something new, catching up on blog posts, or reading a book. I’m currently working on reading Refactoring by Martin Fowler.
Ending my day
Working from home it can sometimes be hard to define the end of your day, and unplug from work. For me, work is over when my partner gets home from his job. When he walks in, I can finish my thought, but then I walk away. If I do anything on my computer after that, it’s non work related, and I move to a room other than the office. That event is the signal to the end of my work day.
This all is representative of a typical day for me. There are plenty of things that cause it to change. I also enjoy taking some days to work from a coffee shop or on the road. I use this as an ever evolving guide to structuring my work day.
How do you structure your day? Do you have any tips that help you out? I’m always improving my routine and I would love to hear what you have to say!
Huge thanks to Nicole for the help reading through and editing this post 🤗