There’s been a lot of discussion about distributed teams and remote work lately. Earlier this year, there was a huge debate when Yahoo! CEO Marissa Mayer decided to ban telecommuting.

Recently, David Heinemeier Hansson (DHH) of 37 Signals wrote Rethinking Agile in an office-less world. In that post he makes some good points, but I think he ignores some important arguments to be made the other way.

The arguments in favor of remote work include:

  • You can find the best talent available, not just the people that live near where the company is located or who are willing and able to move.

  • People don’t have to waste time commuting every day, giving them more time to work productively and spend time with their families and on their hobbies. This also results in less stress.

  • People can work in an environment that is comfortable and optimized for the way they work. They don’t have to deal with the noise and distraction that is often common in an office environment. This makes them much more productive and able to do their best work.

Remote work advocates, including DHH in another post this month often argue against the “everyone in the office mentality” by characterizing it as “the work principles of decades past” and “we can’t trust [our people] to get anything done unless we see butts in seats from 9-5.”

I believe that the debate between on-site and remote work is more nuanced than this, and that neither of these choices is always best for every person in every context.

There are people who just don’t do well working remotely. They need the social interaction that comes from working in an office environment. Or perhaps their homes do not provide a good working environment. Coffee shops and co-working spaces can be just as distracting as a normal office environment.

There are jobs that require physical presence. Not everything today is web development. Embedded developers working with expensive custom hardware need to be on-site where the equipment is. Jobs with serious security requirements also need on-site workers.

But even for contexts where remote work is completely feasible, there are tradeoffs, especially when using a true agile process. Remote communication tools have gotten a lot better, but there is still no substitute for having a whole team in the same room together communicating face-to-face. There is no higher-bandwidth communication mechanism available to us yet.

There is so much information communicated in body language and facial expressions that doesn’t happen in a remote context, even over video chat. There are connections between people that happen around the water cooler or the lunch table that don’t happen in a remote context.

Timezone differences also come into play. When communication is delayed by a day due to differing timezones, or team members have to work at non-ideal times, the performance of the team suffers.

Training and mentoring of new developers is much more effective in person than it is in a remote context. It is much easier to notice when someone is struggling if you can see them out of the corner of your eye.

I’m about to attend Rogue Rails, a workshop and conference about doing agile web development in Rails. The three-day workshop portion of this event will essentially be a training exercise for the attendees. I can’t imagine this event succeeding to the same level in a remote/distributed context. Getting everyone together in the same room for three days is likely to be highly effective and rewarding. The same factors that cause this difference come into play in our normal work environments as well.

Many remote-work advocates tend to minimize these factors, but I think they’re important to consider. I firmly believe that in an apples-to-apples comparison, a team will perform significantly better if it is collocated than if it is distributed.

Apples-to-apples comparisons are rare, though. The question then becomes one of tradeoffs. Can a remote team recruit people that are so much better that training and mentoring are not an issue? Are these people so much less stressed and more productive that it makes up for the lower-bandwidth communication? Are the lower-touch substitutes for pair-programming sufficient to make up for the timezone differences?

It is definitely possible. There are distributed companies today that simply wouldn’t exist without remote work, because they wouldn’t be able to find the talent they’ve been able to find.

I have personal experience with this. In my current job, I started out working in an office with my team. I experienced all of the benefits of high-bandwidth communication and deeper personal connections. I also experienced the distractions and noise of an office environment. Commuting was not a big deal; I live in a small city, and I could get to or from work in 10-15 minutes on my bicycle.

After a number of years, my company decided to close down the office I was working from, and I was given the opportunity to work from home. I absolutely love it and there are definite advantages. I’m much less distracted than my on-site colleagues and able to get a lot of work done. However, communication takes more effort and I miss out on a lot of informal conversations. We also do some work with hardware that I am simply unable to do because I don’t have access to the labs where that hardware lives.

We are all in the same timezone, and I still pair-program every day, so communication is quite good. But it isn’t the same as in-person pair programming and probably never will be.

In my case, I think the tradeoffs balance out about evenly. Given that I was not willing/able to move at the time, working remotely meant that I could keep my job and that the company could keep me as an employee. That’s been good for both of us. I think that the advantages of being in a lower-distraction, more comfortable, and more convenient environment make up for the lower levels of communication. But I am also aware of what is being lost and I take pains to try to recover some of it.

There are definite advantages to remote work and it is well worth considering. But I don’t think the argument is as one-sided as many would have you believe. There are tradeoffs, and you should balance between them with eyes wide open.