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 - personal preference, getting access to people who cannot co-locate, etc. But for business productivity I'm not seeing much, if any, evidence).
I am not saying:
* That working alone in an office is bad / will cause projects to fail
* Telecommuting is bad (I do it - I like it)
* Telecommuting projects will fail (D'oh - of course not)
* You shouldn't telecommute (of course you should if you want to - but bear in mind that the business may have good reasons to disagree with that decision)
* That telecommuting makes you individually less productive (I'm personally unsure about this. I feel more productive when working by myself, but I know that personal perceptions of productivity can be false. Measuring personal vs team/company productivity becomes hard in anything less than the short term)
* That co-location is always the best solution (it isn't - other factors like team location and skills come into play)
What I am saying is that there is a lot of research showing that co-located teams in team-room like settings are much more productive. This runs counter to many developers preferences (mine too ;-) so it tends to get ignored.
So much more productive that solutions like 'Let's fly everybody to the same place and pay their room and board for a month' can be cost effective.
Here are some references to the research (If anybody has any research that contradicts this I'd love to hear about it. Especially if it talks about actual measured metrics of productivity - rather that self-reported 'I felt just as productive at home' ones.)
----
"It doesn't take much distance before a team feels the negative effects of distribution - the effectiveness of collaboration degrades rapidly with physical distance. People located closer in a building are more likely to collaborate (Kraut, Egido & Galegher 1990). Even at short distances, 3 feet vs. 20 feet, there is an effect (Sensenig & Reed 1972). A distance of 100 feet may be no better than several miles (Allen 1977). A field study of radically collocated software development teams,[...], showed significantly higher productivity and satisfaction than industry benchmarks and past projects within the firm (Teasley et al., 2002). Another field study compared interruptions in paired, radically-collocated and traditional, cube-dwelling software development teams, and found that in the former interruptions were greater in number but shorter in duration and more on-task (Chong and Siino 2006). Close proximity improves productivity in all cases." -- http://conway.isri.cmu.edu/~jdh/VRC-2008
"Based on the empirical evidence, we have constructed a model of how remote communication and knowledge management, cultural diversity and time differences negatively impact requirements gathering, negotiations and specifications. Findings reveal that aspects such as a lack of a common understanding of requirements, together with a reduced awareness of a working local context, a trust level and an ability to share work artefacts significantly challenge the effective collaboration of remote stakeholders in negotiating a set of requirements that satisfies geographically distributed customers" -- http://link.springer.com/article/10.1007%2Fs00766-003-0173-1
"Our results show that, compared to same-site work, cross-site work takes much longer and requires more people for work of equal size and complexity. We also report a strong relationship between delay in cross-site work and the degree to which remote colleagues are perceived to help out when workloads are heavy" -- http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?reload=true&#...
"Our findings reveal that: software developers have different types of coordination needs; coordination across sites is more challenging than within a site; team knowledge helps members coordinate, but more so when they are separated by geographic distance; and the effect of different types of team knowledge on coordination effectiveness differs between co-located and geographically dispersed collaborators." -- http://kraut.hciresearch.org/sites/kraut.hciresearch.org/fil...
"One key finding is that distributed work items appear to take about two and one-half times as long to complete as similar items where all the work is colocated" -- http://www.computer.org/portal/web/csdl/doi?doc=doi/10.1109/...
"Our study of six teams that experienced radical collocation showed that in this setting they produced remarkable productivity improvements. Although the teammates were not looking forward to working in close quarters, over time they realized the benefits of having people at hand, both for coordination, problem solving and learning.Teams in these warrooms showed a doubling of productivity" -- http://possibility.com/Misc/p339-teasley.pdf
"Despite the positive impact of emerging communication technologies on scientific research, our results provide striking evidence for the role of physical proximity as a predictor of the impact of collaborations." -- http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjourna...
"Groups with high common ground and loosely coupled work, with readiness both for collaboration and collaboration technology, have a chance at succeeding with remote work. Deviations from each of these create strain on the relationships among teammates and require changes in the work or processes of collaboration to succeed. Often they do not succeed because distance still matters" -- http://dl.acm.org/citation.cfm?id=1463019
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 has been the engineers I really want to keep, the ones who solve the really hard problems, are much less likely to be in that group.
In short, you may double your productivity for building that CRUD application, but when you have to solve that really hard problem, you may find you don't even have an engineer who is capable.
1. There is a level of concentration, the "real zone" below it that most development doesn't require. However, when it does, the interruptions become catastrophic.
If you've got a super-top engineer who can solve the hard problems, then they're probably working on something of their own, and can be off in their own room / at home / whatever.
But in my experience, that kind of "hard", mentally intense, non-collaborative work makes up only a tiny, tiny fraction of commercial software development (although it contributes a great deal to the value). So it's not something to base general development practices around; it's the exception.
As you say -- "double your productivity for building that CRUD application" -- that's exactly the point, that's what most companies need, and why most companies aren't interest in remote working.
When they suddenly need a top-level engineer to solve a hard problem, they hire one who consults for three months, works remotely, and visits once or twice.
Secondly, you're assuming that the best developers are going to be more introverted than the developer culture/profession as a whole, which I don't think is accurate.
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.
I've seen that happen (which brings up the separate question of does it matter if the team is N x more productive because of co-location)
I've also seen them stay.
I've also seen them start out very sceptical and then grow to like it (I was in this category - assuming I'm vaguely competent of course ;-)
I've also seen folk I hugely respect advocate and instigate this sort of environment.
.... so which anecdotes win... dunno... hence call for any folks who have found research on the topic.
It takes some commitment to make it happen. Without everybody committing to a low-distraction workplace, volume is definitely the default. But I think the benefits of a team environment make it worth the effort.
The open office plan is a nightmare for tech work IMO.
That is why I firmly believe that given any team, it is best to have them collocated in a large but private room.
However, we are not talking here about the optimal location for any given group of programmers. We are talking about finding an optimal group of programmers without having to exclude those outside a 20 mile radius of your geographical location.
As far as really getting into the "zone". What I do is put my headphones on, pipe some white-noise in and in a minute or two it's no different then working by myself in my home office.
IMO the best working environment places the team in conversational proximity, but provides an option for individuals to find isolation (either in a dedicated room or at home) when it is necessary to solve a hard "real zone" type problem.
And its trend was increasingly remote. Members sought this once and as they could, because it increased their effectiveness so much. (And lowered costs and total time demands -- e.g. commuting -- in positions that were already delivering far more than 40 hours / week.)
This team outperformed the other teams by a fair margin. And some of the truly remote members were among the most efficient and effective I've seen.
Throughout my career, I've seen very little evidence that physical presence -- colocation -- makes a significant positive contribution in software development. I am biased, I will say, in that I both prefer and need a quiet work environment. I feel validated or "justified" in this need, for me at least, in that I've consistently been one of the most effective employees in the organizations within which I've worked. (And I've had numerous people in all sorts of roles tell me this.)
I don't mind colocation, if quiet offices are provided. However, cubes or worse are largely de rigueur, these days, and even in such open space environments, I've witnessed not just the destructive nature of noise and interruptions, but depending upon the staff member enormous amounts of time wasted on "socializing" of various (very off-topic and sometimes inane) sorts. Doubly bad in that context, in that it invariably distracts surrounding employees who are trying to work. And it builds a conflict between not betraying teammates and one's own need to have them quiet down or take it elsewhere.
As for who tends to "thrive" in such environments? Those who "multi-task", juggling lots of things shallowly to the point of making many mistakes and oversights. Those who are constantly "interacting", meaning most often that they are interrupting someone else to solicit knowledge that they should have or be able to look up themselves. Those who use the concept of "team" to disperse and deflect individual responsibility.
Granted, I and the people I've described may be a minority. But in my observation and perhaps in staid corporate environments, those who benefit from colocation tend to be those who need to be herded and hand-held. Those who want and are really able to get shit down, don't mind face to face but are greatly frustrated with pointless and distracting face to face.
(As an example of this latter, we got many of our meetings down to 15 to 30 minutes, when they were necessary. People knew and held themselves responsible for knowing what was up, and the meeting could quickly focus on problem solving and setting a specific course.)
The technologies we use to communicate evolve fast, and I would bet money on the fact that (probably because of mindset evolution and tooling) developers are now more efficient when working remotely than they were ten years ago. Moreover, as we are on HN, we are not necessarily talking about average developers, but more about the ones that are used to Git, IRC, Trello, and other tools which make remote work more doable.
Startup environments are not average, and this must be why companies like Github and 37signals can be successful while having remote workers.
Actually - several of them are. For example:
"Another field study compared interruptions in paired, radically-collocated and traditional, cube-dwelling software development teams, and found that in the former interruptions were greater in number but shorter in duration and more on-task (Chong and Siino 2006)"
This is one of the things I find fascinating. You see the same kind of thing over thirty years as technology changes radically. This makes me think that there's something quite interesting happening in meat-space.
Startup environments are not average, and this must be why companies like Github and 37signals can be successful while having remote workers.
Just to repeat. I am not saying that you cannot be successful being distributed. There are lots of good and sane reasons to be distributed.
I'm saying that there is a bunch of evidence that being co-located is more effective.
Need to have a concentrated task force from 5 various departments? No problem, it's a click away-- no need to book a meeting room, take all your gear (disrupting your workspace) and try to collaborate away from your desk in a mutual location.
Currently I sit beside people working that I previously worked on the same project with, but have now slightly diverged from. Trying to come up with a perfectly co-located office plan wouldn't work, because some number of people couldn't help but be misplaced. Not to mention we'd have to do it every few days!
The evidence from folk who study this seems to differ from this.
The world is full of anecdotes about how much better things are with the newer technologies - yet I can very little evidence that this is true. I know I'm really good at fooling myself about my own productivity. I don't imagine I'm unique there ;-)
And my personal anecdotal experiences over the years (including recent ones ;-) is that you can really ramp up productivity by getting everybody on a distributed team in one place. Even when everybody is normally skyping / IMing / whatever.
Not to mention that most productivity studies are bunk.
The real reason many so many managers resist remote work is because, effectively, they want a fiefdom, and the exercise is often about empire building. An empire of a bunch of Google Talk connections isn't as impressive as a bunch of huddled seat warmers.
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 resposibilites are lifted, a fostering of elitism compared to the outsiders)
However I cannot see a long term study on this (I may be wrong).
My "gut feeling" is that regular funded sprint meetings plus remote working is an area of research that may well yield best long term trends.
But wheres the proof :-)
Not churlish - maybe misguided ;-) I'm really not trying to suggest that distributed work is bad / evil / fails. Just that - all things being equal - colocated teams win. That there is a substantial body of evidence that not being colocated carries a substantial productivity hit.
My "gut feeling" is that regular funded sprint meetings plus remote working is an area of research that may well yield best long term trends. But wheres the proof :-)
Indeed! It's the complete absence of "distributed teams do X and Y better" research that I find fascinating. Unless it's hiding in a corner that I've not been able to find.
What matters is this:
(1) The software company needs your software skills more than you need the company.
(2) You decided and plan your life around telecommuting.
(3) So telecommuting is non-negotiable.
Non-telecommuters tend to be wary of remote workers, not because they are any more or less productive. There's an underlying fear and a need to control risk. A manager who is not used to this want to reassure himself that things are going smoothly. You address that, then things fall into place.
In other words, the managers, speaking for the company say they want more "productivity". What they really need is more control and reduction of risk. They feel a certain level of assurance when they can see people walking into the office on time, every day. It assures themselves of their own continued employment. Give the manager what he needs (the assurance), and this conflict goes away.
As for recruiters, at the end of the day, they are salespeople trying to close a commission. There are only a few exceptions where a recruiter acts more like an agent, rather than trading you like a commodity. Obviously, such people are worth keeping contact with.
I don't think that it's always this clear cut.
In other words, the managers, speaking for the company say they want more "productivity". What they really need is more control and reduction of risk. They feel a certain level of assurance when they can see people walking into the office on time, every day. It assures themselves of their own continued employment. Give the manager what he needs (the assurance), and this conflict goes away.
This isn't always true - or necessarily often true. Most managers I've deal with over the years are much more focussed on productivity than control. Some maybe think that control is the best route to productivity - but that's a different problem to solve.
For a start - everybody here who's building a startup. As soon as you get employee #1 - congratulations. You're a manager. Are you suddenly unconcerned about productivity ;-)
As somebody who is considering non-founder hires in the next year I'm thinking about ways that I can have them be local and co-located. Despite the fact that this may involve getting an office for the first time, possibly moving locations, hiring newbies and training up rather than hiring for skills, etc. Because, in my experience, the productivity gains could well be worth it. I'm going to experiment at the very least.
(It seems to me that most software research stopped as the PC revolution took off)
Communications technology keeps getting better - yet co-location still seems to carry a major advantage. That is interesting to me.
But for programming, I find the best environment is an empty room, no distractions, headphones on, and NO ONE bothering you. That's not gonna happen at an office. Programming requires intense concentration, hard to get in a room full of people.
I'm willing to believe that, for some people, this is true. That they cannot work outside of environments like this.
There are also people who believe that they cannot work well outside of environments like this - but are incorrect (I used to be one of these).
There are also people and organisations who are very successful great developers who love and promote team room environments.
a) I'm not sure of the relative numbers of those groups
b) If the team room environments are a lot more productive then developers of the first sort are going to have long term problems getting work on projects that involve teams of developers
"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."
If you can think of a way I can express that opinion better I'd appreciate it (This isn't sarcasm - it's a genuine request. Judging by many of the replies here I'm expressing myself badly ;-)
There are plenty of good programmers living in relatively cheap places (Like the Midwest, for example). Pay someone in Minneapolis $10-15k less per year than what that same person would make in Palo Alto and that person could still end up above market for Minneapolis.
After all, traditional interviews bias for those who are good at face-to-face communication. There is basically no filter for those who suck at remote communication.
It's exacerbated by the fact that it takes more than one to communicate. If you work remotely, it's not sufficient that you are capable of writing an intelligible email. Everyone you interact with also needs this ability, which tends to be rare in companies that are not purely remote workers.
If scheduling our call was difficult, or if you were hard to understand on the phone, or if there was excessive background noise, I'd hold that against a candidate. If your emails were not clear and intelligible, that counted as well.
People who communicate well remotely stick out like a sore thumb when you are interviewing for those types of roles and if you value it. If you are just looking for warm bodies, I can definitely see how it would be problematic.
That's a really nice point that I'd not considered before.
It's exacerbated by the fact that it takes more than one to communicate. If you work remotely, it's not sufficient that you are capable of writing an intelligible email. Everyone you interact with also needs this ability, which tends to be rare in companies that are not purely remote workers.
The problem is that, from what I've read, the productivity advantage that folk get isn't through the sort of good communication you get from writing effective emails. It's the more ambient communication you get from noticing your coworker has been staring at the screen without typing for a few minutes, or from hearing and correcting a mistake automatically.
A reduction in health risks and distractions are two of the noted benefits. If productivity depends highly on teamwork, telecommuting may not be ideal, but it should improve individual productivity for the right employees.
I'd be interested on whether the comparison is to general open plan offices vs team rooms.
A reduction in health risks and distractions are two of the noted benefits
Health risks? I wonder why. Most accidents happen in the home and all that ;-)
You'd lose that bet. There are a variety of different methodologies and areas studied.
Companies that embrace remoteness from the start (like GitHub) seem to be doing fine, precisely because they treat remoteness as an asses, not a minor concession someone had to make to workers.
Again - not trying to argue at all that people cannot be fantastically successful as a distributed team.
What I am saying is that every single piece of research I can find says that colocated teams are more effective. This is... interesting... to me.
Granted, it doesn't study efficiency but defect rates, but having development distributed geographically was shown to have little negative effect.
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.
The question is when does an on-task interruption stop being something that switches modes. Also while the cost of task switching for an individuals productivity may be bad - it may be a net good for the team as a whole.
(BTW which recent studies? Interested in this since most of the multitasking research I'm aware of is pretty old and has the same general message of "it sucks". Would be interested in newer angles on this. Been away from academic cog-pych libraries for a while ;-)
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).
My experiences have been mixed, but much more positive for co-located team rooms as I've seen folk try different alternatives.
Personally I'd say that the most productive teams I've seen have been co-located - and I've seen several teams who have deliberately moved (temporarily in some instances) to co-locate because they find it works better for them.
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.)
Most are old - but not all. I also think we tend to overestimate how much things have changed technology wise. I was using video chats, distributed source control, etc. five years ago. What we have now seems to be incremental improvements not game changers.
When I first started looking at this sort of thing six or seven years ago people applied the same arguments about email / internet / web....
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.
My experiences have been different. An anecdote battle would probably be pointless - but some other folk in the thread seem to have had similar experiences.
I find it interesting that there's been no newer work showing clear benefits - which is why I'm looking.
Working on many different teams in numerous cities over the last few years, the bullpen and shared space is one of the best ways to remove silos and promote organic conversation (kill meetings). Pairing instead of code reviews (or gated checkins), talking instead of team meetings, one on ones instead of political games and going out for coffee to think through a hard problem. With the right team, you show up at 9am and leave work at 10am (really it is 5pm, but it feels like 10am).
I tried quite hard in my post to say that I thought there were valid reasons for doing remote work. Just that the balance of evidence that I can find is saying that co-located teams are more productive.
I'd appreciate it if you could let me know if I've expressed myself badly - and any suggestions on expressing myself better are would genuinely be appreciated.
As I said in my post - I telecommute a great deal myself. For pretty much exactly that reason you outline. I am really not trying to say that telecommuting is bad ;-)
Why do you guys want to work from home? Isn't the isolation during the working hours hard on you?
As for the isolation during working hours, it makes me fantastically productive -- no junior coworkers sticking their head into my office to ask questions they could answer themselves if they thought about it for a couple minutes. If they can't figure it out after a couple minutes, they can email me or we chat and I'll help them sort it out. When it comes to feeling isolated, I start work early and take a long lunch break. I go over to the college and have lunch with faculty and grad students whose work I find interesting. I give a seminar talk every now and then. I don't really feel isolated at all.
I work from home to help keep my family life a priority. That extra 2 hours not lost to a commute (and sometimes another hour for lunch) that is spent with my family has immeasurable value.
Think of all the office drama, personal conflicts from trivial things, etc. A lot of it is gone. There is still conflict, of course, but it's real conflict, not petty about desk space or something.
As other's say, you also waste no time on commuting.
You lose constant communication though, yes, so you have to balance this with tools. We use IRC and are constantly chatting, joking around, sending funny pictures, etc. so I don't feel isolated at all. We also meet up 3 or 4 times a year, and it's fun to travel.
It's not for everybody, but it's optimal for some.
That depends on the person.
As you grow up, you may prefer to stay close to the ones you love, rather than to the ones you work with. Or you work better alone, with less noise and distractions. Or you realize that wasting 2 hours or more a day commuting for warming up a chair and using an Internet connection doesn't cut it. Or you may just like isolation.
Whatever reason, it's up to the person, and there are quite valid ones. You're doing no harm in leaving if remote working is not for you. In fact, you're doing the right thing.
1. My commute is a drain, doing it five days a week drives me to be less motivated and productive 2. Working remotely has less distractions. 3. I know I work better when I'm not in the same place all the time, I have to mix it up or I end up staring at the wall. 4. A company that can't handle remote work has some major process issues, this is a red flag for me. 5. I have a kid, if I'm at the library or the coffee shop near home, I can come home to him at lunch. If you want to make me hate my job, ask me to spend all my time working in an office without seeing him. 6. If I can work remotely, I'm going to do more work. I'm going to keep working past 5 because I'm on a roll. If not, soon as five comes around, I'm gone.
An office is good, and having the option to come in is great. Forcing me to come in all five days a week says something bad about your culture and process. At least to me.
I was rarely leaving my apartment and working long hours because it was really difficult to "turn off", especially when I never really left the office. I fixed this by getting a dog, and honestly it was one of the best choices I've made. Working remotely, you're in a unique position to provide a great lifestyle for a pet. My dog gets a couple walks a day, and is rarely home alone.
Getting out of the house for one or two hours a day to get some sunshine and take a break is extremely healthy. Plus, there is a local dog park near by that is always filled with people.
Dog aside, it seems that you had much less conversation with other employees than I've got at my job. There is an unwritten rule to leave Skype on, just to hear about updates with the company. Just being able to easily reach out and send someone a message (not through email, basecamp, etc) is important to me.
I think the ideal thing would be an office about a block away from where I live. I am pretty happy being back in an office myself, but hate the commute.
However the issolation is an issue - chat rooms, and Skype/Hangouts have always been a big part of how we hold the company together, and how we solve this issue. But for me coffee shops, are a big deal. I'm in one every day for an hour or 2, and that's where I get all my "water cooler talk" and random socalizing. Which on the whole works out quite well for me.
although once a week for 20m sounds a bit low. we do also have a daily email (progress/plans) and i will typically chat or email with co-workers or clients (as necessary) most days.
i'm sorry it didn't work for you - hope you find a more communal job! :)
I worked in an office for the last several years, and finally just being around people all day every day just got unbearable.
I've been working from home for the last few months, and having 8 hours completely alone every weekday is wonderful.
And my coworkers skype and chat so I get low-grade social interaction.
So I guess that's the answer: for some people being around others is more stressful than being alone.
Communication is extremely important when working in teams, and you'd have to be pretty ignorant to claim remote workers are able to communicate as well as on-site workers. If I need to ask a teammate a question, I turn my head slightly to the left and ask them. They respond immediately. Sure, you can set up some sort of always-on video or teleconferencing, but do all new, growing companies have the know-how and resources to implement that for multiple remote workers? Or are you just so special that you deserve all that extra effort?
Small, early stage companies also seem to be focusing a lot on developing a company culture these days. Remote workers don't fit into that strategy very well, if at all.
I'd welcome a remote employee under one condition: They're required to be on a constant video call so their on-site team members can see and talk to them at any time.
And then they stand the chance of losing anywhere from 20 minutes to an hour of productivity thanks to your interruption.
Part of the reason remote work appeals to so many of us is because we don't deal well with the constant stream of interruptions that occur in many office environments.
I don't believe this is the case for everyone. There are some individuals capable of working productively in a noisy environment all day while sleeping only 3-4 hours per day. But I think such individuals are rare, and you're doing yourself and your organization a disservice if you think all developers can work this way effectively.
I agree that it's distracting and irritating at times, but that's the nature of working with other people.
> Another field study compared interruptions in paired, radically-collocated and traditional, cube-dwelling software development teams, and found that in the former interruptions were greater in number but shorter in duration and more on-task (Chong and Siino 2006). Close proximity improves productivity in all cases." -- http://conway.isri.cmu.edu/~jdh/VRC-2008
From adrianhoward's post above.
Do you require that local employees drop the task they're working on to respond immediately to any question from anyone and completely lose focus on real work just to save you from a minute of reading some documentation?
Either this is an absurd double standard, or your office is a terrible environment for doing any sort of independent focused work (which may well be just fine, if your office doesn't do that sort of thing, but that's what most people who work remotely are going to be doing).
Yes, remote and physical team members must have a mobile webcam that they bring with them on all breaks. The webcam must have RFID tags built into it, and their homes and frequent break locations must be equipped with RFID scanners to verify the location of the camera and prevent any funny business. No exceptions, ever.
Also, when people ask questions they never EVER preface them with "Let me know when you have a second".
Seriously, are you in third grade? Can you read something and not interpret it literally? The Greek knew reduction to absurdity was a shitty argument more than 2,000 years ago... how come you still haven't figured it out?
From adrianhoward above:
> Another field study compared interruptions in paired, radically-collocated and traditional, cube-dwelling software development teams, and found that in the former interruptions were greater in number but shorter in duration and more on-task (Chong and Siino 2006). Close proximity improves productivity in all cases." -- http://conway.isri.cmu.edu/~jdh/VRC-2008
You're confusing people who are bad at communication with working remotely being bad.
Maybe you've never worked in an office environment with someone who has the same issues, but they're by no means alleviated merely by having their ass in a particular chair.
> Or are you just so special that you deserve all that extra effort?
From the employee point of view: Is your business so special I should sell my house, pull my kids out of school, and move so I can work for it? Do you really want to pay me the 50% pay differential I'd need in order to live in your higher-cost-of-living and lower-quality-of-life area? Is your (presumably internet-focused) company so incompetent it can't manage to use the same systems that we use in our day to day work and life to communicate?
> I'd welcome a remote employee under one condition: They're required to be on a constant video call so their on-site team members can see and talk to them at any time.
Completely laughable. Do you have closed circuit TV recordings of everywhere in the office?
I'm actually working with a distributed team that does this. Everyone is on a shared video conference eight hours a day. If you want to talk to someone you look at your video conference team to see if they are at their desk, on the phone, or talking to someone else. If two people need to talk without disturbing others, they mute their video conference mic and jump on Skype. You can still see them, get their attention, etc. but you don't have everyone talking over each other on the main video conference channel.
It actually works a lot better than I expected.
People make those choices knowing it limits their career options. Since when are companies expected to accomodate every lifestyle and location employees might desire? That's pretty self-centered.
> Completely laughable. Do you have closed circuit TV recordings of everywhere in the office?
Why would you need closed circuit TV for team members who are all sitting in an office together? Is there something difficult to understand about tying to create an on-site presence for a remote employee? There are companies that already do it.
WTF? What kind of person checks their email every 5 minutes and gets any work done?
> If I need to ask a teammate a question, I turn my head slightly to the left and ask them.
How is that a sign of productiveness? If anything this is an argument for working remotely. Read PG's essay on Maker's Schedule: http://www.paulgraham.com/makersschedule.html
Avoiding this is the primary reason I like working at home. Getting distracted by things like that are a productivity killer for me.
Teams are more productive when they're in the same location. That is a fact. Your individual productivity may suffer at times, but the team will do better overall if you all work together in one location.
"you'd have to be pretty ignorant to claim remote workers are able to communicate as well as on-site workers. If I need to ask a teammate a question, I turn my head slightly to the left and ask them. They respond immediately."
And here's why, Skype overcomes this problem... I've worked remotely in plenty of team situations where I've sent a chat message, and got instant response, consistently.
When I get a Skype message in these situations, the only reason I wouldn't respond is if I wasn't at my desk for the same reasons someone wouldn't be at their desk in a face-to-face office situation.
I think, as a business community, we just need to get more and more comfortable with remote working arrangements, and implement policies that could cover the various productivity issues (if you don't respond to a message within 'X'... this happens etc...).
I also think we have to remember there are productivity issues in the face-to-face office scenario as well, when people get together they tend to "talk around the water cooler," they tend to "go out for drinks, then call in sick the next day" etc... and other social-oriented productivity issues.
Not all productivity issues are bad either, if someone working remotely doesn't answer a chat message in 7 seconds, they might be improving themselves in some manner. ;)
The "Hello???" kind of attitude toward peer engineer communication is akin to a mobile phone notification or a blinking chat icon, all enemies of organized thought that leeds to maximum quality output in minimum time.
That sounds like an incredibly frustrating work environment.
I mean for them, not for you.
Otherwise what happens is that the people who can see each other face to face and in the hallway will of course do it, leaving the odd remote person out of many conversations. So either the remote person won't be as in the loop as the others (bad for them, and bad for the overall team dynamic because someone needs to be treated specially), or else everyone on the team needs change their otherwise perfectly normal and perfectly productive patterns of communication (leading to frustration with the artificial constraint).
So there's nothing inherently wrong with remote workers, but it's probably better to go "all in" like some companies are starting to do, or try to avoid it at all, except in very special circumstances.
I bet many of the "99%" of companies the author was referring to that said "no" to his working remotely simply fell into the category where the majority of existing employees weren't remote, so they they chose not to introduce the new and arguably difficult to manage dynamic.
For example, brainstorming sessions end with scribbles on whiteboards, and a fleet of Post-Its that say "Do Not Erase!" It's perfectly adequate documentation because the same team comes in the following afternoon and keeps going. But the one or two people that work remotely are never going to see it. And no matter how much Skype you do, it's just not the same as being in the room as it happens.
In my experience, I was working remotely in the company's early days. The in-office employes really started to grow after me. While I remain the only one that really works outside of the office, the culture of remote workers was instilled from nearly the beginning and don't really find any of the problems you suggest to be true in my case.
Same problem (seems off-topic but i am not so sure it is) is for someone who doesn't smoke. I don't and I thought about starting (or at least getting myself chocolate cigarettes) to join the colleagues outside during the break to stay in the information loop.
I have yet to work in any place, remote or local, that doesn't have a large portion of the executive team (which is always a double-digit percentage of the total headcount of the company) on the road for various reasons a substantial chunk of the time.
I think companies that rely on this face-to-face dynamic (of which there are many) are doomed because the normal operation of their company will necessarily disconnect people on a regular basis. If you're not putting all the critical information somewhere reachable by everyone, all the time, you're shooting yourself in the foot, even if (in the usual case) everyone shows up to the same room every day.
I am struggling with this same question, but from the other side. I help teams become more Agile, and I'm a startup junkie, so all I care about is performance here. I want to know what works best in terms of product quality and pivot ability.
And guess what? So far it's co-located teams that kick ass over distributed teams. I wish it wasn't so, and I'd love to hang back in my home office and work, but that's not the way the numbers are looking.
To be more precise, yes, you can become a "commodity" programmer, that is, somebody that people slide a list under the door to and who delivers code on a regular basis. In this case you are competing with commodity programmers around the world who are willing to work for peanuts. If that's your thing, hop on over to one of the programming job sites and have fun with it.
Now I can already hear the objections. With all these tools, why can't I be just as plugged in as if I were in the office? Aren't you making a false dichotomy, asking us to either be on-site or completely on our own?
Yes, I am generalizing. Look, I don't know why the tools don't work to do the things they are supposed to do. Certainly we have chat, VOIP, and all kinds of awesome communication tools. You'd think that would be enough. But it's not. Instead of powerfully performing teams we get mediocrity.
I suspect that software development has a powerful social and human aspect that is not replaced by tools. Working in a team isn't just trading streams of data across a wire. It's going out to lunch, having a beer while talking about work, or making an oddball suggestion one Wednesday afternoon that turns out to change how everybody thinks of the problem they're working on.
So sign me up for remote work too. Just show me how it's going to be as effective as co-located teams. I see a lot of fluff from places like 37Signals who make a marketing strategy out of being so aweseome, but I'm not seeing results in the real world. I hope to learn more -- and I hope this problem gets solved.
When I want to chat with someone, I want to do it instantly, like walking up to someone in the office. The Skype concept of "dialing" someone is old, antiquated and feels... laggy.
There was a video chat client promoted on Hacker News a while back that allowed for instantly initiating a video chat session with a colleague.
Sococo, a distributed agile client (with video support) also claims to do the same thing, allows for you to instantly create a video session with anyone in your virtual office.
IM works because it's immediate. Video chatting must be the same in order for a distributed team to work.
The tools aren't there yet.
You have to have a team that can come together in ways other than having a beer every Friday. Sometimes this is accomplished by having a once per quarter, or twice per year, or even once per year gathering. Those are generally good times for team building activities, not just commits.
Having non-work interactions with your other co-workers can also be helpful. Something as silly as firing up a Quake server or playing Halo together can make a difference.
Also, you cannot expect to apply standard management approaches in a distributed team environment. It can be a struggle because you have to find a new way to evaluate the contributions of your various team members. I think that this is actually where most distributed teams fall apart. Managers simply aren't trained for this environment.
For what it's worth we have done several experiments. We even tried having a remote worker on a constant skype connection, with a monitor/camera in a shared office with other workers (over a period of several months). Based on our data I would say that there is a measurable decline in value when a person shifts to >50% remote work in our environment. That may not be true for other environments of course.
Did this help things at all?
Can you elaborate on this? Do you have any specific data points you can share?
I think the "these companies are wrong" posts, though, are not attempting to see it from the other side.
Try to put yourself in the shoes of these startups. In super-super early startups (e.g. pre-profitability or definitely pre-revenue) one of the goals (aside from staying afloat) is to build a sustainable culture (company etc.). It's very difficult to build a company culture AND product AND hit profitability AND 1,000 other things from scratch before going out of business.
When most are co-located and a few are distributed it just adds one more thing to the pile. I've done it before, so I know how hard it is, even when we were all 'on board' with it.
It's just harder; you need to start from scratch with the assumption that any one can be remote at any time, and so you build your tools/processes accordingly (if you have a physical kanban board then it'll be a real hard thing to support remote devs).
For just one non-top 1% of all software-developer persons? The overhead is probably not worth it if you have a ready talent pool in your city (especially if you now have nexus in another state, which is a very real risk as states are looking to increase their revenue. ugh).
For Joe Average, or Jane Above Average, these companies would prefer to hire a local person than remote. That makes sense to me.
As a big part of getting from 'startup' to 'sustainable business' involves managing risk. So, understand where most of these businesses are coming from. Having one or two remote people in a company full of on-site people is a risk (not from a technical perspective, but from a culture and focus one), and not one they're willing to take.
It's a trade-off, and one that can make sense if viewed in context and done for the right reasons (note: "We can't control them/see their work/trust them/need to see their faces/need them from 9-5/etc." are WRONG REASONS).
Ranting about a system problem isn't very useful; I'd like to see more posts about how to convert a primarily on-site team to support 'work anywhere'. What processes and tools need to change to do this?
1. Continuous Integration (and or delivery) This is the sine qua non. Everyone should be able to check out and build a complete working eco system and run all tests on their local laptop or Rackspace cluster you rent just for them
2. Really, get the continuous integration working. Stop now and do nothing else till you have. Tell the dev's remote working is only possible after one month of a CI process that is never broken itself (although build can break). Spurred on, everyone will suddenly get that CI build working.
3. The CEO must build a complete off site copy of the entire company on his remote laptop. Is it getting boring yet.
4. Agree on one place to store all documents, all meeting notes, everything. Do not split comms over IRC and Skype and gmail and ... It will mean no one can reliably contact anyone else because "oh I left you a message on Skype", "but I live on IRC"
5. Get different people to work together on different areas. Pair programming is not ideal IMO, but having Fred write the code for task A and Bob principlaly write the first tests, means they have to talk and decide a solution, and Bob keeps a friendly competitive eye on progess. Move these pairs around a bit.
6. Stop trying to get updates for management - its either working code or not.
7. talk to people a lot. Watch thier checkin velocity - it will speak volumes. Talk if it changes.
8. Assume, perhaps commit visibly, to people as being safe in their jobs for a long time (2 years minimum). This to me seems the biggest - people need to feel safe. Maybve thats just me
This can't be understated. When I ask the founder where the company logo is and they say "it's on one of the external harddrives sitting around the office somewhere", it's incredibly frustrating. The most well-oiled startup I worked for had a perfectly organized central-storage of digital resources, which greatly contributed to the smooth workings of the company.
1) Most investors know that startups are generally at a disadvantage with a remote team and give founders shit for hiring remote people. I've found thats one of the reasons early stage folks don't hire more remote people. And there is some truth to being more creative with a team around you... if the team is awesome. Also communication is infinitely easier when you can walk over to someone and ask them a question rather than wait for them to respond to an email
2) Working remotely when you are self-directed and not under tons of pressure, really does lead to awful productivity. At home there are just so many ways to procrastinate
3) However, you can be more productive from home when on a tight deadline. No coworkers bugging you and the music cranked however loud you want, working whatever hours you want means laser-focus for some people.
4) A good checkin routine is key. I've been most productive and been in productive remote teams when there is a routine like a morning "standup" call, and maybe an afternoon call. A good ticket tracker is crucial. Working for folks who use the phone a lot tends to have the most productive outcome
5) There are a lot more small companies who use all remote workers than you think. But they hide in the shadows, and typically are very unsexy cashflow oriented businesses, not venture backed startups. If you're willing to work for consulting businesses that do boring backend for big corps you can find good remote work. But if sexy startups are your thing, expect to get a lot of hesitation until you really prove yourself...
6) Change environments. Sometimes the house can stagnate - spend part of your day in a coffee shop, lease a desk in a cowork space etc and change up workspace once in a while. It helps me at least
This is not true for everyone. There is a huge variance in how vulnerable people are to procrastination.
Otherwise just skype and chat keeps one in touch
(I would be tempted to mandate a person to person chat for each team member to each)
Easiest way to make this work is to give developers enough equity, so they are motivated for startup to succeed more or equally as getting the paycheck. Eric's POV stands, but he's a co-founder, he has a significant stake in the success of the company.
The benefits of hiring remote workers early on are numerous. The fact that it leads to working more asynchronously, and makes you available to talent anywhere are worth the price of admission alone, IMHO.
[EDIT: oh also: we're hiring]
We're also in SD, but trying to build a team here and not finding as many local applicants as we'd like.
Early on though, getting big enough to have that issue sounded like a very high class problem so we decided not to care much where people were and focus on getting things built.
[Aside: That's awesome that you're in SD! Drop me a line and I'd be happy to pass your details along to some of my SD developer friends]
This is really pretty simple. If the local talent pool is exhausted, and you want good people, the smart move is to hire good, remote people. Bring them in periodically as needed.
The really really smart move is to let them bid on some of the tasks - a sort of granular level development contracting.
Personally, I like it, but we also already had a culture of doing a lot of talking via IM. In this day and age, there's no excuse for not being able to get ahold of people. But by the same token, you can't always assume someone is going to respond in 30 seconds. I hope no one is so dependent on other people that someone taking 20 minutes to respond is a complete blocker.
We use Google hangouts extensively for meetings and often open them up just to chat and connect with fellow devs.
We have lost a little bit of a sense of belonging to the team. I think extensive use of google hangouts helps a lot with this. With most laptops having a camera, there's little excuse not to fire one up whenever anyone wants to talk.
That's awesome terminology. I work from home now, but I had a test run in my previous job that was almost always in the office. I ruptured my Achilles and was unable to move about. I felt more pressure (in a good way) to get stuff done, because I felt that i could delay my return to the office longer if it was crystal clear that I was being productive.
I found the same odd productivity boost working a week out of 2 week vacation on the beach in NC. Surprisingly, I was able to focus a lot better since i wanted to have lunch with the family and go for a swim and also because I knew I wanted to stop at 5PM for some beach time. I should clarify that I wanted to stop and feel good about myself that I accomplished a day of work.
Once that is out of the way, whether you're local or remote is basically irrelevant. All the disadvantages to remote work have always centered around an insufficiently asynchronous work pipeline. I say this as someone who presently travels the world and works on a large array of projects and would never even consider a role that attempts to change that part of my life, simultaneously in the past having worked extensively in async and non async environments both local only and remote.
That's only true in some projects, and perhaps not even the majority.
It seems like a very developer-centric perspective. But there are a lot of projects where the real value comes not from the actual programming, but in how everything is tied together, in the prioritizing, in consistency, in common understanding, with continuous improvements that deliver what's actually needed. The programming may be relatively trivial, but good management and teamwork is highly complex, and you need smart employees who are all able to see the big picture and keep on top of it.
This is a very common scenario (more common, in my experience), and whether you're local or remote makes a huge difference.
Conjure up any wishy-washy "reasons" or anecdotes why you have to be onsite, but I've yet to see any facts to back up the position that onsite all the time is better.
I do think it is good to work on site periodically and sometimes at least a day or two per week if you can, not because it is needed to produce good work and products, but because it helps kick off, complete + integration days and earns some office points in the not so fun office game.
Many places that have offices and require 8-6, their engineers end up getting interrupted all day and then do all their work at night. So in that case telecommuting would be a huge benefit to the individual but maybe not as much the company since they get so much extra time out. Maybe it is more a salary thing, getting lots of work out of you. I'd argue it looks like more work is being done at an office but remote teams HAVE to get actual work done, there is no other metric to be measured on.
I actually like to go into the office from time to time, but there isn't any point when no one is there. I spend a lot of time at various clients' offices, and I notice a correlation: the more opposed to remote work a company is, the more meeting-driven it is. It is as if management feels like it needs to do something with all these bodies taking up space in the office. I see small to mid-size companies sucking up productivity with endless meetings.
That said, I think my company has lost a little bit of interactivity with the remote work force. I'm putting together a Google+ Hangout I call "Engineers' Office Hours". The idea is that if you aren't doing something billable, you hop in and offer help to someone stuck on a problem.
On the Google Hangout thing, I sometimes find myself thinking(for the day I get a remote job again), why couldn't people be on a Hangout the whole day(In my case almost all of the dev team were full-remote)? When I did there was a techies chat always open on Skype and we used to chit-chat just like we would IRL, commenting on the Hacker-News-like-stuff, talk about semi-work-related stuff like the our most productive setup, crack jokes at each other and etc and there was definitely a "camaraderie vibe" even though we never met...
Now take a virtual environment like this, add more virtual face-to-face, Planetside 2 afterhours gaming sessions.. I don't see it lacking much, if anything, compared to a in-place tight-knit startup team
The biggest takeaway - so far - is that successful telecommuting is determined just as much by the given task as the person. I serve as a mixture of business analyst/developer/test coordinator/project lead/cat herder for my project team. Some tasks are easy to coordinate via e-mail/IM, screen sharing and conference calls (like scheduling, status updates, walkthroughs of protoypes). Being able to power through functional and technical specifications is a tremendous bonus of working from home. When it comes to gathering requirements, acquiring feedback and dealing with politics, however, it's really much better (for me) to be in the office.
I've worked places where remote working was discouraged, and the reason given was along the usual lines of "well, it just works better to have everyone in the same room". But these were also places where I noticed an aversion to and an avoidance of writing in general.
Working for home was my own choice so that I can give time to my infant kid which is most important for me. Working from home gave me relaxation. I could work on my chair or on my bed, nobody was going to ask me how I sit. Second most important thing which helped me a lot was to have a feeling of helplessness. When you work in an office, you often ask some of your peer to write a part of your code or look into it. When you work alone you have to do everything on your own, finding solution and implement it in your own code. In the era of Stackoverflow finding a solution of your problem is not difficult at all.
It's been a year I am working individually and I am enjoying it. Instead of wasting time in gossips about Boss or management, I prefer to play with my kid, his smile gives me enough oxygen to keep me motivated for rest of the day.
I can see why Big Bank X would not allow their employees to do that.
I personally find a 50/50 balance between working on- and offsite. With 2 dogs and 2 kids and stay-at-home wife - working from home for me is a challenge.
But working on-site 15 minutes away from home is a perfect arrangement.
That's my plan.
3 days working from home as daughter is at nursery and wife at work.
1 day working at the house of one of the other founders 20 minutes away, wife and daughter.
1 day looking after daughter whilst wife at work.
Weekend a mixture of family time and work (required since some events relating to startup occur at the weekend.)
I work in a startup spread to three continents. Works very well when everyone knows their role and makes sure information is spread properly.
Remote work and offices create opportunity. They also focus on product, look at 37signals and how they remote. Would that company even exist as they do without remote work? Remote working is freeing and opens up all sorts of competitive advantages.
But I think our wiki pages and pull requests are what make it work. We also have been making information dense screencasts for each other. I'm going to be so bold as to say a remote engineer has forced us to work in a way every engineering team should.
I'll have more to say about this soon enough :)
Some people have experience with folks 'working from home' that are not 100% positive. Some folks (like me) have experiences working remotely that are not 100% positive.
And yes, casual, face to face communication is an important dynamic, even for tech workers.
I guess this is even more important for small companies of up to 20 people where there is no exact "you have to do exactly this and this and this and then you're clear"-thingie. I gained lots of insights regarding customers or how we should better build things in our tech dept. just by having daily casual water-cooler chit-chats with the couple of people we employ in the sales department. It's very, very difficult to emulate using modern technology.
The best set up, in order, for design work
* Best: Everyone in the same room * Good: Everyone remote but in the same time zone * Bad: Some people together, some people apart, in the same time zone * Worst: Some people together, some people apart, all in different time zones.
Now the one thing that his work, and indeed most discussion misses is they "Why" of remote workers. No one has tested "Given the available talent in our city, should we hire the best people around we can so that we're all together, or should we set a higher bar for talent and deal with the whole remote issue".
It all comes down to whether or not you can get the best people. Lots of talent tends to flock to big cities (SF, NYC, etc), but that creates its own problem, in that a start-up is now competing with the big spenders offering impressive packages/options/etc.
In short, I guess, It depends...
(Edit, forgot the url: http://www.uie.com/brainsparks/2012/01/06/design-teams-co-lo... )
If you want to work remotely you're fighting an uphill battle. Most managers/employers know how to manage face-to-face. Remote management is a skill that many haven't learned yet. It is possible as you mention, however both of those work places are VERY progressive.
If you want to work remotely, sell the benefits of remote working to your employer. Make them confident that you're able and capable of doing remote work. Sell it! I contracted a best friend this summer to work remotely. I had confidence in the outcome because I trusted him. If you can sell that to an employer - how much more likely are you to get what you want?
'Does biggies which acquire startups care whether the employees of the startup work remotely or from a central (base) location?;
When I worked in an office I used head phones (not buds... big ol' ear covering things) to help and was criticized for wearing them (it made me seem unapproachable). In reality it was to help keep me calm and focused.
At home I face neither the noise issue nor the unapproachable issue.
Remote work may not be for every team but in-office work is not for every person either
Whenever someone says to me "coworking space" I just marvel. Boggle, really. Why? I cannot imagine ever wanting to be in a room full of other people in order to motivate me to get work done. I call that the tyranny of a room full of people.
If I am done for the day, I'm done. If I want to crank through then night, I crank. If you cannot motivate yourself to work hard when away from a crowd of people, I just feel like yer some sort of pack animal. I agree, being near a boss makes you work more, but mostly, it just makes you look busy. You spend more time trying to find something stupid and mindless to do, during those down hours when yer brain is dead, than you do doing actual work. Whereas, when I'm home, I just hammer through everything I have to do immediately.
If my inbox is full, I don't leave the computer. But when it's empty, fuck ya'll, I'm going to the park.
I'd much rather clean the house and cook a steak when I am log jammed than feel like I have to sit quietly at my desk, looking busy. I think our education system trains people to be too dependent on others for work ethic.
I think many people use a crutch that it will be too hard to build a company that way, but that is because they think in terms of "average" developers. With average developers, it will be hard, but once you realize your talent pool becomes much richer and will often include people who are already familiar with working remotely, it becomes much, much easier.
It does require commitment and effort, especially if most employees are office-based. I find I have to make more effort to make sure what I'm doing is visible to the rest of the team, and to communicate. Its easy to think you're communicating enough when others don't see it that way.
When I'm in the office I schedule tasks that need face-to-face time, and when I'm at home my only interruption all day is usually the morning standup. I consider myself really lucky to be able to work like this.
The practicalities are simple and inexpensive too. From home I can vpn onto our office network via a cheap soho router and bundled vpn software. I can use the office phone system with a cheap headset and sip application. Google apps is £2/person/month. Google talk, G+ hangouts and trello are free.
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.
However, in early stage startups, first employees usually have a much wider role. Like founders, they have a bigger say in where the company should move forward, priorize what should be built, hell, even clean the office and make coffee.
Also, never underestimate a good discussion over a coffee, beer or lunch to talk about problems. There's a reason why most of the best ideas are written on a napkin!
Lastly, I might add that when working on a very early stage startup, founders and employees build such a strong relationship and it's hard to achieve that level over remote working.
Again, I'm not saying it's impossible. For instance, founders who already know each others before starting the company may feel comfortable working hard remotely together. And I'm sure there are other cases when it totally makes sense.
1) Both offices have a TV in the main office area with a web cam. We can see what they're up to, if someone is at their desk, etc. and they can do the same. This has been great for quick questions that are harder to explain over IRC and even for a simple waving good morning when I walk in.
2) We have a handful of "remote presence devices" in our office. This allows them or anyone else working remotely to attend meetings without having to ask someone to Skype in or conference call. Once again, it's the simple things like being able to wave or gesture to someone as they're rolling by. (Full disclosure, I work for a sister company of Suitable Technologies, who make the Beam).
3) Like others have mentioned, centralized, collaborative document control (Google Docs that are actually kept up and maintained), source control (GitHub with pull requests), and chat (IRC) help a lot.
4) A trip every 3 - 6 months from some of the Argentina team to the Palo Alto office. While technology has helped, there's still something to be said about being physically present.
I've always found that to be kind of a turn-off when I've interviewed people for software engineering positions. It's NOT that it's not an important question - it's that it shows a bit of social cluelessness. It's the same if the first question someone asks me is "How much vacation time do I get?" or "How much money do you pay?" Of course those questions should be discussed eventually! But I'd like to get to know the other person a little, first.
Ya, I know. It's a seller's market, you're busy, you don't want to waste your time with unproductive job possibilities, etc.
BUT EVEN IF non-telecommuting is a deal-breaker, maybe you should start off asking about the project, the company, the other people you'd be working with. If the work looks promising at first glance, start off by selling yourself first, rather than immediately focussing on the "OK, tell me what's in this for me, before I waste any more time on you and your company" side of things.
Simply as a matter of strategy, you might do better to postpone that question after a round or two. If they like you, then even if they don't have universal telecommuting, they may want you enough to be happy to have you as a telecommuter.
In all, I think it worked out well. We build a useful product and pulled in several customers. Since we covered the East and West coasts of the US, we were closer (geographically as well as time-zone wise) to many of our customers than we would have been if we were both in the same office.
I don't think there was ever a time when we thought we'd be better off sitting in the same room.
I still get recruiters who contact me. It isn't as much as it used to, but it is a fairly good way to screen whether a recruiter actually read my profile or not.
If there is a vocal and loud number of engineers who demand 100% remote work, then (eventually) it will get through to recruiters.
Assuming that this is a real problem and not a pseudoproblem[1], then one would think that market forces would eventually resolve it. (Companies full of remote working superstars should outperform the rest.) But if the equilibrium is one in which remote workers are in low demand, well, that's how markets work.
[1] By which I mean, the evidence here seems mostly anecdotal. It's easy to claim that you're more productive when working remotely, but on average, how productive are remote workers, when considering all relevant factors. I would like to see some hard evidence on this point.
This is a complex topic that i intend to discuss more in long form, but in short, with contemporary communication and collaboration infrastructure the productivity of small highly skilled dev teams is unaffected by location.
I can prove this for our case at least (5 team members).
I am writing this from a coffee shop in Mexico, we currently have people in South Africa and San Jose, if this lifestyle appeals, please do get in touch!
Lot's of open source is designed over skype or even jabber using a common pad to doodle on
Without daily performing his show in an office it will probably much more difficult for him to convince those who distribute money that he is that valuable.)
Other people's experiences are likely much different - I am just relating my own experience.
Do I like working remotely? Yes! I also really like being able to mostly work the hours I like, when it is most convenient for me.
Remote working is ofter perceived as a dream job, which, in fact, isn't so much. Besides performing your regular tasks, you have to deal with all the self-support stuff yourself, including avoiding your work stepping over your personal life, which is even worse if you work at home. It takes some practice to do that properly, to say the least.
I think that's where most people trying to work remotely utterly fail. They think they should be able to work anytime, when others will likely want to talk to them in normal hours. They think they don't need an schedule, when the only thing that would allow them to do their work is at least a self-imposed one. You won't be able to cook your meal and do your work at the same time, trust me. Lastly, if you lack self-discipline, remote working isn't for you.
The other side of the coin is even sadder: it's not that companies are not "open" to remote work, is that they just don't know how to manage it. They usually play their silly manager techniques by the book, which are for on-site teams (and often don't work, anyway). They just can't handle remote work. A clever manager capable of that is more scarce and expensive, also.
Hiring/Recruiters have the worst of both worlds, plus one thing that drives me nuts: regular hiring doesn't work for science and technology. If your task is looking for a "Python developer" and you think that it involves training some snakes, you're out of your element. If you're not capable to understand at least the basics of what you're looking for, you won't find it, and even worse, you won't understand what "training snakes remotely" means.
In the end, combination of all those things hurt remote working for everyone: people who doesn't (and doesn't want to) know how to do it, companies that doesn't know how to handle it (and they try with their archaic means, failing completely), and the guys in the middle that just want to score another commission for a hire of dubious quality.
Sorry, it ended up being longer that the rant itself.
(Disclosure: I've been working remotely for a few years, and I wouldn't change that for anything else. I agree completely about the current status of "remote working", hiring and reasons for meetups. But please, if anyone thinks remote working is a dream job, go get a regular one and stop making things more difficult for the ones that actually want and know how to make it work)
I've had 0 remote work opportunities via recruiters.
There are workflows that don't need you to be in the office. There are workflows that need you to be in the office almost every day. And there are workflows in between.
Some people can't effectively work from home. After a while, they stop doing what they're supposed to be doing. Some people have no problems with that.
Every job is different, every person is different, every company is different. No one answer will fit every situation.
People come in all breeds, and I know that some people absolutely cannot get work done unless they are around others working, whereas others need quiet and the comfort of their own home to be the most productive.
What it comes down to is if you want to hire remote, you need to make sure that your talent is self-motivated enough to do their best work at home (or wherever). If you require an office, make sure the culture fits, otherwise you'll have employees constantly distracted and grudgingly coming into the office every day.
You can have mixed teams, and it doesn't even matter the ratio. I've been on extremely successful teams where only two of the 30+ engineers were remote, and they did their best work remotely. For others, separating work from home greatly improved their productivity.
Don't forget -- your empty house can be the most distracting environment you have access to. It's all about personal culture and fit.
There are obviously arguments for both sides but I know (from working with a remote supervisor for 6 months) that communicating in person is easier than communicating remotely.
He who pays the piper, calls the tune.
If you're right, and developers want and should be able to work from home, then economics suggests market rates for office-bound employees will go up, and profitability at those companies will go down.
And there are wider issues here. So you allow the developers want to work from home. What about your project managers? Your admin temps? What about that lazy developer who you can't fire, but you know does nothing at home?
Also, how do you still have those serendipitous chats around the kettle, in which you, the business development manager and the designer realise a huge sales opportunity?
Having remote-working will make perfect for some businesses (be they startups, agencies, or huge corporates), but it never comes without cost. In some cases, those costs will make it worthwhile paying to have developers working inside the office.
I haven't seen any evidence in our commit or bug history to suggest we were more or less productive when all of our developers were in the same room.
Strong factors for success in a distributed office are:
+ Fit with the company culture. High-ceremony or even medium-ceremony development patterns work less well or not at all with remotes.
+ Fit with the personalities and work habits of the staff. Not everyone is capable of working remotely.
+ Industry requirements. Some high-security situations require that work be done on premises.
I once ran a very successful remote project where everyone worked at home. All had a separate office in the home that they could close the door.Continuous Integration / Delivery is going to simply change all of that. If you cannot measure a writers output by reading their writing daily, you cant run the team anyhow
I think what the original author has to see is that it's not about his strengths/weaknesses, he might be a very good remote employee. What also factors is the organizations 'warts' and whether or not they are able to make use of the employee effectively. I know at my last workplace so many decisions were made verbally on the spot in unscheduled meetings. It drives me crazy, but this is how many businesses operate.
"No matter where you are, most of the smartest people are somewhere else."
An employer or business partner insisting on full-time face-time will be at a disadvantage compared with competitors who are more geographically flexible.For example, my company's work in the biomedical space often necessitates us being in partner and customer labs to best understand workflows. While it's possible for us to have some elements of our development be remote, we strongly prefer keeping things local; we believe it's important for everyone on the team to have exposure to the domain we work in. This is a cultural choice we've made, but it does make remote work tricky.
I think having everyone in office in a small company is often more about building a great office culture, and less about it being the only way to build a company. Small teams tend to do more than just work together, they integrate their socials lives. When that is the type of company you are trying to build, remote workers don't fit into that picture right away.
Also you cannot forget the difference between good distractions and bad distractions. Overhearing a conversation (between other developers), is less of a distraction than overhearing a couple of suits on sales calls or talking about the game last night. You can still be in the zone, have good distractions, be an introvert, noise cancelling headphones, etc.
A small team on-site is going to rapidly move through ideas, faster than chat rooms or even facetime/skype can truly allow, as natural as it appears it is nothing compared to in person conversations. That moment when your team discovers their Epiphany, in my opinion, is much more likely to happen in person.
I was just talking to a surgeon about a procedure and mentioned how I had seen a study saying that a similar procedure had slightly more side effects or complications. He pointed out that there is a big difference between the way that different surgeons execute the procedure.
So I think that it is harder to make remote work effective for people who are used to traditional work and don't study up on the best ways to create a good remote working environment.
I personally believe the most effective tool for remote working is just a shared chat room with a history like Campfire and then putting most of the relevant conversations in there. Ideally I think that everyone should be in that room including customer stakeholders if possible, (although I haven't seen anyone really include the customers in that chat room very much).
The second most effective tool would be things like screen sharing and phone or VOIP, which can help a lot, but you have to be careful not to do that too much when it might be better to document things in a common chat room.
I may just be slow or lazy or something but as a more general comment on software project management I feel like the issue/task tracker or Pivotal or whatever is an extra distraction from the chat room or more direct communications because I can only really focus on a few important things in a day, I would like to deliver them immediately, and if I have a problem to respond to or something to communicate I want to do it directly rather than hoping or assuming that someone is going to see a notification email or whatever.
The world isn't that binary.
One main issue is that these decisions need to be made based on the discipline of the developer to work well in their own time. It's not an issue with self-directed and self-teaching developers, but the simply, just, aren't.
I've worked remotely for a good 5-6 years now. You really have to still be reasonably available by phone, IM, and for meetings as reasonably needed. You have to provide benefits only available by distance.
One that I share a lot is remote screen sharing. You have to cram in beside each other on a computer, so pair programming actually works not bad if you need to help someone, or do something together.
Sometimes I have to give up an afternoon to do a larger "state of the project" meeting once a month, which is fine. Ultimately it's about a balance that all projects need. You do get some benefits from being in the same room with the right people that you won't distantly. With those right people, though, you could probably be away. The problem comes in when you're dealing with a productivity level that is average because of the people involved.
Over the years of working with many great people, I had built a habit of potentially over-collaborating with my peers. It was hard not to, considering how much smarter two people are than one. And with the right mixture of personalities and solving hard problems, it's almost always more enjoyable (even delightful) to work things through together. You get the stronger sense that together you are delivering a greatness that would be hard to achieve on your own.
I've really missed that part since I've been remote for the past few years. However I have had to learn to be way more self sufficient and resourceful. I think initially the transition hurt my productivity somewhat, but it also ended up making me much stronger and decisive because I couldn't fallback to the whiteboard anymore.
I think I still prefer the colocation style to some degree because working closely with great people is just so rewarding. Thankfully even while I'm currently in my fortress of solitude, I still have great peers to work and connect with through Skype. We have a team chat going all the time that is similar to the war room arrangement where we can socialize and discuss random (sometimes even relevant) topics.
All in all, working with great people is the key either colocated or remote.
EDIT: I should also mention that your ability to focus on your own dev work is great for personal productivity, but often your full value to the team is only realized when you shift your focus to helping the team. I've had many situations where I could have used one of those ticket dispensers because the line at my desk was out of control. I found that working from home for 1 or 2 days a week was a good balance in that situation. Time for some self focus and time for giving to the team.
And no, I'm not interested in a position in Albuquerque.
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.
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.
My boss eventually asked me to stop working from home, because for everyone else, "working from home" was a metaphor for slacking off. That was the company culture that was so damaging to this whole concept. They didn't care if I was on reddit for 8 hours, just that I was doing it in my office.
In my new job, we make heavy use of teleconferencing, instant messaging and email. Even if we are in the same office, the fact that we are a few minutes of walking distance from each another totally masks the fact that we "work in the same location".
All that said, you have to have an absolute level of trust in each employee, because not having the team within arms reach can leave you feeling a bit uneasy at times.
This SEEMS to be about which is better, but it's actually about trying to win a debate that can't be won (no one's going to change their minds).
At the end of the day, the founders/money men get final say. But so what?
The beauty of today's world is that you don't have to change anybody's mind, just choose a place that fits with how YOU want to work.
Tools change.
People don't.
I'm sure collaborating in person is necessary for some people, but if you're working with people who can visualize what you're talking about with words it seems pretty great to me.
Not everyone is suited for working remotely, but for those who are, I think it suits us very well.
Note: This may only be limited to "strict" corporate environments, like my current one.
I see why the OP would want to complain about how most companies out there don't encourage remoting but then again they are paying you to work.