(03-17-2017 02:07 AM)rafaeld Wrote: Secondly and more importantly, there are intangible benefits of being in the same office as your team and having real face and body time that cannot be clearly defined. Overheard snatches of conversations from other team members, ability to see body language, to communicate at random, to walk over and point to code on a screen, these are all things that cannot possibly be replicated remotely.
You might say that these do not sound important, but trust me over time you come to realise that all these little subconscious and unplanned interactions can actually be more important than the work itself.
The work you are assigned and communicate directly about will get done just fine. But there are long-term ideas and strategies, networking opportunities etc that can only come from being in the same physical location as another person. There are a lot of facets to human communication more than just vision and voice.
...
I've used all these types of online meeting services (and probably several more that you haven't heard of) and I'm telling you, there are elements of communication that happen in meatspace that cannot be replicated over video. The parts that you are losing are the unquantifiable ones, so by definition you will never know exactly what you are losing, only a vague sense that it is there.
Well I don't think you really see those aspects as unquantifiable and undefinable, from the very fact you started to define and quantify them. I think it's a valuable thought exercise to try and quantify exactly what they are, to better understand the nature of the problem. This could even indicate new ways it could be mitigated (working remotely is a relatively new development after all).
I'll try to list them, feel free to add:
1. Much of human communication is in body language. You are losing this communication interface when you limit communication to audio+face.
2. We are more sensitive to the communication latency in VOIP than we think we are. When we interact in real life, we often see the "true answer" immediately in peoples facial expression changes well before they speak. The timing of these facial expression changes has a lot of information, and also we have a strong need to receive this feedback instantly.
3. One part of in-office communication is helping and asking for help. Especially junior devs who aren't up to speed yet asking seniors or the original coders of a project for explanations etc. It is much more efficient to deliver this help in person than with any current software.
4. Talking about a problem in the code is still more efficient in person than any screen-cast based system.
5. Even though it risks breaking flow, workers must be able to interact ad hoc, e.g. by going off cues like someone leaning back in their seat, to keep everybody collectively understanding where each other are at, communicating problems and asking questions etc. Scheduling meetings or calls doesn't naturally fit this communication pattern.
If I could pose some corresponding potential solutions, which may or may not already exist:
1. Study or research what exactly people are communicating with body language, and adopt a
new verbal communication style to contain that information. I.e. use an unnaturally explicit form of verbal communication. For example, instead of just quietly appearing peeved or pleased about something, just state it outright, and if somebody does don't over react etc. Obviously still won't be as comfortable, only option for the real thing would be wearing motion capture suits etc

.
2. Use some kind of video version of
linear predictive coding tailored to communicate facial expression changes as rapidly as possible. [obviously if this doesn't already exist this point will remain prohibitive]
3. Use a screen-casting + headset system. Would rely of course on fast internet speeds. Could have a screen-casting application that filters down the screencast into the actual important aspects in a codified format, rather than just basically video broadcasting like TeamViewer etc.
4. Use some kind of IDE-to-IDE sync-up collaboration plugin + headset.
5. Have an application which detects "interruptability" levels of the user, and passes that information to the VOIP call busyness indicator. I.e. if the user is hammering out code, it would turn red; if the user was just chilling reading a blog, it would turn green. It would observe other patterns that indicate intermediate busyness states.
I'm not sure what you mean by the networking part though, do you mean like more socially getting to know your coworkers? I thought networking usually involves meeting new people.
PS your blog link is broken, firefox just shows a page saying it's insecure