When I first shifted my career to one as a remote developer, it was admittedly a bit daunting. I was transitioning from a slower paced government position to a fast paced consulting firm. I was jumping heavy into PHP (alongside my .Net work) which I wasn’t fully versed with yet, and I even switched from PC to Mac to be on the same page with the development setup at the main office. Five and a half years later I’m still running strong and have a pretty good take on how to make it work. While my remote developer status will be coming to an end soon, here are the five key things that have helped me be successful.
1. Communicate (Real Time)
It’s easy to get out of sync with a project, or your fellow developers when you’re not in the loop. It’s also important to have fellow developers to collaborate with when you’re stuck on a problem or designing something new. E-mail can be slow to get a response from and can get lost in the pile of other e-mails.
Pick a tool: Google Hangouts, Slack, FB Messenger, anything really, and make sure you log into that first thing in the morning. Make sure your everybody else knows you’re available there as well. If multiple tools are being used, check out a tool like Adium or Franz (my current favorite) that puts all your tools in one place. When you need a quick video chat with a screenshare option, check out Appear.In, which runs right out of your browser with no hassle.
2. Stick to a schedule and leverage your flexibility
While I’m sure there are plenty of remote developers that enjoy sporadic work throughout their day (and weekend), this has never been the case for me. With multiple projects typically on my plate, and the need to be available for questions from clients and fellow developers (see #1), the need for a more standard 8 to 5 / 9 to 6 schedule is very important. It provides consistency for you and your team, which is very valuable during a “app crash / fire” and also provides a better divide between your work life and your personal life. I’m a firm believer in keeping that balance. If you do work better late at night, by all means make that part of your schedule, just make sure HQ knows about it so they can count on your accordingly.
You do have the flexibility of not being connected to an office and you can definitely take advantage of that. When my wife had thyroid cancer and was going through treatments, I was able to augment my schedule to work early mornings and late nights, since during the day I was taking care of her and the kids. In an “hourly” type setup, I was able to work extra time on a Monday and Wednesday in order to take a half day on Tuesday to drive her to a doctors appointment. This flexibility allowed me to not use up a lot of PTO and still get work done in a timely fashion. If you use this flexibility as the exception, and not the norm, you can maintain productivity and typically not run into any concerns with your employer.
3. Communicate (Daily)
While keeping an open channel to communicate is good, it is also important to let others know (project managers, the big boss, etc.) what you’re doing on a day to day basis. That way others know progress that is being made and whether or not to shift you onto another project or not. Taking a page from my first “full SCRUM” project a few years back, I created and started sending a “DVS” e-mail, which stood for daily virtual standup. This e-mail is really simple: outline what task(s) you did for which client(s) yesterday, what task(s) you plan on doing for which client(s) today, any roadblocks or questions you have, and any final comments (taking a half day, random chatter, etc.) You can put this together in five minutes or less, but the impact it makes is huge. My boss liked this so much that he started requiring it for other employees that were working out of office for the day and our Asia office sends one as well to help keep everybody in the loop. Want to use it? Here’s the basic text template here.
4. Tools and Focus
These two fuse together because this is a digital and physical thing. When I first started, we carved out part of our guest bedroom / den to be my workspace. I kept the door open just for some air circulation and ambient noise. During this first week, there were plenty of distractions between the kids coming in to see daddy (they were only 5 at the time), me going out to check on things because I thought I heard a crash or something else going on. After the first week we both looked at each other and thought at the same time “this isn’t going to work with me here like this.” Fortunately, we had a detached downstairs “workshop/storage” space with our house that became my office. This gave me a more isolated space in which to focus and work. I still keep the door open, but when it is shut, the kids know a meeting is in progress and to wait. If you don’t have a “detached” room in which to work, I’ve seen a few places where a little egg crate put inside the office room makes for a good sound insulator. Not perfect, but with the door shut (and an “open/closed for visitors” sign) in place you could get the same effect.
With an isolated environment in place, the next step became to increase focus and productivity. I don’t have as much distraction by outside sources (Facebook, news, games, etc.) but more from within. When e-mails from multiple projects, plus the occasional question from an old client, and an IM or two from a coworker (or three) needing help with something come flying in, it can get crazy fast. With that in mind, I keep (well, try to with the best of my ability) a personal kanban board (using Trello) with my tasks for the day. I make sure not to overload this, and it also helps me be mindful of tasks that get backlogged if something with a higher priority comes up. I also like to use the pomodoro technique (well, try to with the best of my ability) to keep me focused on a task and easily shift gears at the end of a pomodoro to another task if needed. It also helps me remember to take breaks, instead of burning myself out through 3 hours of straight code. I’ve go so far as to make my own tool, Trellodoro, to make this happen a bit easier. It’s old, but it’s still functional, so give a a peek if you’re interested.
5. Communication (Personal)
Yup, communication is HUGE when you're working remotely. While it is easy to get caught up in the day to day tasks involved with your team, it is equally important to get to know the people you’re working with as well. Typically I make it back to the main office two or three times a year. On a couple of occasions, it has been for team building events, such as the RAGNARs of 2013 and 2016. When I’m up there for work, I make it a point to find a relatively cheap place to eat and make sure to invite as many people as possible. Dinner (and breakfast) are fabulous places to get to know people outside of work. I drift around the water cooler a bit longer than usual and make it a point to try to connect with each person in the office while I’m up there. While back at the remote office, I make sure to hop into meetings a few minutes early and linger a few minutes afterwards and connect with coworkers that are free. You’d be surprised at how a few minutes here and there can pay off in the long run. The bonds I make with my coworkers during off hours only enforces the collaboration we have during work hours.
Remote working has come a long way in five years. I think I will still a bit on the fringe as a remote worker when I started, but now it has become far more commonplace and acceptable. Keeping these five keys in mind will help regardless of how technology changes.
Have any other keys to remove development work? I’d love to hear about them!