For the last couple months I’ve been working remotely with our search team at OpenTable. Let me share our remote working setup and some rationale for our choices. I will shy away from judging how it’s all worked out and leave that for subsequent blog posts.
I started as an on-site engineer and subsequently became a remote worker and my challenge was to make remote working as similar to on-site working as possible. Thus it is natural that I work the same working hours as my colleagues in the office (despite the time difference) and I take public holidays at the same time that there are bank holidays in UK (even though in Poland they are different).
We also decided that every two months I will visit the office for a week as well as arranging visits to coincide with other office guests (like contractors, overseas colleagues and so on). All this is to try to keep me as close to the team as possible and disrupt the normal work-flow as little as possible.
Once home in Poland I had to carefully consider my options for a workplace. I tried three obvious possibilities:
- Dining room in my own one bedroom flat
- Co-working space
- Private room in my parents’ house
The dining room worked pretty well, for a time… I would ‘arrive’ really early in the office (just after taking a shower), and then be ‘home’ straight after the laptop lid was closed. My wife kindly respected that I am focused at work and distracted me only to share lunch (or to kick me out of house to bring the lunch in).
A couple of things made it only a short-term solution - the first being my back complaining about working on a chair that’s nice for a dinner, but awful for working on computer. Then I realised that I really miss a second monitor and separate keyboard – I guess anybody who coded in the middle of summer on a laptop knows the pain of a hot computer under your fingers. Finally, my child was born, and that was it – a crying child in the same room when you are trying to pair with somebody is a deal-breaker.
In the meantime I evaluated a local co-working space. The problem was that it was quiet, really quiet, up to the point that I was embarrassed to pair with somebody remotely. The way we work fluctuates over time; there are weeks when I do stuff alone and in silence, there are weeks when I spend whole days on conversations or pairing. I just cannot be too quiet. For that matter I tried also a coffee shop, but it failed me for exactly the same reasons as the dining room table.
My little own office is currently the winner and the only way it could be better is if behind the closed doors there was my house, not my parents’ one. But even this one is pretty good – I have access to an always full fridge and a decent coffee machine. I can bring my family with me and it is not awkward.
Finally, I can share a lunch with whoever is at home. With a decent chair and desk I cannot complain about anything. Actually, I found that even after work if we stay for a coffee or dinner I am tempted to pop in into the office and look at our dashboards or chat room.
To facilitate continuous communication you first need a good attitude, and then good tools. With the attitude two things matter the most:
- A quick response
By nature all remote communication channels are asynchronous, which is hugely different to face-to-face communication. It is much easier this way for an important question to go unnoticed by you. Conversely it is easy to get annoyed that somebody is not responding, when in fact they may just be talking to the person at the desk next to them.
Our primary tool is Google Hangout. It works quite well for a team, being nice for stand-ups, though it fails miserably as a constant communication tool. There are two reasons for that; the first is that its messages often get lost and the second is it makes our MacBook radiators spin like crazy when open for too long. Unfortunately we had to rule out an online window to the office after a couple of days trying.
We also extensively use HipChat, and that brought one of best breakthroughs in our communication patterns. It has a few features which make it great as a team collaboration tool:
- You get messages whether you pay attention or not
- You can interrupt other people by mentioning them
- It makes sharing links and images really easy
- When you type you can collaborate with multiple persons at the same time
I also mentioned that pairing is a big part of our daily work. I have to admit that I haven’t yet found a tool that would make the experience seamless. There is always a bit of delay on the line, or shortcuts not working, or problems of mismatch between screen resolutions that would never appear when pairing on the same machine.
On the other hand when you have a keyboard just under your fingers it is much easier to swap sides and while discussing actually write code constructs. For this we use combination of Hangout screen share feature (for quick debug help) and RDP.
One last tool that I like to use quite extensively is Google Drive as a shared whiteboard. It has proved to be especially useful for retrospectives or architecture discussion. The nice thing about the Drive draw tool is that it forces you to use shapes, lines and text. Those three primitives allow for an unlimited number of possible drawings. Being vector means you can easily move stuff around (nothing will fall on the floor), you never run out of space and you have an immediate and lasting backup of your board. I also found that a distributed retrospective facilitates a more equal participation of those attending.
The best feature of the most of those tools is that they allow to easily save and store the outcomes of your conversations. Hangouts can be recorded, HipChat naturally creates history of chats and Google Drive’s drawings become a persistent track of team discussions.