Reflections on Time Management

The ability to effectively manage our time as software engineers can feel like a superpower. In this post, I am going to share my current time management strategy and go into a bit of depth on how I think it has benefited me throughout my career. My hope is to provide some insight into ideas you can try to improve your time management or to reinforce strategies that you are already implementing. Let's dive in!

Aaron Bos | Thursday, June 30, 2022

Time: The Universal Constraint

If you've made it this far (I appreciate you), you may be wondering why I'm blogging about time management. My answer to that would be, that I honestly believe it is one of the most important skills to have while also continuously looking to improve upon it. In my experience being able to effectively manage time both at work and personally has been the biggest multiplier to my growth and learning.

The main reason why I believe in the importance of time management is that everyone is constrained by the same number of hours in the day. There are 24 hours in a day. For the average person, six to eight hours are spent sleeping and eight hours are spent working. That leaves us with eight to ten hours left to do as we see fit. It seems like a lot, right? Until we factor in spending time with family and friends, eating, exercising, reading, social media, cleaning, binging the latest Netflix series, and even "gray matter time" (the time spent transitioning from one thing to the next). When all the dust has settled we're lucky to be left with a couple of hours. Choosing what to do with that time and having the ability to use it wisely can make a substantial difference in the long run.

Before moving on to the next section I would like to acknowledge that having the freedom to choose what I do in my free time is a privilege that not everyone has the liberty of enjoying. This post isn't meant to belittle or disparage anyone who is in a situation where the demands on their time are vital to their personal well-being or the well-being of others. If you're not able to put some of the strategies discussed into practice right away that is absolutely fine. I hope this post can show that even big things can start small and time spent compounds like interest when applied intentionally. Keep the ideas in the back of your mind and if the opportunity presents itself you'll have some strategies to help kickstart your improvement.

My Current Strategy

In this section, we'll be going over my current time management strategy, which has evolved over time with quite a bit of trial and error. We'll be focusing on how I manage my time during the work day. I think that strategy will be most applicable to anyone reading because it is quite general. My strategy for outside of work may be useful in bits and pieces, but holistically it is most likely too specific to my personal schedule.

The strategy that I currently employ can be broken down into a handful of sections. Each plays a part in the overall strategy.

  1. Leverage a calendar
  2. Schedule recurring events
  3. Schedule blocks of time to complete work
  4. Be willing to adjust

We'll take the time to touch on each of these components separately starting with leveraging a calendar.

Leveraging a Calendar

This time management component may seem obvious, but it feels worth mentioning. For the longest time in my career, my calendar was simply used by myself and others to schedule meetings based on availability. I never really thought of it as a tool to "own my time". Over a couple of years, I've shifted my perception of a calendar from being mainly for meetings to a tool that allows me to break my day up into meaningful sections. Each section can be handled and accomplished in isolation from others. Once I made this mental shift the next logical step for me was to cut out repetitiveness by accounting for things that I want to do every day automatically. This is where recurring events come into play.

Schedule Recurring Events

Recurring events are a component of my time management strategy that aligns well with developing good habits. My goal is to keep the number of recurring events that I have on my calendar at any given time to less than 5. I think any more than that risks setting myself up for failure because days can be hectic and constantly ignoring recurring events due to schedule changes makes the recurring event mostly meaningless. I also try to keep recurring events short-lived. I view them as things that are important, but not time-consuming.

For example, currently, my calendar has three daily recurring events. The first is a 15-min period right at the beginning of the day for planning. We'll actually touch on what is done during this time in a later section. The second event is the time immediately after planning for code reviews. I find code reviews to be a great way to start my day and get into the mindset of writing code. Finally, I have a recurring event at the end of the day for wrapping up my day. This may include taking notes on happenings that day or getting some things ready for the following day.

There are surely other things that I do on a daily basis, but I don't always wish to do them at the same time. For example, I always take 30-min to eat lunch, but sometimes that might be at 11:30 and others at 1:45. I'd prefer to schedule that time on a day-by-day basis, which brings us to the next section about scheduling blocks of our own time.

Schedule Blocks of Time

In the last section, I mentioned that I have a recurring event on my calendar at the beginning of each day for planning out the things I need to accomplish that day. Planning is great, but there needs to be some output from the planning. In my case, that output is specific blocks of time for focusing on things I need to get done in a given day. I have to give a shout-out to Cal Newport's book Deep Work on the daily planning and time blocking strategy. Deep Work has a ton of great information in it on how to focus and make the most of your time. If you've made it this far in this post, I think you'll definitely benefit from reading it.

When it comes to scheduling blocks of time to accomplish tasks, I think it's important to be specific when possible. At the same time, I don't get hung up on not being able to provide a lot of detail to a scheduled block during planning. As long as I know what I want to be working on at that time, I can fill in some of the gaps later. My main goal with scheduling this time is to give myself timeboxes to get things done without having to worry about multitasking or thinking about other things I need to do. I don't have to think about other things once I've added the time blocks to my schedule, I can focus on the task at hand.

Adjust Schedule Accordingly

So far we touched on a few core components of my time management strategy for work. This final component dealing with flexibility is one that I believe is the key to sustaining any time management strategy over a period of time. Everyone knows that work can get crazy sometimes. Unexpected meetings show up on calendars, lose track of time focusing on a task, juggling many Slack conversations, the list of unexpected interruptions goes on and on. So how do we deal with these interruptions? We need to be flexible and adjust our schedule accordingly.

When I say "adjust accordingly" my intention is that we update our schedule to accommodate the unexpected with the least possible disruption to the existing time blocks. There have been times when I've had a few interruptions and I'm ready to just throw away my whole afternoon plan. While this may be tempting, I've found that just rolling with the punches and making minor adjustments to account for interruptions makes it easy to adjust, but also allows us to get back on track once the interruption is finished.

Wrapping Up

Overall I've spent a couple of years working on this strategy and testing out different ideas. Some have worked well and some have crashed and burned (ie to-do lists). While I hope this gives you some inspiration on new habits or confirmation on existing ones, I'm sure it won't be a one size fits all solution for everyone. As I mentioned earlier in this post, everyone has different schedules and time commitments to contend with. If you have any ideas to throw my way with your approach to time management I'd love to hear them!

As always thank you for taking the time to read this blog post!