The work that we do as software engineers requires immense focus. So much so that large chunks of uninterrupted time to think are necessary to accomplish almost any task. Because of this, protecting your time and maintaining large contiguous blocks of focus time is paramount. While you’re barely a paragraph into this article, I wouldn’t be surprised if there’s already been at least one distraction that has attempted to break your focus. Whether it’s a notification on your phone, a coworker, a roommate or spouse, etc. there are endless distractions in today’s world. Below are three ways you can optimize your calendar to maintain focus and ensure deep work remains a priority.
⚠️ Block Your Calendar ⚠️
Your first line of defense in protecting your time is scheduling time with yourself. One of the most effective ways to ensure you have this time is to block your calendar before others do. By doing this proactively you dictate when you’re available to meet with others helping ensure you can be as productive as possible and sink into deep work reliably. Another bonus of blocking your calendar is it can help with work-life balance and your general ability to sign off at the end of the work day. If others see your calendar as blocked they’ll always think twice about scheduling over it — especially if it’s blocked with something like “Lunch: Do Not Schedule”. And, if someone does schedule over any of your self-created meetings, it helps immediately understand the presumed importance of the proposed meeting since if someone schedules over your own time there’s a good chance it’s warranted. Remember to block your calendar shortly after joining a new team or company to help guarantee large chunks of uninterrupted time remain available to you to start. It’s also beneficial to go through recurring meetings each quarter decide if the meeting is still necessary and cancel if it’s not.
❌ Decline Meetings ❌
If blocking your calendar, your first line of defense for protecting your engineering time fails, and someone has scheduled time on your calendar the first question you should always ask yourself is “Do I need to attend this meeting?”. Or perhaps to phrase it more helpfully, “Will my absence from this meeting ‘block’ any of my teammates from making progress?”. If the answer to the latter question is no, strongly consider declining the invite. While it can feel ~scary~ to decline specific meetings it’s important to protect your own time for deep work. Remember, it’s not only advantageous for you but also for the company — software engineers’ time is expensive. If you do feel uncomfortable declining consider asking the meeting organizer if you can be marked as optional. If you can’t outright decline any particular meeting it can be helpful to reevaluate its cadence and correct it if necessary. Similarly, don’t be afraid to cancel the meeting if it’s extraneous a specific week or there’s no set agenda. The only thing worse than sitting in countless meetings is sitting in countless meetings that didn’t need to happen.
⛓️ Batch Meetings ⛓️
You’ve tried to block your calendar, but now you’ve received a critical meeting invite. You can’t decline the meeting since declining a one-on-one results in one big waste of time for the person who desperately needs your help. At this point, it’s clear you must attend the meeting, but the last agency you possess is strategically choosing a time that best suits your schedule. There’s nothing I hate more than a scattered day of meetings. Not only can it be draining, but days like this often leave me feeling like I’ve accomplished nothing. Accidentally pairing this with the perfectly inconvenient amount of time between tasks and constant context switching is a great way to ensure you almost do anything well. One hour-long sprint planning here then a fifteen-minute break leading into another forty-five-minute project sync, followed by a thirty-minute lunch, straight into a thirty-minute one-on-one, a quick forty-five minutes to attempt to do some work, and then another hour-long retro meeting to wrap up the day. This schedule leaves anyone with little time to be productive and prioritize important software engineering work.
Instead, it’s much better to batch meetings where possible. Batching meetings help ensure that you give yourself the best chance of maintaining a healthy amount of uninterrupted time to go deep and accomplish crucial engineering work like producing code, debugging, writing design documents, and more. Batching meetings helps prevent “dead time” in your calendar wherein you finish a meeting and don’t have quite enough time to accomplish anything productive before the next meeting starts. These pockets of time are what you should aim to eliminate. Batching meetings also helps prevent context switching in and out of deep work helping you remain productive.
On the flip side, think about these tips when you are scheduling meetings with any of your colleagues. Do your best to not schedule over others’ own focus time. Mark folks as optional on calendar invites if their attendance is not required and cancel meetings liberally. Last but not least, prefer to schedule meetings on teammates’ calendars in a fashion that favors batches their meetings together; however, consider leaving five minutes between them so that teammates can take a break, stretch their legs, get from one meeting room to the next, etc.
Drop a like ❤️ and comment below if you made it to the end of the article.
Great tips!
Nice read! one of the most interesting ideas that I’ve successfully used was to have a no meeting day. That worked great for everyone. Another hard learned lesson was scheduling time, important meetings should be organized in the morning otherwise it might be hard to enter deep work.