COVID-19 has a lot of companies sending their people to work from home (WFH) on short notice. At TrackAbout, much of our workforce has worked from home since we founded the company in 2002. It is so much easier today than it was back then.
I hope this article helps anyone else who may be working from home, or managing people who work from home, for the first time. It contains a lot of what we've learned in the last 18 years.
Tips for Managers - All The Same Stuff Applies
All the same managerial skills that apply in a physical environment also apply in a virtual one.
Do your one-on-ones, with video whenever possible. Depending on your number of reports, do them weekly, or every other week if you have too many t do weekly. 30 minutes is sufficient. If you have so many reports you are pushing one-on-ones out to every 3 or 4 weeks, then you have too many direct reports, IMHO.
Track status and progress publicly somehow. Maintain accountability. If you had a daily standup, you still have a daily standup (use video). If you had a kanban board on the wall where everyone could see, make a Trello board do the same thing. Find technology that makes it easy, at a glance, to know where the project stands.
It’s easier to drift away from people when you’re not physically present. It’s easier to avoid people you don’t like interacting with. But don’t let the work suffer. Make the effort to seek out the people you know you need to talk to.
There’s MUCH MORE opportunity for miscommunication. The second you sense a misunderstanding, go to voice or, better yet, video chat.
Not new: Praise in public, criticize in private. What is new: It’s easier to deliver criticism to WFH people without having to find the perfect moment, or pull someone into your office where everyone can see something’s up. Many managers are reluctant to deliver the feedback their people need to hear, due to fear of confrontation or other reasons. I'm guessing that the insulation of distance due to WFH might actually enable some managers to deliver criticism they might otherwise avoid giving.
Some people aren’t emotionally built for WFH. Some will miss the social interaction. Look for a way to replace that if needed. We’ve done “virtual socials” to help people get to know each other. We randomly select groups of 5 people and they schedule their own 30 minute video chat at the end of the work day.
Find new ways to celebrate successes. ALWAYS celebrate successes. ALWAYS recognize excellence, and it’s best done in public. Be conscious about over-celebrating heroics. Heroics appear during a crisis. Evidence of heroics is evidence of crisis. Work to eliminate the need for crises, and thus heroics.
Tips for Your Employees
Our development team is completely virtual, with no two developers in the same physical location. Some might feel this poses communication challenges. Luckily, we have many excellent tools at our disposal, such as Slack, Zoom, GitHub and so on. Here are some suggestions and rules of thumb we have learned over the years for effective communication in this kind of environment.
The cost of distractions
As technologists and developers, we tend to be at the forefront of the "multi-tasking" movement. Unfortunately, and somewhat counter-intuitively, some studies show that multi-taskers are considerably less productive, not more.
Distractions and multi-tasking can heavily impact our productivity. We should strive to be vigilant and guard against being derailed in our daily work.
Jason Fried, co-founder of 37signals recorded a video which discusses what's wrong with the distracting nature of modern day work environments, and what can be done about it: Why Doesn't Work Happen At Work? Worth a watch.
Batch Your Questions
A good rule of thumb is to batch your questions for others whenever possible. I learned this rule the hard way, as a green consultant on my first job out of college. After my fourth visit that morning, my exasperated manager finally exclaimed, "Holy %@#!ing $#!*, would you PLEASE batch these questions?!" Whoops.
Avoid Interrupting Others
"Flow" describes the state of mind of being tuned into the task you're doing, the sport you’re playing, the music you’re performing. Flow is great. Breaking someone's flow is not great.
It's quick and easy to chat someone when you need an answer to a question, and we've become quite accustomed (addicted?) to the instant gratification and dopamine squirt that it yields. But, if you need to ask a coworker a question, stop and consider whether you might have additional questions in the near future.
Can you continue making progress in the meantime without an immediate answer? If you batch several questions together and ask them all at once, you'll have done the askee a favor, as opposed to peppering him or her with questions over time. Don't break their flow.
Consider emailing questions rather than texting/chatting to allow the recipient to answer the question on their timetable.
Consider using the Calendar instead of email to book time in the future with someone you need help from. Then you can both use built-in calendar free-time features to find a good time that works.
That having been said, if it's urgent, it's urgent. Use your judgment.
Use all the right tools for the job
People are expensive. Tools are cheap, comparatively. If there's a tool that we think will improve communication, creativity, productivity, or any of the other -ivities, we adopt it.
We use Slack. We pay for Slack because searchable history in Slack is amazing for finding solutions to problems that have been solved before, by us, and our fallible memories. For everything else, there's StackOverflow.
We have a Slack channel for #development, #support, #devops, etc. Special rooms for special projects. DevOps monitors #support, so no other developers need to sit in that room (unless you want to be helpful).
We have a #random channel which is the virtual water cooler. We like to amuse ourselves there. It keeps things fun.
A Slack channel is a broadcast medium. Channels are great when everyone needs to hear what you have to say. It's the opposite of great when you use the channel to address just one person - you are distracting everyone else. Use private messages.
Consider configuring your various chat clients such that you can quiet them when you need to get into flow to work done. You might, for example, configure your client so that it's quiet when minimized, but still chirps or does a toaster popup when your handle or specific keywords are spoken. That way you can get work done and not miss anything important.
When our phone dings constantly, we either check it constantly (bad) or we start to tune it out (bad). Work on optimizing this by changing tones to help distinguish different apps or people (when my wife calls me, it plays the theme from Ms. Pac-Man), and finding ways to suppress unnecessary notifications altogether. It takes effort to dial in the notifications just right, but it's worth it to know that when it sounds off, you know instantly whether it's important or not. Avoiding unnecessary distractions is the key.
Other Communication ToolsIf you're having a hard time explaining a concept with words, there are dozens of online collaboration tools available.
- For screen-sharing, we use Slack or Zoom.
- We use Google G-Suite, which provides real-time collaboration on documents, spreadsheets and presentations.
- Collaborate on a screen or page mock-up using Balsamiq Mockups or Sketch.
- Flowchart something using Gliffy over a screen-share.
- Make a sequence diagram
- A couple of us tried some inexpensive Wacom tablets to use drawing as a quick communication tool.
- Or you can draw a picture on a piece of paper and photograph it, and upload it to Slack. It's cheap and it works.
When you do need to transmit sensitive information, do it securely using an encrypted channel. Do not assume your chat client is encrypted, it likely isn't, and if they say it is, don't trust them. Do not send passwords.
Never send passwords in clear text via chat or email. Clear text means un-encrypted.
Try to send the context (what site), the username and the password, all three, all through different channels so that someone would have to be hooked into all three to get enough info to break in.
Or use a password utility like LastPass which has built-in secure password sharing. (I do trust LastPass, they've been audited repeatedly and respond swiftly to bug reports. We use LastPass Enterprise. If you don't trust LastPass, you can run your own BitWarden instance.)
Consider hosting or using a one-time secret sharing service. We run our own instance of Pinterest's SnapPass to share context-free passwords. We stood it up when our previous favorite tool https://onetimesecret.com had an outage. SnapPass is a tool that allows you to store a secret and share the URL to that secret. The URL unlocks the secret, but only the first time it’s used, after which it's burned. The secrets time out after an hour, day or week, configurable.
We liked onetimesecret, but you cannot trust whoever runs it. So if you use it, you MUST NOT put all the context someone would need to break into a system in your secret message. A site like onetimesecret would be a perfect service for spies to run.
If you run your own SnapPass, make sure your Redis is locked down.
Know when to escalate to voice
Don't hesitate to escalate from chat to a voice channel to save time. If the chat starts to get tiresome, just switch to voice and knock it out. A simple "call?" says it all.
Be conscious that misunderstandings can blossom seemingly from nowhere in chats and emails. If you sense you are being misunderstood or a conflict might be brewing, switch to voice immediately. Humor and wit are notoriously easy to misunderstand in text.
Before you send, read back to yourself what you've written in the most deadpan, monotone voice. Try to imagine someone who doesn't know your tone and inflections reading it this way. Some people either cannot hear or do not appreciate sarcasm and irony. If you’re really striving to be understood, make sure there's no ambiguity.
Don't be afraid to declare some "heads down" time and "go dark"If you need to focus, it's ok to "go dark". By this I mean quieting, disabling or shutting down services that can be distracting and only checking them periodically. Some of us have production monitoring responsibilities, so we can never really go totally "dark". But for others, it is an option that can afford some much needed focused development time.
So you're working at home. No commute, score! You've saved an hour or more a day. Probably a lot more than that.
But now home is your office. The worlds have collided. You got home in my work, you got work in my home. They don't always taste great together.
Social networks and texts from friends are non-stop. You're going to need to exercise discipline if you want to stay efficient and effective at work. It's hard. Really hard. There are apps you can install that count the minutes you spend in other apps so you can gauge how much time you're spending there. Then one more app to count the minutes of the minute-counting app...
There are dirty dishes in the sink. Costco is soooo empty this time of day. Maybe there's a dog who needs attention or walking. Or kids. You meant to fix that thing in the whatsit. So ... many ... distractions.
Hey, you can do some home stuff. It's ok, we all do it. But...
You signed on with a company, and they're sending you a paycheck for your work. They have expectations, and if you don't deliver, this nice work-from-home job might not last. Just be conscious of how much "home stuff" you allow to creep into your "work stuff". You have to get your work done.
On the flip side, some people find it hard to ignore work when it's "right there" in their home. If you're lucky, you have an office or an area that is "for work", and you can walk away from it. If you don't, you're going to have to develop the skill of mental compartmentalization. You have to enable yourself to "shut if off" when it's no longer work time.
I'll leave it there.
Don't let your status setting "lie"
The idle status features of chat clients are useful to us, so leave them enabled. That is, don't configure your chat client so that it always looks like you're active. It's OK to be idle; hey, we all go to the bathroom, or take some time to read a couple chapters of a programming book, or whatever.
What's frustrating is needing an answer from someone, seeing their chat says "active", pinging them, then sitting there waiting and wondering where they are. In a physical work environment, if someone dropped by your office, they'd be able to tell immediately if you are idle or active just by looking. Let's use the idle status to mimic that in our virtual environment. Consider reducing the amount of time your client waits before setting you "idle" to just a few minutes.
Slack has a chat status indicator. We use it to let folks know when we're at lunch or otherwise away, on PTO, etc. It also integrates with Google Calendar so when I'm in a meeting, others can see I'm busy in a meeting. When I'm in a Slack call with someone else, people can see that too. Check the icons before sending.
Voice and Audio Etiquette
I'm a reformed musician and sound engineer. As such, audio quality is more important to me than most. Here are my tips for maintaining good voice etiquette and audio quality:
- Rule of thumb: If you need to escalate to voice and have confirmed availability, then you initiate the call. Following this simple protocol speeds things up eliminates the confusion regarding who is supposed to start a call.
- Audio Quality Matters! Use a wired USB headset or, if you must, a Bluetooth headset. Bluetooth headsets usually sound worse than USB due to the sub-standard BT audio codecs often built into computers.
- It's usually not great to use a headset that plugs into your computer's analog audio in/out or phone jacks. Those analog in/out jacks can be electrically noisy as their analog-to-digital converters are sitting inside your machine, amongst a maelstrom of other electromagnetic activity. I can't speak for all computers - Macs might be better than PCs here, but all PCs I've tried have been awful.
- Open a recording app and record your voice as heard through your headset mic, and play it back to yourself. Does it sound awful? Try repositioning the mic. Or get a new headset. There's a mic phenomenon called the proximity effect. The closer the mic, the more low frequencies, the better it sounds. Get one where the mic is pretty close to the side of your mouth, and not right in front of your mouth or nose, which brings us to:
- Don't breathe into the microphone. Just ... don't. Move the microphone away from your line of breath. Please. Learn where to place your mic so you're not breathing into it. Test things out by recording yourself.
- Webcam and built-in laptop microphones are awful, avoid them. Your computer might automatically use those mics, even if you have a headset connected. Know which mic is active and how to switch it.
- If you MUST use your laptop microphone, learn to mute. If you don't mute, be aware that when you type, it's going to sound like the upstairs neighbor is auditioning for Riverdance.
- Learn the hotkeys to mute/unmute.
- Always mute when you're not speaking. Some of us type REALLY LOUDLY on our fancy mechanical keyboards, or have squeaky chairs, or live in creaky houses with creaky floorboards. Or perhaps you live on a busy street and like to have the windows open. Or, you've set up shop in an aviary. Other peoples' noise is distracting, and if your noise crosses a certain threshold, it will drown out others on the call. This happens all the time.
- Keep cell phones away from headset wires. There's a tell-tale sound when someone's iPhone is resting near a headset wire, and everyone on the call can hear it except you. For that matter, be careful of any wires that are draped across your headset wire. Some devices and wires will induce noise. Not all headset wires are adequately shielded, and shielding can spread out inside the cable with bending over time.
- If you don't have the CPU horsepower, try not to run anything that will exercise your CPU while you're on a call, especially a video call. Sometimes it's unavoidable, like when you're hosting a screen-share, video and a call simultaneously. However, kicking off a build and sharing a torrent while calling and remotely displaying your Ultra-HD screen has the potential to make you sound like you were sucked into an interdimensional wormhole and are being extruded through the event horizon of a black hole. In layman's parlance, it sounds bad.
The bottom line is one of consideration -- be considerate to your fellow co-workers, minimize distractions and time wasting, and try to think, "What would I do if I were in a physical office environment?" (WWIDIIWIAPOE™) Then, be thankful you’re working from home.