Stumbling my way through the great wastelands of enterprise software development.
There are a lot of misconceptions about working remotely. Many people think it's the ultimate way to liberate themselves from the confines of a traditional office -- with their new found freedom they will be able to dictate their own hours, be location independent, and perhaps work less.
In practice, however, I've come to realize that being a successful remote employee requires greater responsibility, discipline, and effort than a traditional in-person job. This is especially true if the rest of your team is not remote. In this post, I want to offer some insight I have gathered from my experiences working remotely as a Software Engineer and Manager for multiple companies over the last four years¹. Your personal experience may vary from mine and the advice I give is highly subjective. I merely offer it for those who are curious and want an honest critique of the lifestyle.
There are many things to say about remote work, but I've distilled the most important 10 points:
1. Beware of distractions
The most obvious problem with remote work is getting distracted. There's something about not having the boss look over your shoulder that causes people to mess around instead of getting work done. The biggest distractions for me are social media, TV, and people.
If you are like me and feel compelled to correct everyone on the Facebook or Twitter about their political beliefs, you will quickly find yourself squandering hours of valuable work time. I've found a couple of solutions to this problem. First, install a website blocker on ALL OF YOUR BROWSERS!!!! For example, I highly recommend StayFocusd for Chrome users, which is my only browser on my work machine. However, when I'm on other machines, I do have a tendency to bypass the restrictions by using other browsers. So do yourself a favor and put the necessary controls in place to keep your attention from wandering.
Second, make it as difficult as possible to access those sites outside of your primary working hours. For example, you could choose to block those sites at your router (give your wife the password!), forcing you to have to go to the local coffee shop to access them.
TV is another distraction you need to be careful about. I know a lot of people that use it for white noise (if the works for you, then ignore). Personally, I have found myself to be a lot less efficient with the TV on if I'm doing a lot of thought work (repetitive tasks, however, should be fine). Music can also be a distraction for really intense thought processes. Therefore, I recommend that you only have the TV on occasionally when work doesn't require your full attention.
The last and most difficult distraction to avoid is people (and pets!). Even the most disciplined remote worker is susceptible to their kids, spouses, friends, and pets. The problem with people and pets is that they are independent actors with a talent for finding new and unusual ways of attracting your attention. As a first control, I recommend working out a strategy with the people around you to preserve your attention. But as the famous BBC interview of Professor Robert Kelly demonstrates, even the best of plans fail when kids are involved:
For this, I highly recommend you find a way to isolate yourself. The most obvious solution is to get a home office. This can be a room in your house, an extension, or even a converted shed (which can be quite nice with a finished interior). If your office is a part of your house, and it's use is 100% dedicated to your work (it can't double as a bedroom or crafting area) as a primary workspace, you are eligible for the home office tax credit (which can be a lot of money).
If you have a home office, install a lock on the door. This easily prevents kids from entering the room during conference calls and is a gentle reminder to adults that you are not accessible at the moment.
If you can't find an isolated place in your house to work, find a place away from the house to do your work. You don't need to use this location 100% of the time, only when you need some quiet. For instance, before I had my home office I used to go to a quiet coffee shop in the morning to conduct meetings, returning in the late morning to my home when the kids had gone to school. In fact, this strategy leads to my last general piece of advice about avoiding distractions.
Don't be afraid to reorient your schedule. If you have kids and your spouse works as well, you may need to invent some arrangement where the both of you are responsible for the kids at different hours of the day. For instance, most of my meetings are in the early morning. So my wife is responsible for getting the kids ready in the morning and taking them to school. My wife works a tradition 9am-5pm work schedule, so in the afternoon (around 2:30pm), I'm responsible for picking up the kids and managing them until dinner time. This makes the late afternoon my least productive hours. As a consequence, I've learned that sometimes it's easier to stop working from 2:30pm to 8pm, and then finish my final couple of hours of work from 8pm-10pm.
Whatever you do, remember that reducing distractions is probably the most difficult thing about remote work. Develop your own strategy and don't be afraid to experiment. It took years for my wife and I to come up with this arrangement, and it's changed as our work and life responsibilities have changed (be flexible).
2. Don't overwork (manage your time effectively)
One of the biggest traps with a remote position is that you will likely work more than you do in a 9-to-5 office position. By removing a commute and trips to the coffee shop, you will find yourself with a lot more time. Ironically, most of us use this extra time to get more work done.
In fact, tracking the amount of time you work can really be quite elusive if you aren't recording the hours. For me, I tend to work a lot in the morning and then really late at night. This can result in a lot more hours than an employee would traditionally work because the time was split.
Another problem I've encountered is what I call "midday guilt" - which is a feeling that you didn't meet your "work quota" for the day because you had to run errands in the afternoon, or got distracted doing something else. This feeling is common and might make you feel compelled to put in extra hours of work at night or during the weekend when you might not need to.
I've found three great strategies for avoiding excessive work:
Establish deadlines for work items. For software engineers, this is really just the tasks you are committed to during a sprint. For more traditional employees, this might mean placing a deadline on a presentation, report, etc. (especially if this is your primary activity). Put the necessary mechanisms in place to enforce these deadlines -- for instance, tell your boss that you are committed to finishing a task at a certain date and ask her to hold you accountable.
Begin each day by selecting your top three goals. Even when you are committing to a large, multi-week task, you need to account for your day-to-day efforts. Probably the best piece of advice I've received in this regard is to establish the top three priorities you must accomplish that day. Less tasks are ok (though I'd argue you could break down a single task into three subtasks), but don't go over three. When I first started this process I tried to get very granular with my day by itemizing more than three tasks. I learned that I was getting overly ambitious and took on more work than I could accomplish. If you finish early, add another task, or if you've accomplished a lot of work, take the rest of the day off!
Adopt a time management methodology, like the Pomodoro technique, to ensure that you stay on task during the day trying to accomplish your top three priorities. Pomodoro, for instance, has you divide your work day into work increments (25 minute work sessions, with 5 minute breaks), estimate the size of your tasks, and schedule them within those work blocks. Time is enforced with a kitchen tomato timer; though I use an OSX application called Be Focused Pro.
Time management is essential to avoiding overwork, which will help preserve your work-life balance.
3. Constantly communicate
Communication is essential to the smooth operation of an organization. Remote workers are naturally disadvantaged compared to traditional in-office employees. Remote workers don't have a water cooler to mill around and share gossip, or the opportunity to grab lunch with coworkers. We also don't always have the benefit of visual communication where gestures and physical demeanor can provide context to a conversation. In short, we not only have the problem of being setup to communicate less frequently, but the quality of that communication is also diminished because of the mediums we communicate through. However, we can mitigate some of these communication problems by being proactive, communicating effectively, and using technology to your advantage.
First, make sure you are setup up to communicate regularly with your boss and team members. The easiest strategy is to schedule recurring meetings to discuss what you are working on currently, what you plan to work on that day (or over the next couple of days), and if you are experience any problems that someone else on the team can help to "unblock." In software parlance, we call this a daily standup. It's a short meeting (typically no longer than 15 minutes), and it's conducted daily to ensure everyone is in sync. Don't try to cram all discussion items into your daily sync meetings. Instead, if there is a subject that needs greater fidelity, schedule ad hoc meetings to discuss those items.
I will note that I have never worked on a remote software team where standup was only 15 minutes. We tend to spend 30-60 minutes each day discussing issues, which are pointed out by team members during the standup (we usually call them "after topics").
Second, learn how to communicate more effectively. You may not be able to spend as much time with your coworkers, but this doesn't mean you can't optimize the amount of time you spend. If you conduct a meeting, make sure you always have an agenda and an intended goal. Take notes during the meeting. If you are video conferencing, share your screen as you type the notes; this will keep your team on topic and in sync.
If you are in a large conference or video call, you probably won't be able to easily speak when you need to. Write down the points you want to make and then discuss them in "batch" when it's your turn to speak. Notify team members when you want to speak in a non-intrusive way. For example, in Google Hangouts, I use the chat interface to request a turn.
Finally, use technology to your advantage. We live in an age where we have an abundance of tools at our disposal to communicate. In this sense, I have preferred mediums of discussion based on who I'm talking to and the seriousness of what I talking about. For instance, quick communication with teammates I use a chat application like Slack and HipChat. Longer, or private conversations, I tend to have over the phone, as it provides more depth to the conversation (because you can hear tone of voice), but it also forces participants to pay better attention to the conversation. Video conferencing technology can typically be used in place of phone calls, and often is better for presentations, but has the disadvantage of being bandwidth restrictive and requires a fixed location.
Modern smartphones are the remote worker's most important tool; so don't skimp when purchasing one and get a decent data plan. The phone has the advantage of being able to communicate across all mediums (email, phone, chat, video conference call, etc.) and is not location limited like your laptop. In fact, I've found my cell phone to be a better internet provider than WIFI offerings at local coffee shops. More importantly, using your phone, you can give your coworkers the impression that you are always available.
Quick note on email; always be professional. Unlike most forms of communication, email is a log of conversations that can be used in investigations and lawsuits. It's also a reflection of you as an employee or manager.
4. Be accessible
An important consideration, closely tied to communication, is being accessible to your team when they need you. Few things are more annoying than needing an answer from someone and not being able to reach them during normal work hours. This where I think many people's romantic ideas of remote work break down. You are rarely ever in a position where you are truly location or time independent.
As a software team lead, I average about 2.5 hours of meetings a day. Some days are even more demanding of my schedule. For instance, at the end of our two week development cycle we have 4 hours of meetings (a demo, review, retrospective, and planning for the next cycle). All of those meetings occur in the morning because most of our team lives in Spain. Therefore, I can't request to move those meetings to the afternoon because it's more convenient with my planned morning hiking trip in Yosemite.
You will also quickly discover that the general availability of Internet within the United States is underwhelming. Even if you could arrange your work schedule around a trip to the mountains, it's unlikely you will find reliable broadband or 4G service to run a video conference in the surrounding mountain towns (believe me, I've tried on multiple occasions). This generally means you have to take time off or will be limited to locations that can support your work.
Another problem is travelling with family. My wife dislikes me bringing my work with me when we travel. I claim that I'm saving vacation days, but she (rightfully) remarks that I just end up placing the responsibility of watching the kids on her. You are also leaving your "area of isolation" to be around other people (more distractions). What tends to happen with me is that I end up taking the time off or making up for the lost work time on a weekend.
With these problems in mind, I recommend:
Establish core hours. When you start a remote position, establish a time block in which you will be present and available to your team. This doesn't necessarily need to be 8 hours. When I worked at YouEye, our entire team was remote. The VP of Engineering required engineers to be at their computers during the hours of 10am-2pm. Engineers were expected to get another four hours of work in, but when that occurred was at the discretion of the engineer.
Publish your schedule. Remote work does provide a certain amount of flexibility, particularly in running errands or making midday appointments. However, you need to make sure your teammates are aware of those appointments. Personally, I block the time off on my Google Calendar and make it available to everyone at our company. You don't have to go into detail about each appointment, just be reasonable about the purpose of those appointments, especially if they occur during core hours.
Be transparent with your commitments. If you have pre-existing commitments in your schedule, you have a responsibility to communicate them with your employer before you accept a position. If you are already an employee and are transitioning to remote work, or you are a remote employee and your circumstances have changed, talk with your boss and team. For instance, I am committed to picking up my children from school and taking them to after school activities. This time is blocked off and clearly indicated on my schedule. Trust me, being truthful about why you are not available is way better than juggling commitments while trying to appear present, or lying about the purpose of those commitments.
Don't kid yourself, use vacation. In the case that you do travel, if you don't think you will be able to commit to your core hours and/or a full day's work, take the time off. If you are travelling somewhere you have never been before and are unsure about your access to Internet, take the time off. If you still think you can make it work, indicate to your boss and team what you intend to do. If it doesn't work, ask if you can retroactively take time off.
5. Regularly meet in person
Whenever you get the chance to go to the home office (or visit a remote team) take it! One of the greatest disadvantages of working remotely is not being able to develop deep personal relationships with your coworkers. Whether you realize it or not, these relationships are critical to the success of the company.
Evidence of this is seen in human courtship. Think about a romantic relationship you've had. Compare the way you talked to your partner on the first date compared to subsequent dates. The first date probably had a lot of formality; you were nervous, didn't know where to take the conversation. The longer you were together the more comfortable you both became at communicating -- often to the point where you didn't need to say anything and could still understand each other.
Office relationships are the same way; they're a courtship of sorts. The sooner you can shuck some of the cultural formalities of impersonal conversation and be comfortable, open, and honest with each other, the faster you will be able to coordinate business activities. More importantly, you will endear yourself with your boss and coworkers, who will then try harder to incorporate you into the fabric of the company.
In my opinion, this doesn't happen without human contact.
6. Be committed
When you work remotely, you don't have the traditional constraints that keep you motivated in an office. Your boss isn't going to be constantly looking over your shoulder, so there's always the opportunity to procrastinate or slack off. (If you are a really bad procrastinator, remote work might not be an option for you.)
Another problem with remote work is long term detachment (from your coworkers or the company's mission), which can lead to unhappiness and a desire to find new opportunities even if there's nothing wrong with the company. This is just human nature. We want to feel important, we want to be connected.
I've discovered that the way to stop these feelings of isolation and unhappiness is to commit yourself to the company and it's mission. Don't just do the work assigned to you - get involved. Why are you doing the work you are doing (i.e. what's your part in the company's mission)? Can you make it more efficient? Do you see any opportunities others might have missed?
Learn more about the organization, request to be included in the decision making process, and volunteer for projects. The point here is that you need some skin in the game to remain content -- you need to be committed to the organization. Believe me, that commitment will be rewarded with both personal and professional opportunities.
If you can't muster the enthusiasm to dedicate yourself to the company, you're not working for the right company. You can obviously continue to work like a drone and collect a paycheck. But isn't that one of the things you hated about the office? In my experience, working remotely is more about personal empowerment than it is about freedom and flexibility. Don't squander that power by not being committed and forging your own career path.
7. Play the part
One thing I've discovered is that it's hard to commit to working if you stay in your pajamas all day. This is a phenomenon that's well documented amongst remote workers. Many people I know who work remotely, follow a routine similar to office workers. We get up in the morning, shower, get dressed in business appropriate attire, eat breakfast, and make the morning commute (coffee cup in hand) to our home office. Likewise, we have fairly normal lunch and after work schedule. The reality is, erratic work schedules are confusing not only to your coworkers, but also your mind and body. There's something about having a routine that puts you in the right mood to work.
Appearance is another important factor. When many people think of remote workers, they naturally assume the remote worker is going to be more lackadaisical about hygiene and presentation. Don't play into that perception. Keep yourself well groomed and wear appropriate attire. If the standard office dress code is a collared shirt, wear a collared shirt. This will indicate to your team and managers you are serious about the position and committed to the company.
8. Maintain proficiency
If you work from home, chances are, you are a professional. The defining characteristic of a profession is the training and qualifications required to participate in it. For many fields, professional training is deeply linked to the office environment. This comes in the form of on-the-job training, classes, mentorship, conferences, etc. Probably one the best features of working in an office is being amongst peers that share a common interest (perhaps pushing each other technically).
At home there's less pressure to maintain your skillset. Sure, you might have conversations with your coworkers over chat and video calls, but it's not the same. Instead, you need to be motivated to continuing your education and refining skills. In software, this means reading the latest literature (books, blogs, podcasts, etc.), attending meetups and conferences, contributing to open source software, and possibly going back to school for an advanced degree.
I recommend establishing learning goals and committing yourself to tasks that help you achieve those goals. For instance, when I want to learn a new programming language, I'll commit to following a language tutorial, reading a book on the language, and then writing a trivial application. If I want to pursue the language after I've accomplished those three tasks, then I'll revise my learning goals. Otherwise, I move onto the next topic.
Whatever you do, don't let remote lifestyle cause you to lose your proficiency.
9. Avoid burnout
One of the biggest problems today, particularly for stressful professions, is burnout. Of all my years working, I've suffered burnout the worst during the last four years as I worked remotely. The reason why is that there is no natural transition in the day (i.e. a commute) that forces you to stop working. You'll learn that you can get away with spending a few more hours "gold-plating" a software component or presentation. Worse yet, you will be rewarded for doing so. Your boss will complement you for how productive you've been compared to the rest of the team . Teammates will praise you for how you brilliantly implemented a feature that would have taken them a lot longer. As people take notice, this pattern will be continually reinforced making you want to work these hours.
One day you'll wake up and have no interest in work. Seriously. Nothing in your Type-A body will allow you to concentrate long enough to accomplish even the simplest of tasks. You'll somehow be simultaneously bored and unmotivated to do anything. You'll be angry...at nothing. No one made you do it, and yet you are frustrated with your job, life, and family.
Remote work increases the likelihood of burnout. There is no physical separation between your work and personal life. For many of us, we are likely to work longer hours, isolated from human contact, and possibly with an erratic schedule. You need to limit your work hours and take care of yourself!
Work 40-50 hours a week and no more. Maintain a regular sleep cycle. GET 8 HOURS OF SLEEP A NIGHT! Eat healthy foods in moderate portions. Watch your alcohol consumption. Exercise. Pay attention to your hygiene. Entertain yourself!
Don't lose sight of your life.
10. Leave the house
Finally, as stupid as this sounds, leave the house -- and not just for a couple of hours. Go on a mini weekend vacation every month and don't bring your laptop. Home is now your workplace and it's important you leave the office once in awhile.
To be honest, I did spend about 9 months with a company during this time where I was 50% in person. But that experience strengthened the beliefs I present here.