I got to say, I disagree with nearly every point here. Taps on the shoulder are the worst, anonymous cubical farms would be way better than the current situation (all open offices), skype/zoom/etc. are all immediately available for impromptu meetings, I'm not sure why working on code independently would lead to more silos? Does everyone always pair program in offices? Do you theorize less design meetings or something?
Plus remote you can not play the butts-in-seats game, get non-work related life things done at your leisure, wear whatever clothes you like, shit in your own bathroom, don't have to worry about anyone tapping you on the shoulder, eat what you want when you want, the list goes on. Theses are just the immediate things that come to mind.
I’ve done multi-year stints of both, and it’s highly contextual. For ICs I get the quiet and focus is a net win (assuming proper self-motivation and no social isolation issues). However for high-level or cross-functional collaboration there is no online tool that approaches the bandwidth of two people in a room with a whiteboard. The energy in person, serendipity and the ideas that come from prolonged close collaboration (especially in a startup) is hard to quantify but it’s real. It’s not optimal for everyone all the time, but then neither is full remote.
The energy in a person bears zero relevance to how good their idea is, though.
I found remote team code reviews to be much more objective. That way most people aren't worried they'll shame someone in person and they give better and more useful feedback.
The energy you speak of, while very real, is not related to the quality of the work that will follow.
You're talking about two different things. I work almost entirely non-remote. If all I did was write code, I could do so remote. I collaborate with people in 3 continents, probably 10 timezones, maybe more, many of whom I've never met in person, when it comes to code.
But design is a different beast. Collaborative design of complex systems has a few stages. There's a rapid prototyping stage where 3 people in a room bouncing ideas off of each other and scribbling is better than anything else I've done. Then you circle back with a document that formalizes things (like an RFC). The second part can be done with a distributed group. But the first part is better when people are close to each other. You see this even in distributed groups like OSS projects. They have conferences and work sprints where the maintainers can be colocated for a bit and brainstorm about things in person.
Sure, but you are not actually contradicting me as far as I can see.
I too collaborate with colleagues in different time zones but design and tons of brain-storming is not the main focus of our work. When we need to do that, we do long video calls with shared diagrams -- or we just scribble with the mouse. Works quite alright 99% of the time.
I agree that the rapid initial stages of a project are best done in person but failing that, there are replacements, and they are not as bad as many in this mega-thread claim.
Rapid prototyping should happen every time you need to add or change an abstraction. With the way many (most?) software projects work, with new feature requests and requirements appearing along the way, this happens all the time. With new requirements, the old abstraction often doesn't fit 100% anymore. Applying a few band-aids to the abstraction is probably fine, but at some point you will need to reconsider the design, or you will end up with a design that does not match the problem it's solving, making the code difficult to follow and therefore error prone.
In my experience, this need arises very frequently in complex systems with evolving requirements.
Oh, don't get me wrong. I fully agree! What I was saying is that the initial rapid prototyping of a project is happening only once.
Our company offered us to sometimes reconvene physically and discuss such things but since our team are all family men, it hasn't happened yet. But it is a really good idea and we should reconsider actually doing it sometime.
That 1% (and is often more like 5 or 10) can have big implications, but you can just have an on-site, it's a lot cheaper than having an office year round. Plus you can do it somewhere fun and it's a great perk and team building exercise.
So you're going to discuss all your designs in February? What if you need to make a major modification to a design, or like some priority changes or whatever.
The whole idea of agile is to design iteratively and reactively, but you're throwing that away.
I suppose if your process relies on that type of design happening regularly, remote work is not going to allow for that. But I don't think colocation is a requirement of iterative & reactive design.
I work on a remote office, and while I definitely agree that the rapid prototyping stage works better in-person, current tools help a lot - we have a pretty large app that was built 100% remotely (I did ask for in-person meetings but there was no budget).
Honestly, you can collaborate and do almost everything remotely. What does lose a bit is team building, you have to go a bit out of your way to build rapport (but it´s also doable).
I'm still learning how to be more personal while remote. An always-open casual video chat room is a fun idea (especially if you have a screen with it always open in the office!). Games (while on video chat) might also be fun.
Have you ever used a video conference or collaborative online whiteboard? If the actual scribbling is important, have you heard of these things called drawing tablets?
Yes, in fact the company I work for provides, bar none, the best experience for video conferencing and collaborative online whiteboarding I've ever used. We go to great lengths to reduce latency and make the discussion feel as natural as possible.
Its still, at least to me, markedly less productive, than an in-person meeting.
Like I said, conferences, summits, etc. These are done for a reason. Not to mention that there's some research I've seen that suggests that places like Bell were so successful because they cultivated happenstance interactions between smart people that don't happen in distributed environments.
I think that conferences, etc, build up on the human element and are important, but not for the reasons you mention.
My current belief is that a 95% remote team works, you do need in-person opportunities, the more the better, but at least once in a project can be enough.
I don't see how this is related to the previous matter discussed -- namely that the energy projected by another person is somehow helpful for work getting done.
I think this is more or less the consensus opinion among managers, which is why we mostly have office jobs that support some WFH rather than fully in office or fully remote.
IMO, that's because managers favor butts-in-seats and the idea that they can "see you working".
IME the only people who actually like open plan offices are managers, extroverts, and flakes, most of whom irritate non-managers, introverts, and non-flakes.
The managers I’m referring to don’t need to see you working. They want you to see you collaborating and socializing with the team in person, but are fine with you doing your actual coding at home and rarely if ever touching your desk. The office is open plan but usually pretty empty, as everyone is either in conference rooms or at home.
It seems like there isn't a great digital replacement for a whiteboard yet. Maybe a tablet and stylus, but I haven't used a digital whiteboard enough to justify buying or setting one up. Incorporating the stylus/tablet into laptops isn't a new idea, but I've never owned a work laptop with that feature.
There are, but they’re expensive. There’s Google’s Jamboard and Microsoft’s Studio Hub as a couple of examples. You could also go the iPad and Apple Pencil route and just use similar apps, or the apps for those products (i.e. Microsoft Whiteboard app), but that’s still fairly expensive if that’s all they’re used for.
There are lots of inexpensive online whiteboard programs that work fine. You just need to get used to typing and using the drawing tools, or buy a drawing tablet if that's really important to you. You can get ok graphics tablets for $25.
> there is no online tool that approaches the bandwidth of two people in a room with a whiteboard.
VR will change that at some point. Even in today's infancy, there are some VR apps that give you that sense of presence with all the other tools needed and then some (whiteboards, screen-sharing, projecting your desktop on a huge screen, etc...)
For remote workers to be effective, a lot of things that go unsaid or unwritten have to be written down. If you have that, then the difference between sitting in the same building and being remote isn't as pronounced.
But also if you have that, the advantage of sitting next to each other instead of just in the same building is also less pronounced. It's also easier to train your replacement, and some people are terrified of that.
You can learn a lot about the problems or architectural issues with your system by participating in conversations, and that supports the bullpen organization of offices. But you learn a ton more by participating in private or one-on-one conversations. In public only the brash get to talk. In private people will share their real fears as long as you don't belittle them for it. And those fears may reveal existential crises that are brewing in the system that nobody talks about.
It's much easier to have a private conversation with a remote person than it is to have a private conversation in a bull pen.
I mostly agree with you. But I do see what OP is getting at. There's a lot of accidental innovation that occurs during casual bull sessions over coffee breaks.
In a remote environment the tendency is for communication to be more formalized and structured. "Hey, are you available for a call. I just want to go cover X, Y and Z, then I'll let you get back to work." Often time half-baked ideas end up getting polished into important innovations. Without some sort of channel for informal, impromptu discussions a lot of ideas get overlooked.
For me it's the social aspect. I don't mean 'socializing' at work (although that also helps). I just mean avoiding isolation. Being physically distant from my team leads me to start feeling detached from them. But it's different strokes etc. I know myself well enough to know that I pull a lot of motivation from the sense of camaraderie I get by being in an office with people I like, so fully remote work is not for me. In fact, any more than one telecommute day per week is too much for me. Not everyone is like that.
So what I really wish for is increased flexibility.
Remote work eliminates any incidental information transfer. It makes it much harder to have a company culture, which is especially difficult for juniors and new hires to get an understanding of what's important and what's not.
In theory, sure. In practice, I've never had a Slack conversation or video conference which felt as natural, rich, spontaneous or productive as a focused discussion in person. I say that as someone who worked fully from home for five years on a remote dev team.
That's not to say it's not useful. It's better than email, leaves a neat record to come back to and supports asynchronous communication. There are advantages. But strictly speaking, no, you cannot capture everything good and useful about in-person conversation using text and video. I don't think it should be controversial that much of the richness of in-person conversation - tone, nuance, body language, facial expression, spontaneity, speed - can't be meaningfully replicated through remote mediums. You can't get all of these things from a message or video chat. You can get some of them well, and a few others decently, but it isn't the same.
I like remote work a lot and wish more companies would support it. That being said, in my experience when people give honest, cogent criticisms of remote work they mostly receive responses which don't speak to the spirit of their point. In this comment thread, for example, the person you responded to is talking about difficulties. You are responding as if the person was talking about impossibilities. It is (emphatically) not impossible to function as a remote team, and very few people will try to make that case. But in the world we live in and with the technology we currently have, there are things about in-person discussion you will not be able to capture on a remote team.
If nothing else people have different values. Some developers enjoy being highly social when they're working, others don't. Some don't mind interruptions, others do. Many people feel a sense of comfort and empowerment by using Slack or Zoom which makes it easier for them to have productive discussion, for a variety of reasons. Likewise many developers do not get any of the same enjoyment out of a Slack or Zoom conversation that they do from face to face communication.
The vast majority of chats seem to take much more linear time than a 1:1 conversation. Multi-tasking them just means 5 people are tapping you on the shoulder within a near-timeframe. So 5X worse than an office? Slack is often the worst part of some email and forum hybrid.
I often wonder how many problems used to be resolved because people worked together in the same location vs now it feels like the 10 things I interact with in a week are broken or require finding a work-around. Many of the chats are "how do you get around this?"
Video conferencing is great for people taking turns presenting, but my experience is that Zoom with high-end integrated conference rooms on 1Gbps fiber cannot support conversation. The latency and audio processing wreck the normal “traffic control” protocol for interactive discussion. Participants don’t perceive and yield to others trying to jump in, like they would in person. Instead you get a sequence of monologues, which requires formal moderation to work decently.
IRC/Slack/etc is great because you can have informal conversations in a channel where your whole team can observe and participate in a more asynchronous nature.
Human conversations are fine, but you generally don't get a durable record of them after the fact, and only those present will have a chance to participate.
Yeah, I've been remote first for three years now and don't have any of these problems. Perhaps OP had a bad experience. And not knock IRL first — there are definitely things I miss about being in an office but they are all social aspects and not work — but I think remote first does have a lot more benefits. It's also tougher, the discipline required, the social isolation, all difficult issues.
TBH, OP sounds like a manager. Which is fine, but their experience is usually constantly worrying people under them will work more slowly when given more freedom. So, since their job is contingent on the people under them doing a good job, its easier to claim accountability when they can physically seem them in their seats every day. People who talk about "impromptu collaboration" generally aren't individual contributors.
This seems rather uncharitable lol. Managers, or good managers anyways, are constantly connecting conversational channels -- conversations between product, between developers, facilitating conversations between product & developers, etc. Take the communications challenges that pretty much everyone buys into with remote, and then put someone at the intersection of that pain point amongst multiple people, and they're going to have a unique perspective.
I have a feeling that we don't have more work-from-home-first jobs because (middle-)managers wouldn't know how to deal with that. They are not quite there for such change.
And I'm talking about the "simplest" things. Like properly defining a task. Tracking it. Signaling when it's complete. Managing risks, changes. Communication. And so on. To have as most as people at an arms reach is just too convenient to workaround any shortcomings on the managerial side.
If in the general case, i.e., working at offices, all together, we're nowhere near[1] excelling on those "simple" management stuff, things would collapse in a work-from-home situation pretty easy.
I also don't see, in general, (middle-)managers changing their stance in favor of working from home either. Don't see them getting ready for such change. Prepping to work with virtual teams in any future and such.
Perhaps, those who believe are ready for such change could (myself included), somehow[2], show theirs capability. Slowly pushing the changes bottom-up by improving his/her own communication skills, reporting, risk and change management, displaying availability, to such an extent that the concerns of those (middle-)managers are barely noticeable or reasonable?
If we could show that we can organize ourselves and coordinate our efforts towards a goal, effectively, while working remotely, those concerns about remote work could start to fade.
I believe the point I'm trying to make is that we could show better that remote work works! We could be better sellers of this paradigm. Show how we can actually help those worried (middle-)managers. Like safely climbing a ladder, one step at a time :-)
Would be this a good opportunity to create a work-from-home manifesto, in the same way we have an Agile manifesto? I don't know. But that would be something interesting to collaborate on for sure. I might put some thoughts on paper about this subject for starters.
PS: I was an IT project manager for many years, working both on-site and remotely. Now I'm a software developer working on-premises for a big company in my country not friend to the idea of remote working at all; so I could contribute my experiences and views on this subject from both ends, I believe.
PS2: non-native English writer here. So if you find something that needs clarification or correction, please let me know, I'd be grateful to accommodate those kind of feedback. Would be more grateful if you share your thoughts too, though :-)
[1] yeah, I'm aware that there are famous cases of success, but I believe those doesn't account for the majority of offices.
[2] not sure how right now.
> In fact, they won't just work slowly, they will actively work towards sabotaging your project.
If your estimation and metrics tracking doesn't catch this remote, it won't catch this in an office. It is true that it's easier to hide incompetence and laziness, but perfection is the enemy of good on those scales.
Protip: If things get this far, it's the manager's fault. I've been remote before and also managed remote ICs, and you learn who needs the frequent checkins and status updates and who can be left more to their own devices. I had someone waste 2 weeks going down a useless rathole, and I learned quickly that I needed to be more involved with their prioritization and planning, and that was on me. It didn't happen again.
This. Failure of remote working is usually a problem with managers who don't/won't/can't manage remote employees effectively. If they can't manage based on results, only on "butts-in-seats" whipcracking, then they should get a time machine and travel back to a time before the internet, like in a sweatshop.
Whenever I have challenges that are difficult to Google (architectural, lots of different views/opinions etc all of highly technical nature) I feel that I don't ask, because as others mentioned here; asking for time face to face is so much easier and better than setting up a Zoom call. I feel the same for all interactions, whenever I'm alone at the office I always tend to save interactions to whenever people get in because Slack/email/hangouts always incur a cost to communication. This said, ppl should def be able to do remote, however getting people in to the office sometimes still has a lot of value.
Agree. With tools like Remote VS Code it's definitely as good if not better than in person because you each have your own creature comforts but share the same workspace (even terminal) and can edit the same file at the same time.
I don’t get why it’s always presented as cubicle farm vs fully open floor. My company uses semi-open offfices; you have an open office with 8-10 people in a team, but don’t share space with other teams. So it’s access to the people you work with directly and no more.
Technically yes, but it feels very different to an open office with 50 people in it. <=10 is small enough that everyone is able to respect each others' privacy, noise, etc while still enjoying some of the benefits of an open office such as turn-your-chair-around collaboration. I think we need a new term for when <=10 people are in an open office. It just isn't the same as what is usually referred to when someone says "open office".
That's the "team room" concept - each team has an "open office", but it's not open to all the noise from everyone else. There's a door for when the team is heads down on stuff.
I work in a 10 person open office with lots of separation - 1200sqft, 7 would be better but there is no comparison to a 50 person bullpen with everyone within arms reach of another.
Every team on the floor is in a semi-enclosed room with an opening into the hallway (no door).
In practice noise doesn't really leak from rooms into the hallway, so it's not a problem most of the time unless something extremely loud is happening, like a dog acting up or someone building flatpack furniture.
I think it's safe to say there are people who work best in radically different environments. I can't stand working from home, or working from a coffee shop. I also can't stand offices where everyone is just wearing their headphones as if to say "don't you dare ask me about something important that I know a lot about." What's the point in being at the office?
In my opinion and experience, professional programming is a deeply collaborative experience. But of course other people who ostensibly do the same kind of work have completely different preferences, and that's great. It does mean that people need to be very careful what kind of company they take a job at.
I agree and disagree with both of you. There are real, tangible advantages and disadvantages to both.
My approach is to embrace both at the same time, by almost always coming into the office, but arriving before 0700. The first half of my day is super focused, uninterrupted work, and the second half is relatively unfocused, talk to people and be talked to at random times kind of work. I leave around 4pm.
I've had no substantial problems going home so 'early' among the eight or so orgs I've worked at in the past couple of decades.
The bathroom in my office is nasty. Nobody has a gallbladder and they all eat greasy food. It's a shit factory and I hate being here for that reason alone.
the thing is I'd rather shit in the office bathroom, it's so much nicer than mine. I'd rather eat the FREE food at the office, it's so much better than what I could cook spending money and time.
I sometimes regret weekends because I don't have access to those things.
Plus remote you can not play the butts-in-seats game, get non-work related life things done at your leisure, wear whatever clothes you like, shit in your own bathroom, don't have to worry about anyone tapping you on the shoulder, eat what you want when you want, the list goes on. Theses are just the immediate things that come to mind.