This article was originally written for the January 2019 issue of php[architect] magazine.
There has been a continual drive towards remote work in the tech industry - commutes are awful, interruptions suck, and open office layouts are the actual worst. The remote lifestyle seems glamorous and appealing, and as a woman I sure love a thermostat set for MY body(amIright, ladies?), but there are considerations for whether remote working is a good fit for everyone. After all, there are no snow days when you work remote.
You'll only be as successful as your environment allows. If your company isn't set up to support remote workers well, your role as a remote worker may not work out long term. A company unused to managing remote employees may not have a process to assess performance because they are used to relying on seeing people in an office "doing work."
Completely remote companies have solved how to support a remote team. If your company is new to working remote or only has a faction of remote workers, there are some considerations to be had. When looking at a new remote work opportunity, I consider my Remote Company Checklist.
An onboarding process doesn't need to include fancy branded packets and swag; it simply needs to outline company expectations and policies, highlight appropriate company and third party contacts, provide access to internal communication tools, and explain equipment and peripherals that will/will not be provided. When people start at a remote company, they may not have the opportunity to meet everyone right away and understand the context of their roles in the company.
Having a well-organized wiki of information including a directory of employees, policies, core values, and expectations is a good starting resource for new employees and can be updated easily over time.
Assigning a "buddy" for an employee's first few weeks is another great way to help onboard someone new and provide them a way to get to know how the company works and answer questions as they arise.
For 100 percent remote companies, meetings are less problematic. For companies new to or supporting a few remote workers, they can present more problems especially around forgetting to include remote workers and granting them the proper access to join meetings. Meetings should always be on the calendar in advance and include necessary join links, numbers, and access codes to call in.
As a remote worker, I should be able to get online any time, anywhere and be able to view my workload and have the documentation necessary to execute on my job.
Regardless of the tool, the task management system needs to allow for autonomous employees to pick up work as needed and communicate ticket progress to the team. Within the management tool, the tasks must have clearly outlined requirements, steps for completion, current priority level, and due dates.
Trello, Jira, Zoho, and Asana are popular choices for task management, but tools like Github Issues may be enough to solve a companies needs as well. However, the key tasks management considerations aren't the technical tools, but the process behind using them and that the tool allows workers to work on and communicate progress of tasks and is a good fit for the company culture and managing the product or service provided.
Communication issues are at the heart of most problems and can cripple even the most talented team. A company which fails at communicating in person will exceptionally fail at it in a remote environment.
When looking at how a company communicates, pay attention to:
- How company-wide information is relayed
- What tools are used for daily communication
- How the team is made aware of goals, company financial health, and staff changes
- What happens when there is a blocker from someone who is AFK
In a remote environment, organic opportunities for conversation are scarce, and it is important that leadership in the company prioritizes keeping communication lines open. One-on-ones are a crucial way to interact with a team routinely, and I would personally hesitate to join a remote team that doesn't have some implementation of one-on-one meetings for everyone on the team.
Repeat after me.
Slack != documentation.
Slack != documentation.
Slack != documentation.
I get it, documentation is hard, and a struggle for almost everyone, but a lack of documentation especially in a remote environment can lead to employees sitting idle and in frustration from not being able to do their jobs. There should at the very least be documentation around environment setup, build processes, testing, deployment, company code standards, and migrations, environment changes, or anything that will disrupt an employee's workflow.
TL;DR: Documentation should always be available and up-to-date to help workers execute as autonomously as possible.
Non-remote companies often use "butt-in-seat" as a crutch to evaluate. They can see employees, therefore those employees must be producing. Remote worker evaluations are more pure, in that they are judged on their actual work and not their appearance of working, provided the company has practical metrics in places. It's important to understand:
- Who is setting evaluation metrics?
- What is the technical expertise of management?
- What metrics are currently in place?
- How is overall/yearly performance judged?
- How do you prove you're worth your paycheck?
AGAIN: You can only be as successful as your environment will allow. Companies with remote workers will have their management practices successes and failures magnified immensely.
In working through the remote company checklist, you may realize there are some things you haven't considered about jobs in the past because they've been on-site and in person.
I will always highly recommend against someone in their first development job working remote. There are too many valuable experiences in working in the same physical space as your team, including in-person pair programming, and difficulty learning without visual cues. It can be difficult to build confidence in oneself and routine interactions as there are less organic opportunities for them when you are remote.
Your personality will absolutely play into your remote work experience. Extroverts may find the isolation and lack of constant contact with lots of people draining. Introverts, on the other hand, will likely thrive with the alone time and ability to interact with others only for necessary communication purposes.
If you struggle to stay on task or are a person who struggles with self-motivation on their own, remote work may be more difficult and less rewarding than an on-site job. When you are stuck on a problem, whether due to a technical issue or lack of requirement definition, do you feel comfortable speaking up, or are you the type to sit back and wait for someone to check on your progress? I can tell you the later isn't a habit which will help one succeed in a remote environment.
If you grew up in internet culture similar to myself, immersed in video games like Counterstrike and WOW and using tools like IRC and Trillian to communicate with your teammates across the globe, working remote doesn't seem like a remotely foreign concept and getting to know people you've never met face to face isn't at all difficult. However, if the idea of only communicating via email, chat, or the occasional Skype call seems less-than-appealing, remote work will be a serious adjustment for you.
the man on the news getting interrupted by a baby on a mission
Start and end your day at consistent times. At the end of the workday---leave your damn desk! Even if you're going to continue being on the computer, move to a separate space to maintain the boundary between work and life.
Eat your food, walk the dog, hit the gym, browse Reddit---breaks are good! Just make sure you schedule your breaks like you would taking a lunch break at an on-site job.
For some odd reason, when you work from home, your friends and family seem to assume that means you're not "really" working and are available for everything from taking the kids to the park to helping move furniture. Having conversations about the realities of your work schedule is crucial to helping those in your life understand that even though you're home, you're actually working and can't be interrupted.
Visual cues are very helpful in maintaining boundaries in your home. Ideally, have a separate office with a door that closes. If you can't be in a separate room, use a light or "I'm working now" sign as a visual cue to help those in your home understand you're not to be disturbed. Unless they're a cat, in which case you exist solely to do their bidding. For the times that those in your life forget or ignore you're working, it can be helpful to come up with a code phrase to say instead of an impulse to snap and cause hurt feelings.
Shower. Every. Day.
They say dress for the job you want, you don't want to be a smelly shut-in, do you? It can be easy to let hygiene habits slide when your bad hair can be hidden by that privacy cover on your laptop camera, but it's a dangerous productivity hole to fall into. Just like a messy desk, a messy body isn't optimal for doing your best work. Being clean and looking good gives a confidence boost that is much more than just at the surface level. The Sims had clean = happy right, and various studies show showers help alleviation depression, increase energy, and even lead to better sleep.
Don't do chores during your office hours. Chores will suck your work hours and corrupt your attention span. You can't properly focus on your work if you're watching to clock to change a load of laundry or trying to clean the bathroom while listening to a meeting via headphones. (This doesn't mean don't do chores ever, you better be sharing household management duties with your partner!)
If you often struggle with staying focused and find yourself wandering into internetbrowsingland while your code compiles, turn your browser into a concentration fortress with these website blockers and tools:
Momentum is a a browser extension that shows a custom dashboard with a scenic photo when you open a new tab. I find myself almost habitually opening a new tab and typing "twitt" when my mind starts to drift, so when the momentum dashboard launches it's a nice visual reminder to get my sh*t together and get back to work.
Noisli is another browser extension/app that gives you pomodoro functionality, a minimalist text editor, and the ability to add your preferred ambient noise sounds like "forest" or " coffee shop" and save combos.
If you need more intrinsic motivation, Forest is a fun pomodoro-esque extension. When you need to get some serious concentration going, start the forest app to plant a tree. If you stay focused, your tree will continue to grow, but if you visit sites added to your blacklist the poor tree with wither and die.
For the hardcore distraction eliminations - Stay Focusd is an extension and app that will strictly not allow you to access sites and even apps that you blacklist.
Make your office a distinct space and a place for you to be happy to go to get work done. Maintain a consistent schedule, start and end your day at the same time. This makes it easy on your coworkers and your family! Follow a dress code and get dressed every day.
If you work in a different time zone than the rest of the company baseline, become a time zone pro. You can add a secondary time zone to Google Calendar or Outlook.
Working remote means you don't exist to anyone else unless you make yourself known. There's no physical manifestation of your being, you're just a new email on the company-wide distro. There's no bumping into people at the water cooler or chatting in the hallway on the way to the bathroom to build relationships. You'll need to make a bit of effort on your part to make your presence known.
First, take time to get to know the culture and make an effort to interact with and learn about your team. Don't be the cowboy who comes in telling everyone they're "doing it wrong" - that's not the way to make friends. Keep others updated on your progress and let them know when you'll be AFK.
Find fun ways to contribute to team culture - reaction gif channels on Slack are always fun.
A major problem with text-based communication is we lose visual and audible clues to help us determine the meaning of text. Innocent comments can come across very differently than they were intended and lead to a host of wrong assumptions and unhappy feelings.
Slack is a great tool I love dearly, and I don't mean to keep ragging on it, but it has led to the majority of communication conflicts I've seen on teams. We've actually banned the use of Slack for feedback conversations at the nonprofit I run. If there's ever a situation where people need to work through a complex problem where they disagree or where someone needs to give feedback to someone else, text-based tools should be avoided at all costs. It's worth making the extra effort to have a phone or video call to ensure communication is clear, and if frustration arises it's easier to remember there's a human with feelings on the other end.
Even the most introverted person needs a little human interaction. It can be worth it to shake up your schedule and get out of the house to interact with someone other than your cat(s).
Use Slack to find techies around you---Tracy Lee has compiled an awesome list of local tech communities, and Meetup.com is a great tool to find user groups in your area. Can't find a user group specific to your interests? Go crazy and start your own! I did; it's worked out pretty well so far.
Take coworking days by working from your favorite coffee shop or a coworking space like WeWork or those available via Copass.
Find mentoring opportunities with local coding clubs like CoderDojo and look into attending local conferences. Many now offer a pre-made cover letter you can send to your employer to encourage them to cover ticket prices/days off.
If you're indeed ready to start working remotely, I'd recommend starting slowly if possible. Try approaching your current employer to work remotely one or two days a week in the beginning. If you want to stay with your current employer and be fully remote, this is a great way to build trust, show off your remote productivity, and set the stage for them supporting your remote work.
Sidenote: Don't go remote if you hate your coworkers. Working remote won't solve the problem, I promise.
If you're looking to start at a new company supporting remote workers, there are a handful of great websites curating remote jobs.
When interviewing for a remote job, in addition to your technical qualifications you'll likely be asked about your ability to work remote, why you want to work in a remote role, being self-directed, and your communication styles. Companies want to make sure you'll be a good fit, will do the work, and not leave because remote work isn't for you. If you want to land the job when asked why you want to work remote, saying you "want to grow your dog walking business" probably won't get you hired. (That's a true response of an interview candidate from a remote company I worked for.) Be thoughtful about how and why remote is the right fit for you and how it will make you more productive.
Working remote has been a fantastic opportunity for me to spend more time at home with my furbabies and travel the world to speak at conferences, but it takes hard work and discipline. There have been times when I've worked hard and done everything I'm supposed to, but a company has not been set up to support remote workers successfully. It ultimately led to me looking for a new job. This guide is meant to be a starting point for evaluating the possibility of working remote and for beginning to create one's own processes and boundaries to be an effective remote worker. You do you, boo.
![Scuba Diving the great barrier reef](https://thepracticaldev.s3.amazonaws.com/i/xcwsa3wihkuoyvsaks8q.jpeg