I don’t know if you’ve heard, but we’ve had some historic snows here in Boston, that have had a “slight” impact on public transit and just getting around in general.
I have always felt that being in the office is key to being effective as a software developer. So much of what we do is about communication. How can we do that without being face-to-face with a customer or coworker? How can we do that without being able to seamlessly share code, ideas, nuance. Although I have worked from home from time to time due to weather or other conflicts, I always thought friends who worked primarily from home were probably stretching the truth a bit about how effective they could be working remotely.
After a couple of weeks working primarily from home, I have changed my tune.
The quality of tools available to facilitate remote work amazes me. It seems like in just the last 2-3 years they have grown in leaps and bounds. I am a big fan of Screenhero and Slack, and am delighted that they have combined forces. What truly amazes me is the way these tools facilitate multi-user (more than 2 people) support. Throw in the odd, Google Hangout, Goto Meeting, Join.me and there are so many ways that we can now communicate effectively from anywhere.
I still prefer working in the office. I like my coworkers (no, really), and in my opinion there still is no substitute for a true face-to-face conversation. I like socializing and grabbing lunch with friends. But I can now envision a time when I can make working remotely a significant part of my typical work-week.
There are some potential drawbacks. I notice I take fewer breaks when I am working remotely, and I think periodically stepping back is a big part of solving hard problems. I also worry about the overall impact on work-life balance when it is so easy to always being “available”. But these are solvable problems, like someday people being able to decide on their own what can of tomatoes to buy without calling home when the low-sodium kind aren’t available at the market.
I think the ideal situation for me would be 2-3 days/week in the office, especially if that is coordinated with other peoples remote schedules. That would seem to allow for the most effective face time, reduce time wasted on commuting, and allow for significant chunks of uninterrupted time.