Defrag your Calendar

Time is a one of your most valuable assets. As engineers grow with their skills and past contributions, they get invited to participate in more meetings within their day. These meetings get scheduled in time slots that show as available on their calendar, or sometimes even when they are already shown as busy - posing as a conflict. This can commonly result in their day being broken down into many different meetings, with small windows of free time on their schedule. These windows of “free time” are then utilized as their primary time to work on the problems they were planning to solve for that day. This can often result in frustration, where people are do not feel like they are getting enough time to work on their assigned problems, but rather attending meetings that may or may not relate to their problem of interest.

In this blog post, I will share what I consider calendar fragmentation, why this is dangerous for engineers, and ways you can combat it.

I like to use the term calendar fragmentation, as it can quickly remind engineers of the problem of disk fragmentation, where files are not optimally stored on contiguous blocks of storage. The effects of disk fragmentation can result in the system taking more time to read files as it must travel across additional areas of the disk for retrieval. A solution to this problem is condensing this storage to contiguous blocks of storage, known as “defragging your hard drive.” I see this happening similarly with our calendars, which can cause fragmentation of when we have available amount of time to focus on a specific problem we are looking to solve.

Defrag your Calendar

Here are a few conditions of this issue and why this is dangerous, especially for engineers.

Your day’s budget of available time can be greatly reduced through a series of meetings. When you receive these meeting requests, they are generally presenting a problem that the organizer has encountered and they are wanting to meet with you to discuss. Normally, you are invited since it relates to you from past involvement or experience of the subject matter. We all generally want to help, especially when it is posed as a problem that needs solving and you have some interest in the topic. However, these meetings are scheduled based on the organizer’s choice on the best time to meet for the group of attendees. This is generally established on what is showing as “free” on the majority of the invitee’s calendars, and sometimes it even conflicts with another meeting on your schedule, posing as a conflict. As a result, there is a burden placed upon you to try to make the meeting, especially if you show as “free” on your calendar during this time. You will normally oblige to the meeting request, which can eat into your schedule based on what appeared to be the best time of the group, but perhaps not ideal for yours.

Software engineers are an example of knowledge workers, as the primary function of our job is to think on solving problems involving software. Problem solving for many of these software issues can require a significant amount of time based on their level of complexity. However, the amount of time that is required is also dependent on the quality of the time. For example, if we were to simply state it would take three hours to solve a problem, and we would be allocated three hours of focus time (ex. a quite room from distractions), would you consider having one three hour block of time or a series of smaller blocks of times (ex. one hour and four 30 minute blocks of time which have small interruptions between them)? Generally, people would prefer having a single three hour block of time versus having a series of smaller blocks of time that are spread out. This comic (by Jason Heeris) I think easily summarizes the need of having larger contiguous blocks of time to focus for an engineer:

https://heeris.id.au/trinkets/ProgrammerInterrupted.png

While it is expected that you will many times have breaks during these periods of working on a problem, there is a known tax of getting into a problem space. Once you are into that problem space and are interrupted to go do something else (ex. go to another meeting), you have to pay a similar tax again to continue working on that problem. Therefore, it is generally optimal to avoid how many times you are interrupted once you are entering into that problem space. Hence, you value contiguous blocks of time, just like your old magnetic hard drive for optimally reading data 😄.

Note: It is common with large contiguous blocks of time to take small breaks to allow your mind to briefly wander if you find you are stuck on a problem. These small breaks should be controlled by you to dictate when they are needed, not by external forces which lack association to your problem solving process.

Here are some ways I have found to combat this issue of calendar fragmentation. I have applied this approach for several years and have noticed others do the same. I hope by sharing these approaches, it can help you and possibly invite feedback from others on additional tactics to apply.

I try to keep my calendar as free as possible, but also accurate on when I can actually be available to meet. Meaning, I schedule time on my calendar to work on problems that are currently on my plate. I previously wouldn’t have bothered blocking off time on my calendar to just work on a problem, but I found the first step in controlling my schedule required that I was the primary author of my schedule. When I started implementing this, I found that I was still getting a decent amount of calendar invites which would be scheduled during the time I already had blocked off (posing as a conflict). Often, I would just go to the meeting that was schedule, and surrender the needed time I had reserved for the other problem. While I received advice from others that I should decline those meeting requests, I found that the organizer would often have to follow-up on when to reschedule. This resulted in them further evaluating my schedule, trying to find another close time which could be negotiated into their desired schedule. I used to block off periods of problem solving as “Dev” on my schedule, and when I would decline a meeting because it conflicted, I would then be asked in a chat with the organizer if I could make an alternative time that would be again during a “Dev” meeting. Therefore, they would see this “Dev” time block and then would be questioning if I could miss it. They could see that it was only a meeting on my calendar (no one else invited), which then seemed less important. Others would tell me to be more explicit on naming these blocks of time on my schedule, like “Required working session [Do Not Book]”; however, that didn’t stop from me having to still explain if I could miss this meeting in favor of some newer event. For this approach to be more effective, I had to apply one other change: changing permissions of my calendar.

As I mentioned earlier, you will need to control you calendar of when you can actually be free and when you cannot. The issue I found that I was still struggling with was spending time negotiating when I could be free versus having the organizer only look at when I’m free on my calendar. I then decided to apply permissions on my calendar so that I could make my team see all the details of my calendar (ex. description, who it is with), but only give everyone else the ability to see when I’m free or busy (they cannot see the details of the meeting). Therefore, if I received an invite from my immediate team on something, I could quickly assess if this conflict was a higher priority to attend; otherwise, if it was from someone outside of my immediate team I would simply decline and state I wasn’t free during this time. If I were to get a follow-up from the organizer of when I was free, I would state that anywhere which shows free on my calendar, they can book. This removed the time I would sometimes spend explaining why I couldn’t make it based on my current work demand, but rather kept it simple to the process of following the calendar. Another thing to note, is that you must not eagerly block too much time on your schedule, as you will more than likely still be spending time trying to explain if you can or cannot make some other meeting since you are not providing sufficient amount of time options for them to choose. Make it easy for everyone, if it is free on my calendar, then that is a time I can meet; otherwise, I won’t be able to make it.

Majority of the time that you will spend in meetings is normally with your immediate team. Since this group is the source of many meetings, talk as a group to find what is the best schedule (ex. mornings or afternoons) to have your group meetings. Look for ways to condense these meetings so that if you are needing to meet for two different things, you have them blocked close together so you are giving your team more opportunities to have a contiguous block of available time back on their schedule. If you have routine meetings in place, remember to periodically check if this schedule works for everyone. It is easy to find where some people’s preferences may change based on other developments in their life. It is valuable to possibly readjust to ensure this meeting isn’t one that is breaking up their larger contiguous block of time.

Another source of meetings that I have are sync-up sessions (1:1s) with other team members. These are intended to be short and routine sessions, and I found these to also be a contributing factor of what would break up my opportunities for having larger contiguous blocks of time. I made an effort to get these scheduled on specific days, where that day is mostly just sync-ups. For example, Wednesday is my sync-up day, which becomes a primary goal of that day and I feel fulfilled in doing these sync-ups (vs. feeling like I didn’t achieve my other work).

Remember that larger blocks of time can be very effective for problem solving. Seek ways to defrag your calendar so you can optimally solve problems with a minimal tax.