Date: 2024.07.10 | business | create | creation-cycle | productivity | return-to-office | software-engineering |
DISCLOSURE: If you buy through affiliate links, I may earn a small commission. (disclosures)
Since the pandemic many companies have implemented Return To Office (RTO) policies with the goal of increasing productivity, morale, and collaboration. Companies large and small have since slashed their remote work policies in favor of hybrid - often 2-3 days in office per week.
I've worked as a software engineer for 7 years and have participated in many different work environments large and small (FAANG to startup) and across many RTO policies from pre-pandemic 5 days in office to pandemic 0 days in office to post-pandemic 3 (where I am today).
In this post I'm going to share some observations about Return To Office and why most of these policies suck leading to worse productivity for software engineers. I'll also provide a few suggestions on how to make them suck less - if we're going to do this we might as well do it right.
Caveat: I am not an expert and many will not agree with my views. That's okay these are just my own experiences.
The craft of software engineering is largely about Observation, Creation, and Reflection.
I call this process the Creation Cycle and it is rarely a single-shot process, rather a series of iterative cycles before we get to a reasonable outcome.
This process often requires significant amount of focus to do effectively. Each step requires thought to translate from one form to the other. Each step ideally gets feedback from others and thus we need to condense that new information into the next version of the artifact.
I think Deep Work (affiliate) aptly describes the state of mind required to do this efficiently - significant blocks (~2h) of focused, uninterrupted time to make quality progress in each of these steps.
The necessity for Deep Work for effective software engineering is why context switching is so commonly named (and memed) as a productivity killer for software engineers. Context switching destroys the focus required to make progress in one of these steps which not only prevents forward progress but often also reverts progress as the next time we want to work on this thing we now need to figure out where we left off, reload RAM, and redo the initial parts.

Context switching comes in many forms. Obviously if you are trying to do work, have 4 tabs of YouTube open, and are working from a busy bar during happy hour then you will be distracted and not be able to achieve good focus.
But really anything that takes your attention away from the main thing can induce the penalties of context switching - even very small, seemingly innocuous ones.
The point is that context switching is bad for focus and focus is necessary for effective software engineering.
What does all this have to do with RTO?
Many offices are seemingly built without an understanding of context switching and thus often increase the surface area of distractions which increases the rate of unplanned context switches which decreases the amount of focus / deep work blocks available which ultimately lowers productivity.
I don't know who needs to hear this but open offices are bad for focus and bad for productivity. This has been proven over and over again and my only hunch at this point is that open offices maximize people per square foot so we build them this way because it looks good on paper. (quantity > quality amirite?)
Open offices are particularly bad for focus and productivity because:
All of these are unwanted distractions. They all happen because people are forced to sit in confined spaces together. It is often not the people's fault (though some are definitely more distracting than others) - we are people and we need to move around and do stuff. More it's the design of these offices that don't take these humans into account leading to regular and consistent lost focus and productivity day over day and week over week.
So the root cause of these distractions really is that:
This means we've got a lot of people together in a tiny space which means a high rate of distractions.
We can mitigate these issues in offices with some pretty simple measures:
At the end of the day offices are for working. If you've paid a lot of money to hire someone to do a job and you are making policies to encourage them to do it better but you are not investing in giving them the tools to accomplish this then you need to think about what you're actually trying to accomplish cause something doesn't seem to be adding up.
I have a lot of other thoughts on RTO but I think focus is the most glaring one so putting those thoughts out here first. My other big issue is offices that have terrible desk setups and don't allow customization because I think that also negatively impacts productivity but that's for another time.
If you liked this post you might also like:
The best way to support my work is to like / comment / share for the algorithm and subscribe for future updates.