I’ve spent the majority of 2013 working and traveling.
I do Rails programming at General Assembly, a New York City based successful startup. Most of the team work full time on site, and remote team (which grows since I started) typically share the same working hours, although we are not required to do so.
Sometimes it’s really useful to work out of sync, when we want to develop something on our own, or tackle other chores like refactors, or reading or writing content; tasks that require brain power and is better not to be distracted while on them. Other times it’s better to intersect timetables, communication being the canonical example but also for holding discussions on different ways of solving a problem, double checking a problem you see is actually a problem waiting to be solved, prioritizing, pair programming, etc. Having the flexibility to choose when to do your work is empowering, and requires a good deal of responsibility.
We do daily standups, where we talk about the short term tasks and ask for help if we need. We do retrospective meetings every other week, where we describe how the previous iteration went (good and bad things, facts, anonymus raw feelings), and also what would each one of us like to accomplish for the next iteration (mid-term vision). You can talk and add commitments as much or little as you want, they are typically relaxed and fun, almost all of us participate a lot, and I feel of it as a time window where I can communicate almost as if I were on site.
Team is generally aware of remote coworkers, but I can see how it can get frustrating if they aren’t. If the camera points to the roof, or the volume of your remote voice is not at the same level as in the office, you may feel like Bender when his body is stolen by Richard Nixon in Futurama, and Fry clumsily tries to point his head to Nixon while he reclaims it (please!) back. Not nice to interrupt whoever is speaking to make them aware of these issues either, so we are rather comfy because remotes are given as much attention as we can with our tooling.
We use Google Hangouts, we do pair programming, we use chat rooms, emoticons and GitHub, but you are not there. Most of the time we remote guys can’t really follow the jokes that arise at standup, for example, as we don’t share all the context and you just don’t hear as well. There is a gap, but very few times did it lead to mistakes work wise (building the wrong feature, or building it twice). Root cause of those mistakes weren’t the distance or our tools though, but miscommunications we could have avoided. So I consider communication as a problem to be aware of, and to take care of, but not as a big productivity hindrance. Recently online cameras where installed at the office. I personally don’t use them, but some remote coworkers are happy they can now know who’s away from keyboard, when they are all out for lunch, or who can poke the person who’s right now AFK.
I personally miss the physical office many times. I can chat with people at office spaces wherever I am, or whenever I share my workplace with other programmer friends who live nearby, but you develop a relationship with your coworkers, and you lose daily life camaraderie (let’s go to that hackathon, or conference, or happy hour, or to the park for a run, etc). In New York many times do they share lunch time, or a dinner party when a remote worker visits, and so on. It’s obvious you can’t have everything, I repeat it anyway because it seems like travelling and working is the perfect dream (hell it is!), but it’s not for free.
I spent the previous weeks traveling through Germany. One challenge I faced is, if I move across cities every week, I can’t work that well (not a good room to work on, can’t find wi-fi password, physically tired, friendly people around wanting to chat, etc). So I’m now settling down for longer in cities I love. (BTW, it’s so hard to find nice cities in Germany and nearby countries!) A second challenge is time zone difference, which grew 5 hours from Buenos Aires, so now I’m six hours ahead of NYC. We agree that four hours of intersection with EST at least is best, and I personally tried to work more (aware of the productivity loss mentioned before) but then again, if at 7pm we are on the peak of the work day and your friend brings his after-office good german beers… You are in some great trouble! On timezones I’m anyway a night owl so I just start and finish late in the day. On beers, I’ll accept them if I’m ending the work day. It’s not that hard, I can say now before lunch.
I started this trip prepared for not being understood when I explain I’m actually working (and on a late timetable) and not on vacations. I wasn’t prepared for the tax of moving accross cities and houses, and it was also rather easy to get around it. Houses are typically cheaper if you rent them by the week or month.
I’m aware of how these sound like first world problems. They still are problems if you want to travel and work productively in challenging projects.
Overall, core values at work seem to be responsibility, freedom, and trust. “Let’s sync up on what’s valuable for the company, and work in building as good as we can, and better”. If we remotes are not driven, a little ambitious, and very organized, it wouldn’t work for them. If I needed to work on site for most of the year, had to ask for permission to schedule a visit to the doctor, or couldn’t hold discussions on which workflows seem better for our problems, it wouldn’t work that well for me.
Boils down to the problem of freedom: no need to enforce rules or flows on trustworthy people. I strived for, and now truly enjoy such an environment. A “Leffe Blond” to celebrate it! Ohh, not quite yet.