Over the last year my role at Buffer has changed from an individual contributor to a technical leadership role. While the amount of time I spend coding and doing architecture hasn’t changed much, the way I go about the tasks has changed significantly. Instead of being focused on a project from start to finish, I move around projects as needed. Sometimes a team will get blocked on a tricky problem or need to make a decision that could impact other teams or request technical mentor-ship to level up their skills. I’ll jump in and provide technical context (when I can) and try to help in a why that will reduce the reliance on myself.
The goal is to teach and automate myself out of a job!
A couple of challenges started to crop up as the scope of projects increased. The first was that the frequency of random questions increased. It is important to note that Buffer is a fully distributed team with no physical office, so the random questions come in the form of private Slack messages. 99% of the questions fell under the important but not urgent category (sometimes they’d find the answer after a bit of searching 🙌). Another challenge was that some teammates thought they couldn’t ask me questions because I wasn’t explicitly on their team. This led to questions being asked when things became urgent, and often required an expensive context switch. While working on cross-team projects, this was making very difficult to get things done. Especially when working on projects that span multiple teams, there is a huge amount of context that needs to be formed in your mind before you start solving the problem. Building context can take hours, only to be lost by a random interruption.
After some reflection I realized both of these problems were related. Cross team projects require a clear communication as well as long periods of Deep Work. Deep Work involves minimizing distraction to stay focused on a cognitively demanding task, which allows you to get the most of your time. If you’re interested in learning more about Deep Work, check out Cal Newport’s Deep Work: Rules for Focused Success in a Distracted World.
For me personally I can context switch within these two boundaries, but crossing the boundary between communication and coding is very difficult. With that realization, combined with the observation that most of the questions I was getting were non-urgent I reorganized my schedule:
I’ve been doing this since mid November and have already noticed some changes:
- Teammates from multiple teams have requested pairing sessions
- The number of non-urgent questions has gone down (almost to 0)
- Urgent communication is much more visible through Slack
- I’ve been able to complete several long standing tasks
It is important to note that deep work time can be interrupted by things that are both urgent and important. Ignoring pager alerts would be bad for everyone! However, treating every question as urgent is likely to do more harm than good. Depending on how you work, this may or may not work for you. I chose to organize my schedule this way to minimize the type of context switches that were holding me back and make time for important things like pairing/mentoring. Being able to organize your own schedule is a wonderful perk of remote work. Figuring out what works for you can be a challenge, and can even change over time. It’s more than setting aside time for work, its also deciding what you’ll do with the time you set aside.