There has been quite a bit of talk lately about how companies are moving to remote work. Some people even go so far to say that all companies should be remote. Having an office is just clinging to the past. The office is obsolete and remote work is the future we should have.
I can't disagree more. As far as software development is concerned, I think the most efficient teams in the future will be in the office.
I've worked remotely for the past 4 years. For personal reasons, I expect to work remotely for the foreseeable future. However, I am almost certain that I am less effective remote than I am in the office.
Let's look at conducting one on ones first. I've worked with many developers who were initially hesitant to voice opinions. This can give people the impression they don't have any, which severely limits career progression if those people are in senior management. One on ones are a way to provide those developers a place where they can say what they're thinking without worrying about it being "stupid". It helps if the physical place is more casual like a coffee shop or out for a walk near the office.
Virtual one on ones tend to be more formal because both parties are either in a home office or in a meeting room. That formality raises the stakes on an opinion having flaws. Hesitancy to speak honestly hinders any efforts to help a developer learn and grow. It is possible to work past this, but the job is significantly more difficult.
Another casualty of remote work is the creativity/inspiration effect of working with other people in the same space. This is a bit of a fuzzy concept, but the effect is very real. A team that sits together communicates better. Asking a question to someone next to you is as simple as turning your head. Showing a problem is as simple as pointing at your monitor.
Doing the same thing remotely requires an attempt to explain the situation in text form with a video chat following if that fails. It doesn't sound like that much more effort, but it is enough for most people to not bother. They'd rather bang their head against a wall for a few hours before taking that effort (note: I'm guilty of this too).
That head banging can be a learning experience in some situations, but it is a waste of time in many others. Take AWS. Now, I love AWS. I've tried using other cloud providers, but the product quality at AWS keeps bringing me back. However, AWS documentation leaves a LOT to be desired. There is nothing gained spending hours/days banging your head trying to figure out what you're supposed to do by reading that documentation. Having a 15 to 30 minute conversation with someone who has experience with an AWS service will almost certainly provide a better learning experience AND save a ton of time. That productive conversation is more likely to be delayed, or may not even happen, with a remote team.
This brings us to the point that many people like about remote work: fewer people bother you during the day. You can write so much more code without everyone coming to you with constant pestering questions!
Pestering questions was one of my biggest complaints at a job I had a decade ago. My boss had this tendency to try and understand problems before coming up with solutions though. He asked me to write down every instance where I was interrupted at work. It seemed like an annoying task at first, but I did it anyway.
I was pretty amazed after a couple of days. On the surface things seemed bad. I was interrupted at least 25 times a day. However, when I looked at what each interruption actually was, I realized the value that was being created with that time. Our systems always ended up with a better design because of those conversations. I wasn't as productive with the work that was directly assigned to me, but I was providing more value to the company by helping the people that came to me.
This experience has given me a strong belief that the productivity boost from working remotely is an illusion. The value a software developer creates isn't the number of lines of code they write, the number of features they implement, or the number of bugs they fix. The value of a software developer is a lot harder to measure because it involves teamwork. That means not just fixing a bug, but discussing better fixes for bugs so that they don't reoccur. That means not just implementing a feature, but discussing ways to implement it that would be better for users of the software.
The "productivity boost" from working remotely relies on the premise that you have fewer meetings. That's just another way of saying you would be more productive by talking to your team less. However, those meetings are more productive than they seem. Talking to your team is not a waste of time.
Top comments (7)
Que interesante.
One of the best things a software engineer can do to add the most value is write code in such a way as to be easily understood and changed in the future by themselves or another engineer.
How can one be sure their code is easily understood if they don't talk about it over with their peers? Beyond a quick looksie over a PR, but really discuss it.
The more I work remotely the less idyllic it is.
Although, for my current situation, I do get 3 extra hours at home with my 10mo daughter and wife. Hay mucho mas amor en mi casa.
I agree. I'm also working from home due to my current situation. There are definitely advantages to working from home for developers themselves. I wrote the article primarily to note that there are some real costs to working remote and to have folks weigh those costs with the benefits.
My experience is that remote or in an office, a company’s values are reflected in how the team works. I’ve seen high and low interruption in both environments. I’ve seen helpful people and unhelpful in both. I’ve had good and bad 1-on-1s in both.
I’d rather see teams focus on doing what’s good for the people on their team rather than trying to lock things down to one perfect system.
Me neither. About your post.
Working remotely has little to do with formality. In fact, virtual meetings are almost always very informal at least when it comes to what clothes people wear. If you're close with your manager – which might not be acceptable in many cultures – your 1-on-1 sessions will be casual, friendly, and honest whether you meet in a local park, video chat, or mobile phone call.
Citations would be helpful here as I'm sure this has been studied extensively. My experience shows that people working remotely are eager to ask questions, but it's true they might not ask as many questions as the colleague sitting next to you. This is due to a well-known problem solving technique: writing it down (a variation on rubber duck debugging).
The next time you find yourself solving a problem, write it down. Chances are you will find the solution at the moment you take a step back and look at your question. This filters out at least half of the questions that would otherwise interrupt others where verbal communication is used.
The delay mentioned here is not related to working remotely. Rather, it sounds like a cultural issue where people are afraid to express in public they don't know enough about a topic. In this scenario, it's best to highlight a need to learn AWS in some public discussion channel, gather together a study group, and ask for a block of time from your manager to study. Studying together remotely is a great way to strengthen the communication and friendship while being productive at it thanks to a myriad of e-learning tools at hand.
You seem to be in a different position in your job as it sounds more like a technical support activity than what I and many other developers have. For me, constant interruptions are toxic waste since I'm paid to solve problems with design decisions which naturally require deep uninterrupted focus instead of talking.
Yes, it's a belief in need of further verification. I can recommend you to read Remote: Office Not Required by the creators of Basecamp.
The productivity boost from working remotely doesn't sacrifice communication. Instead, unnecessary verbal communication is transformed into a crucial written communication. Remember that speaking only helps those who are in the room, while writing helps everyone.
I'm not saying your post is wrong, but to me it sounds like your current workplace is not helping people to produce their best output when working remotely.
No tomas en cuenta que a muchas personas no les viene bien trabajar en grupo. Se distraen, no se logran concentrar lo suficiente y esto es un factor clave para pedir productividad. Ademas eso de trabajo en equipo ... para ser bien honestos es poco el tiempo que uno pasa revisando el código de otros. Incluso aunque trabajen en células, muchas veces cada uno de estos están en sus propias burbujas.
Interesting perspective. I really like team collaboration on a real whiteboard. I do miss that. Sometimes the best ideas get scribbled on that board, before a single line of code is written.
Try Excalidraw, it's a very neat open-source "multi-player" whiteboard developed with React.