Do you roll out of bed onto your home office chair? As an increasing number of software developers find remote working a reality, it's time for a brutally honest conversation. Everyday sins can happily coexist with top notch productivity. This article summarizes 20 well-tested tips and tricks that have worked well for me as a remote worker over the last few years. This is not to be treated as an exhaustive list or commandments, just common sense techniques. At the end of the day, we all chart our own course.
Ever wonder how others are getting so much done in a day? Modern tuned-in developers juggle between coding, reading, listening, podcasting, blogging, authoring and so much more. Yet, everybody has the same 24 hours and you have got to sleep enough - trust me, otherwise it takes a toll. It's all about scaling yourself - making every waking hour count. You have to squeeze out productivity and maintain sanity - be it working from home or in an office. Here are a few tips and tricks, summarized for brevity over a long winded article, allowing you a quick read before you get back to your busy day.
1. Right Tools Matter
Communication is the key to any team's success. Your whole team should always be in sync - be it everyone in office or the entire team being remote. Allow modern tooling to help. Some popular options are - Skype, Slack, HipChat, Lync, Yammer, and IRC chat clients. There should be one primary tool through which the entire team collaborates. Being online means you're at work.
2. Manage Expectations
There should be no surprises on work hours and deliverables. Does your team expect you to be online throughout the day or is it more like just get your stuff done? Are you supposed to jump on impromptu issues or work towards that big deliverable? You should decide the exact format, breakdown and timeline before working towards a deliverable. Excelling at work is often about managing expectations upfront.
3. Be Reachable
When you work in an office, your team members could just walk up to you if needed. What's the corresponding alternative when working remote? Be available and reachable for 'pings'. Decide on times when you are available and on tools where you are available. Once locked in, just be online and let your team know if you're going to be away. Nights/Weekend availability should be your decision. Replying to email at awkward hours indicates your availability - live with it.
4. What's He Working On?
Your team/manager should never be in doubt as to what's on your plate. Again, modern tooling can help - use Trello boards or any Kanban techniques to move work items down the chain. Provide honest estimates for work and stay true to your word.
There should be no difference in team collaboration between being co-located or remote. You should never be stuck on a problem for days. You should seek help, but only after putting in due diligence towards solving a problem. Use real-time tools like Google docs, OneDrive or Beegit. You should share screens and pair code. You should hash things out quickly by working on something together, instead of the constant back and forth.
6. The Headphone Rule
Developer zen is precious. If working in an office with your headphones on, it oftens means - 'Do not disturb'. What's your equivalent when working remote? Turn on 'Do not disturb' indicators when in the zone. Team members will honor it because you're getting real work done. Use Pomodoro techniques to your advantage - block out chunks of time where you are simply working towards an objective without any distractions.
7. Effective Vs Efficient
There is a subtle difference - it's "Doing the right things" versus "Doing things right" or "Choosing the right path" versus "Running as fast as possible on chosen path." If your chosen path is wrong, it does not matter how fast you run, right? Always orient what you are working on towards strategic goals. Decide on 3 things you want to get done each day; decide on 3 things you want to accomplish in a week; then evaluate at end of day/week and repeat.
8. Pants Matter
You had an aura of formality when in the office - there's no reason to break it when remote. Dress for the job and be 'at work', both mentally and physically. You won't feel very formal joining a meeting with your undies on. Your work area should be a sanctuary. You should clear your mind and "arrive for work," even more so when remote.
9. Life Happens
You may have said to your family before starting to work from home - 'Don't knock on my office door during work hours'. How's that working out for you? There will be disruptions, you just need to plan around them and be realistic. You need to pick your days for chores and keep kids/pets out when you are in the zone. It's ok to make up for lost time and a little guilt helps. If work piles up, feel free to use late nights - occasional ones do not hurt.
10. Triage Your Life
You need to triage everything coming at you - email, social media, work and family requests. Prioritizing your day and sifting through noise is important to keep you sane. You should consider flagging things for priority and turning off all notifications when you are in the zone. Do you really care that 'Bob came online'? You also can't be a control freak - learn to delegate work.
11. Defined vs Real-time Work
You need to align your work to goals, otherwise you risk blowing days away. Don't get sucked in and absolutely do not argue on the internet. It's good to prove your point to someone, but your deliverable deadlines won't change. Contrary to what you think, our brains do not multi-task very well. So, avoid frequent context switching - some techniques are to cut down on Alt/Ctrl-Tab or putting up distractions on multiple monitors. You need to speak up when on-demand work is consuming your day.
12. Catching-up Never Ends
Do you hear yourself saying - 'Honey, I just need an hour more to catch up'? While it's good to be in-tune, you need to be careful of the never-ending spiral. You are never going to be all-caught-up. It's ok to miss internet news - what's important will probably resurface. You should invest in read-later tools - like FlipBoard and InstaPaper. You need to flag stuff for later and learn to let go.
13. Draw a Line
You need to know how to balance personal time versus work time. Your work/life boundaries should be flexible, but never hazy. When you walk away from your desk at the end of the day, there should be a mindset switch. If you have team members across widely varying timezones, adjust your work day with breaks in between - you don't need to be online for everyone at all times. When you add work email to your smartwatch, you end up bringing work where you really did not want it. And personal time isn't just about relaxation - you need to invest in yourself. It's important to step outside of purely work deliverables - learn diverse things that add to your growth.
14. Change It Up
Change keeps you attentive and it is important to keep your brain fresh when working remote. Change up your work location from time to time - an occasional hour from coffee shop is refreshing. Change up your posture - sitting all day can be hurting your back and a stand up desk may help. Change up projects - this keeps you thinking fresh with technical/tooling differences. You can even change up computers for variety and, if possible, move between Mac, Windows, desktops, laptops or tablets for consumption.
15. Get Off That Chair
A healthy mind needs a healthy body and you need to protect against falling into a rut. You need to get moving and take breaks. A small drinking cup/glass helps and makes you get up more frequently. Fitness trackers can keep you goal-oriented and social. You should look for some stress-relieving chores at end of day - cooking can help. Walking or swimming are great low impact exercises. Your subconscious mind helps with problem solving during exercise.
16. Pick Up The Phone
In case you have not heard - your keystrokes are numbered. You shouldn't be wasting them on long emails - generally nothing over a few sentences. You need to get on phone/Skype calls to cut out the back and forth. Instead, when you write, immortalize your content by putting it in a blog post/article/wiki.
17. Plan Meetups
You need to be social with your team - Facetime > IMs. Personal relations always matter and camaraderie between team members lends to better productivity.
18. Find Your Passion
Have you heard the saying - 'A developer is known by side projects'? Pet projects help you grow and you should never stop learning. Polyglot developers are known to be better problem solvers. You should draw influences from other fields - open your mind but maintain your passion.
19. Savor the little things
Enjoy food - for me, that cheap Chinese buffet or Cinnabon is part of the American dream. You should indulge in what you find relaxing. Remember those Friday lunches with the team in the office - replace with something enticing at the end of your week. It's ok to blow off steam on that XBox rather than a complaining email.
20. Have Fun!
You have a preferred life. Remote working is a privilege, but you have to be disciplined. Be productive | Be social | Be energetic | Be kind | Be a rockstar.
Take notes, but don't get caught up on unsolicited advice - including this article. At the end of the day, you know best what works for you and your team. It's your life, and productivity helps you make the most of it.
All of Telerik's Developer Advocates (of which I am one) work remotely - come hang out with us in Boston for TelerikNext. We'll share war stories and learn from each other. Please feel free to use promo code BASU for a nifty discount off the standard price. See you in May!