Distraction is the new default1. Willpower alone is not enough to protect you from the CNN(s), the TikTok(s) of the world. It’s become increasingly difficult to sit down and concentrate on a task for a few hours (unless you’ve easy access to Adderall). Usually, I mark a day as a success if I’m able to be productive by completing a few choice tasks through the course of the day. Although I’m churning out a lot more code and attending a lot more meetings during this post-COVID period, it’s taking real determined effort on my part to work on something challenging without being easily distracted. I wanted to note down my thoughts around this problem.

1
Relevant XKCD

The goal here is uncomplicated: maximizing time to work on hard, difficult tasks by reducing distractions. On an average, I spent 2-3 hours of each day glued to my iPhone. I’m a mobile engineer by day, and I’m required to spend a substantial amount of time testing things on my phone; but the Screen Time insights tab pointed out a good chunk of the time is spent on infinity pool apps like Twitter, Reddit etc. This isn’t problematic on its own because these apps are incredible sources of information for topics I’m interested in. The issue — in my view — is I often check in on these apps while I’m waiting on some work thing to finish. Context switching is extraordinarily harmful. Some studies2 have suggested we spend close to 60 mins / day just managing the interruptions. I’ve been guilty of touting my multitasking skills in job interviews, although now I’ve come to realize being a multitasker is detrimental if you want to do deep, meaningful work.

Why is working on hard, cognitively demanding tasks important for me? Let me walk through a personal story:

While interning, we had a speaker series where we had leaders from different sections of the company come and speak. Johny Srouji was one of speakers. He was asked about what he would done differently if he was an intern. His answer: find the most challenging thing there is and work on it!

This advice isn’t that profound, but reading Cal Newport’s Deep Work helped me connect some interesting dots. Deep, engaging work generates a sense of satisfaction that isn’t matched by doing tons of small, shallow tasks. Deep work requires focus. Focusing intently transitions you to a zone state (that I’ve on a few rare occasions reached). This type of focus often leads one to create things, rather than just consume.

With that goal described, I want to take some time to talk about the steps I’m taking to reduce my distractions and increase the “in-the-zone” moments:

Reducing Interruptions

You’re more productive when there are few interruptions. Engineers have been observed to switch context 47 times during an hour3. Let’s plan for interruptions. Two important sources of my interruptions are:

  • Waiting for build to run or tests to complete: This has been my Kryptonite. To alleviate this problem, I always attempt to stay in the IDE or the terminal while the build is in progress. I try to narrow down my thinking around the task I’m trying to complete by understanding related code or writing down my thoughts about next steps.
  • Chat Messages: DMs or group messages side-track my attention rather quickly. The faster you reply to a message, the faster you receive a reply-back. What’s helped me here is the reframing of the issue at hand: If you are helping out somebody in chat, you’re serving their priority rather than yours. Also, quality is more important than quantity.
  • Reduce noisy emails: Only receive email notifications that need action and forcing myself to check emails at a reasonable rate has helped me miss fewer things.

There are going to be days where you’ll be bothered a lot. On such days, you might need to spend the 9-5 helping folks out and do your actual work late at night when you access to long, uninterrupted time.

Productivity Hacks

  • Stop Reading News5. How many of those breaking new stories or clickbait headlines actually are going to change your life in any meaningful way?: I personally thought it was essential for me to keep track of these, especially from an investing POV. Turns out, you don’t need to follow the stock market cycle if you’re an Indexer. Tech news — especially on Hacker News and Reddit — has been an extraordinary source of ideas. That’s why I switched to consuming Hacker News / Reddit in a digestible form once a week.
  • 32% of the time is reading, editing and navigating code. Becoming familiar with keyboard shortcuts has helped me search and navigate quickly. I’ve also come to rely on autocomplete tools like TextExpander which have saved me hours in typing out tedious commands.
  • Stop the day midway through a fairly simple or mechanical task. This gives you an easy place to pick up the next day and get back in the zone, instead of starting from scratch.
  • Avoiding switching to other apps (especially Chrome) as much as possible. If you need to switch between apps continuously, use Window Management tools like Rectangle. This will allow you to place relevant windows next to each other, which’ll reduce the CMD + TAB’ing.
  • If you’re in an office, you may take notes from this team’s decision to use a physical light on top of the monitor to indicate a Do Not Disturb status. This has been helpful in reducing random interruptions!
  • Do not goal on increasing your code-output. Writing more code / tests isn’t indicative of productivity. Average productivity programmers write more test cases compared to high productivity programmers4.
  • Consolidating information gathering. There are a ton of choices to organize your TO-DOs, consolidate your writing etc. It’s important to stick to one rather than getting swayed with the hot new kid app on the block.
  • Avoid checking the phone first thing in the morning. I’ve found myself spending a minimum of 20 mins on the bed browsing different apps before I actually get up. What worked for me is keeping the phone in a different room and avoiding touching the phone until I’ve had my morning cup of coffee. This has been an incredibly hard habit to break, but I’m happy to report I’ve become better at this.
  • Monitoring your usage. Downloaded the Offline Time app to monitor pick-ups.
  • A few folks have suggested cleaning up the home screen of your phone so that the infinity pool apps aren’t front and center when you unlock your phone. I’m not particularly worried about this because I mostly rely on Spotlight to navigate the phone.

Meetings

Meetings cost more than time, especially for programmers. From the maker’s schedule,

For someone on the maker’s schedule, having a meeting is like throwing an exception. It doesn’t merely cause you to switch from one task to another; it changes the mode in which you work.

  • Always have an agenda. Having 1-1s or meetings just for the sake of meeting isn’t useful. If there isn’t any agenda, you can convert your meeting into a social.
  • Be it with chat or a meeting, always try to come up with action items and follow-ups. This is also generally good practice if geographically diverse teams are working together.
  • Decline meetings especially if you think your presence isn’t going to be useful. Do not feel obligated to attend a meeting just because you’re invited. If you’re not planning to attend a meeting, message the meeting organizer letting them before hand. You don’t want to piss off your manager by skipping all meetings, but it’s important to understand the meeting cost: 5 engineers * 30 mins + 15-20 mins of context-switching overhead every week.

Closing Thoughts

I’ve to just accept the fact that there are still things that will make me distracted. Like when I post a photo on IG, I’m going to check in on the likes / comments for 20 times / day for 3 days straight. Maybe, I need to just cancel my internet.

References

  1. Distraction Free Devices For Writing
  2. Perceptions of Productivity
  3. Kamma and Jalote
  4. Parnin and Rugaber: Resumption strategies for interrupted programming tasks
  5. Make Time