Working remotely is definitely a trend, according to the BLS and my personal observations. "Let them work from home" seems to be the silver bullet for every second startup and even some big companies like Buffer, Automattic, Groove, and many others. However, in most cases, the replacement of a brick-and-mortar office with a virtual one doesn't help companies and their employees become more productive.
Working from home, also known as working from anywhere, working remotely, or simply telecommuting, usually leads to four radical changes:
- First, we replace office security cameras on the ceiling with screen monitoring software and/or web cameras that constantly watch us. Upwork does it to its thousands of freelancers, requiring them to install a background screen capture utility and make sure it is running during their entire working time.
- Second, we replace meeting rooms with conference software like Zoom or good old Skype and learn how to make virtual meetings productive. The main principle is similar to the one we use for traditional meetings: Make it fun. Otherwise, we will switch to Facebook or PokerStars while the manager is still
actingtalking in her window.
- Third, we replace Post-it stickies and Scrum boards with tickets and tasks in Trello or any other task tracker. We keep everybody busy learning new tools and filling them with data.
- Fourth, and most importantly, we replace office chit-chats with Slack channels or HipChat groups. Instead of being in the office at 9 a.m., everybody will have the ability to demonstrate the level of their presenteeism using emojis.
Your life, as a developer, will be very different on a team that works remotely. It will be full of real freedom. However, there will be certain problems:
It's Harder to Prove Innocence. How does your manager know you're actually working, not watching TV, playing with your kids, or grooming your favorite open-source pets? In the office, it's easier; you just sit in front of the monitor and the boss is happy. At home or in a coffee shop, you are guilty by default until you prove the opposite by creating new tickets, posting emojis to Slack, and sending emails with multiple CCs.
It's Harder to Find Information. In the office, you can always ask your question out loud for the most knowledgeable person to help you. Remotely, however, you will have to search Wiki pages, Google Docs, and, god forbid, Git logs. Be prepared for almost nobody to be interested in sharing knowledge or teaching you remotely—what is the point if nobody sees him doing it? You will be on your own in front of that year-old documentation made by someone fired right after writing it up.
It's Harder to Avoid Overtime. In the office, you just walk away with everybody else when time is up. Remotely, you will have phone calls and Slack discussions in the middle of the night on Sunday, especially if the team is distributed across multiple time zones. Everybody will expect 24-7 availability because you're working from home. And changing the status to "Do not disturb" in Skype will only offend them and seriously damage your reputation. In a work-from-home environment, good programmers are those who are always online.
It's Harder to Defend Yourself. You won't know where to expect the next bout of trouble from. In the office, you can visually observe the territory, smell conflict in the air, see how people move, what they talk about, and who is the next victim. Remotely, you're sitting in isolation, extracting pieces of information from Slack. You can easily become the next victim without even noticing it. Simply put, they will stab you in the back while you're writing Java and thinking about a new unit test.
It's Harder Not to Waste Time. It sounds counter-intuitive, but while sitting at home, you waste much more time than in the office. Meetings will be called more frequently, and they will be less effective, thanks to constant issues with scheduling, quality of the connection, software failure, and, of course, a lack of online communication skills. The manager will call more meetings largely in order to convince himself that the team is actually working; hearing your voice many times a day is a perfect confirmation that you are busy and he is a good manager.
On a more serious note, I believe that working remotely only makes things worse when the motivation of the team is still based on hourly pay. First, we have to switch to a results-based payment model and then go remote. Actually, remote work will happen automatically as soon as everybody starts getting their paychecks for the results they deliver, not the time they spend. They will simply stop showing up at the office, but their results will keep coming to the project, without any web cameras or Slack channels.