How I Focus To Get My Work Done As a Software Engineer

Last week I criticised open floor spaces and made an argument as to why they aren’t viable for knowledge work. However, the reality is that most people do work in such spaces, so what can we do to work effectively in this environment? Below I have outlined my practices when it comes to working in an open space. Feel free to copy the ones you like, discard the ones you don’t and comment on anything you find interesting.

Don’t attend unnecessary meetings.

If I can’t contribute to the meeting and its output will be documented somewhere I can check later at my convenience, what is the point of attending? The kinds of meetings I’m alluding to are big gatherings with lots of people where nothing substantial gets decided. My aim is not to avoid all meetings — stand-ups are great to share progress and discuss blockers — it is to think twice before hitting “Accept” on the next 50-people-meeting invitation.

Use meeting rooms to create a distraction-free space

As mentioned in my previous post, concentration is a constant struggle in an open office space. That is why I make ample use of conference rooms and small pods around the office which provide the solitude needed to focus deeply on the task at hand. I’d book a couple of time slots first thing in the morning and then spend the remaining time at my desk reviewing pull requests or pair programming with a colleague, which provides a nice balance to my days.

Scheduled Focus Time

This is commonly referred to as the Pomodoro technique — I focus on a particular task for 45 to 60 minutes and avoid distractions. Sometimes I go over the 1-hour limit if I feel that I am close to finishing my work or at least reaching some checkpoint from which to resume later. After the time expires I take 10 to 15 minutes to get water, read an article, check Slack and respond to any messages that have arrived. The break is very important to mentally recharge and get ready for the next focus-intensive period. When I have skipped it I am usually more fatigued, make more errors and start to get more easily irritated.

Check Email Once a Day

I limit my email consumption to once a day in the morning to keep up with the company news. In my organisation, people usually turn to Slack when they need to ping someone urgently, so I check that more frequently. Nevertheless, I turn it off during focus time unless I’m the on-call engineer who has to monitor our infrastructure. At the end of the day, I take some time to browse other interesting channels, such as our Java or Engineering groups to learn about new practices and technologies.

Noise-cancelling headphones

In my opinion, these are a must if you work in an open office. Headphones such as the Bose QC 35s or the Sony WH1000s limit one of the biggest distractions — noise. If you are lucky enough to sit in a secluded area of the office without visual interruptions, these may be all you need to concentrate deeply. After I upgraded to ANC headphones, I can get into the zone more quickly and frankly cannot imagine going back to a normal headset.

Prioritize Your Day

Before I tackle the day’s work, I set aside 5 minutes to think about what I want to accomplish today. I prefer to keep this list small and limit it to 1 or 2 essential items that will make a difference. This way, I can separate the work that brings value from the “shallow work” that does not contribute to the team’s goals.

Conclusion

One important caveat: I tend to focus more effortlessly when I’m alone — that is why I am aiming for solitude. Although Software Engineering as a discipline requires collaboration between colleagues and all great things are achieved by teams, not individuals, most of the time it does not require constant discourse among teammates. If your field of work requires more communication and back-and-forth, you will have to adapt these practices to suit your needs.

Lastly, bear in mind that even though I strive to apply all of these, I am not perfect. I attend irrelevant meetings occasionally, check email and Slack whilst waiting for my code to compile and skip the much-needed breaks from time to time. For me, the goal is not to beat myself up when I slack off, but rather to ingrain these as habits over a long period to reap the benefits.

What are your tips for increasing productivity at work? Share them below. Thanks for reading.

Software Engineer