Live data from Hacker News

A Short Rant About Working Remotely

ericfarkas.com

281–290 of 339 posts

Re: A Short Rant About Working Remotely

#281

(lightly edited copy of my usual plea for evidence on this topic ;-) Pretty much all the evidence (rather than anecdote) I can find shows that co-located teams in a single team room environment are the most productive - all other things being equal. (And I'm saying this as somebody who spends a lot of their time working from home, and talking to other folk over Skype, etc. There are reasons for telecommuting - person…

"interruptions were greater in number but shorter in duration and more on-task"

Given recent studies on multitasking, and the time it takes to get back on task, this does not sound like a positive thing.

"an ability to share work artefacts significantly challenge the effective collaboration of remote stakeholders"

Most "work artefacts' in software development are digital (and easily shared with the modern internet), and thus distance doesn't matter. This is obviously different from when this study was published in 2002.

The delay mentioned in the 2001 ieee article is virtually non-existant in modern work-from-home settings, where people are constantly connected by DVCS, screen sharing, skype, google hangouts, etc.

Yes, I'm cherry-picking problem quotes from your cherry-picked quotes, and don't have any studies to back up my beliefs (other than my own experience, which is frankly enough for me). That said, most of your citations are old, don't take into account research into human multi-tasking on complex projects, and don't take into account the tremendous advancements in remote communication that didn't exist as little as 5 years ago (github, google+, skype group calls, Trello, Bitbucket, Facetime, etc.)

Yet another anecdote: the last open office I applied to was definitely a war room... Warmachines, that is. I can't imagine getting anything of value done in that kind of environment.

Re: A Short Rant About Working Remotely

#282

(lightly edited copy of my usual plea for evidence on this topic ;-) Pretty much all the evidence (rather than anecdote) I can find shows that co-located teams in a single team room environment are the most productive - all other things being equal. (And I'm saying this as somebody who spends a lot of their time working from home, and talking to other folk over Skype, etc. There are reasons for telecommuting - person…

co-located teams in team-room like settings are much more productive Whenever I've seen this done, the very best employees leave. I am a firm believer that you can train yourself to hop in and out of a reasonable facsimile to the "zone" in much less than 20-30 minutes (I do it all the time)[1]; but the level of distraction of the warroom type environment massively favors your more extroverted engineers. My experience…

Your use of "the really hard problems" is revealing. Those of us who went to engineering school know exactly what you mean by that, because it's the way we describe the most challenging exam questions, projects, or open questions in the field. We can usually figure out those really hard problems if we put our minds to it.

But for most tech startups, I'm not sure "the really hard problems" are the technical ones, because we are good at technical problems. Perhaps the really hard problems are how to get early traction, how to build something people love, and how to make the business profitable. Some of those hard problems might be easier to solve as a face-to-face team.

Re: A Short Rant About Working Remotely

#283
I have worked both on a hybrid team (colo + remote) & a completely remote team (no office) and I can emphatically say that the hybrid team is one of the worst experiences in my career. Decisions were made in some other parts of the world, really really early morning calls and a general sense of frustration for all.

In a completely remote team, you are forced to optimize for coordination and communication. Obviously you suffer the downsides because there is no water cooler, no joint information dissemination sessions, no war room accountability though you can achieve some kind of co-creation using skype, join.me, git and trello. However you gain some big advantages in terms of finding the right resource at the best cost, undivided focus if remote team members are given work packages and ability to exploit the timezone difference for a 24hour work cycle. Not to mention the humongous personal flexibility which it affords at an individual level.

A point to note is that this remote vs. colo experience really can come down to the individual members and their personalities. There is no one size fits all.

TL;DR Go completely colo or completely remote, half-colo + half-remote = half-ass. Team personality is a very strong variable in this equation.

Re: A Short Rant About Working Remotely

#284
post #73

Earlier quoted context omitted.

Most importantly, not every project (nor startup, nor business) needs "the very best" engineers. Not every startup is changing the world, and even among the ones that are I'm sure you can pick out a few that aren't solving massively complex technical challenges that will be discussed in lecture halls for decades. The majority of good startups are just making money (sometimes not even that) until they get acquired. Se…

> Most importantly, not every project (nor startup, nor business) needs "the very best" engineers. This is highly underrated wisdom. If you focus on always hiring "Rockstar developers," you'll find yourself in a miserable situation of competition and egotistical conflict. Hire your team, not your developers. Get your team working like clockwork with good systems and good relationships, and your company will be rockst…

Exactly. This is where having good engineering leadership can come in. A "mediocre"* developer can often be coaxed into producing great product with a little support from things like paired programing and code reviews. You'll probably increase his/her value and abilities in the process.

So you need your lead to be awesome. But the rest can just be good people who know how to code.

* this would be someone who may not fully grasp all the concepts and sometimes writes bad code, but is open to learn and listen. There are developers who write bad code and are arrogant/confrontational about their abilities. Those should be identified and fired as quickly as possible. They will sink your ship.

Re: A Short Rant About Working Remotely

#285
I moved city a few months ago while still working for the same company. Prior to moving I was a remote worker doing software development and client support from my apartment.

It was a great set up for me - if I wasn't feeling productive at 9am I could defer until later when I was in the zone. I tended to work at night when my brain was buzzing, and got much more work done compared to now.

Post move, I am now required to work 9-5 at a desk in the company office. I honestly feel like my productivity has plummeted. Work loves having me there because I can play a more senior role to the more junior/less skilled developers, but my pay hasn't changed and I don't really feel like I benefit from it.

Perhaps I was just blessed for too long, and need to get used to what working as a developer in this day and age is actually like for the majority.

Re: A Short Rant About Working Remotely

#287

Earlier quoted context omitted.

Is it churlish to suggest that the most clear counter-example to "all in same room" is http://git.kernel.org/ However with a cursory glance over the references, they seem heavily biased towards a "crunch time, in a war-room" scenario. This can lead to large productivity gains for reasons unconnected with physical location (Clear short term goals, only the best get invited into the war-room, daily distractions and res…

Very few pieces of the kernel were actually developed by teams. One guy writes this subsystem, another writes a driver. The interactions between components are well established. Approximately 0% of the linux kernel consists of interdependent components simultaneously developed by different people.

I think he's implying the kernel as a whole. Clearly, the whole kernel is developed by a very distributed "team".

That said, you get right to the heart of the matter: the interactions between kernel components are well established. Sufficiently so that one person can work independently on a subsystem and another on a driver.

In my own personal experience, designing component interfaces is the most important aspect of building a system, especially when you are working with a team. Very often, I have found that the "all in one room" development model is implemented because the team lacks the ability to define those interfaces first. They are very fluid and so it's necessary to be able to lean back and yell at the guy working on the driver or subsystem and say "yo, I need this additional parameter". On a distributed team you need to write that in an email and that extra effort is often seen (rightly or wrongly) as a major bottleneck.

Where I have seen companies fail to work successfully with geographically distributed teams, it has generally been because their "all in one room" culture has allowed them to establish an adequate process/culture around designing quality component interfaces in an efficient manner. This inability to define quality "contracts" is typically what leads to slipped projects and missed expectation. Often times, it is what plagues teams that are co-located.

If you can do a good job at defining system components and their interfaces, doing the development independently and distributed is easy. You can write test harnesses and stubs around those APIs. The question is: can you work on that design process in a distributed manner as well?

In my experience, it doesn't matter, local or remote. Designing component interfaces is hard work and hard to get right. But it is essential.

Re: A Short Rant About Working Remotely

#288
I've worked remotely for about 7 years now, with startups and more established companies. These companies have typically been distributed themselves, realizing that it is easier to work with smart people where they are than to try to get everyone to move to a specific place. We are constantly connected with IM, IRC, phones, Skype, etc. And we can handle development and problem solving around the clock easily.

I have no commute, nor does anyone else. And yet we have all seemed to function efficiently, with now problem that I've seen. And we are as effective as any team I have ever worked with, with none of the water cooler chat that goes on in the office. In fact, any team situation I've worked in has easily seen 50% of the day consumed by non-work-related conversation and meetings with no agenda and no responsibilities given.

I'll stick with remote work thanks.

Re: A Short Rant About Working Remotely

#289

Earlier quoted context omitted.

I'm constantly learning, and seeing when things become "possible" with the current state of knowledge. Whenever I see that, on my own, I'll sketch out how the solution would work. Then, I look around for companies that need a problem I already have a solution for solved, and I pitch my solution to them. Sometimes, I'll take jobs to solve problems I haven't considered before, but that's rarer. If they like my solution…

So, in the best interview tradition, what do you read to keep up to date with the state of the art? I have a couple of times found myself inventing solutions to problems I had in the business, only to see them appear as cutting edge open source at the same or a little later (ie Python deployment tools) I have always assumed one needs to be working in an area, pushing hard and then finding that "what no-one has an ans…

As you suspected, I'm developing solutions in the areas I work in specifically (stuff I'm "knee-deep" in).

I read the usual CS papers, plus lots of PhDs thesis. I follow the references in the bibliographies like crazy, and I also look up the writer's on the 'Net and see what other stuff they've done/written.

It feels like detective work, actually: the most-cited papers are frequently not the best. There's tons of researchers working in obscurity but who nevertheless have useful results.

I see my role as taking advances from research and bringing them into practical use.

Re: A Short Rant About Working Remotely

#290
post #191

Earlier quoted context omitted.

How does one acquire the connections to be called in as this type of engineer?

I'm constantly learning, and seeing when things become "possible" with the current state of knowledge. Whenever I see that, on my own, I'll sketch out how the solution would work. Then, I look around for companies that need a problem I already have a solution for solved, and I pitch my solution to them. Sometimes, I'll take jobs to solve problems I haven't considered before, but that's rarer. If they like my solution…

This is fascinating. Can you give some more examples?
Post reply on HN