This will a quick summary of my last 3 years experience working remotely for one of the best and biggest companies investing and developing Open Source software ever. Also, my idea is to keep this post updated with my latest experiences and tips for doing remote work the best possible experience.
The first feeling that comes to my mind is a picture of a well-known tv series “Naked and Afraid”. Yes, you will end up naked in the jungle waiting for guidance, and it’s not your fault if this help never comes.
Working remotely gives you several nice and not so nice experiences when executing your functions in your new remote awesome job.
- Working hours flexibility.
- Work life balance.
- Saving commuting time.
- Cooking your own healthy food.
- Geographically distributed teams allow to get the best talents across the globe.
- And many more …
There are also several benefits for the company you work, so it’s not a benefit only for you, in most cases they (the company you work for) will optimize how many resources they need to scale their workforce, saving in offices, electricity, heating, Internet access, food, furniture, and many others…
But this is not about good things, this post it’s about identifying those corner cases in which working remotely might become a daunting task. And after identifying those cases, we should be able to provide some countermeasures for avoiding sad, frustrated and burnt employees (at least for me they worked quite well).
Not so good:
Operation costs are translated to the employee
Yes, in some cases you will have to pay for all the expenses generated from working in your home, like, a good chair, Internet access, electricity, gas, among others. But this is not generally a win-lose deal, it depends because you will also save in fuel, food and most important TIME.
The slow start
Starting to work remotely is hard, so first thing first, IMHO you need to do a few things first.
- Get the context of your role in the team.
- Understand your team goals, functions and responsibilities.
- Get yourself a development environment as soon as possible.
Hard to effectively communicate with ALL your colleagues
This might create inside the team, a sort of a ghetto feeling where there are people communicating each other and others who don’t, in which case it’s bad because the people might feel it’s not part of the team’s mission.
There are several solutions to this:
- Have a common and real-time communication channel, like IRC, Hangouts, Slack or any other technology you want to use.
- Make all the people in the team speak daily about this “What I’m doing and what is blocking me to achieve my tasks”. No more than 2 minutes per person in a daily stand-up call.
- Avoid doing solo-tasks, try to get at least 2 people per task even if it can be decomposed in different sub-tasks make your team work together, using tools like t-mate to do peer programming sessions it’s also a good idea.
Senior roles usually feel they need to pay back the freedom with more hours
The freedom of doing remote work might be wrongly interpreted for some people, yes, you have the freedom of doing laundry, get your kids to the school, or to write this post. But, there is no need to excessively do extra hours, if you are able to measure the value you are generating each day, you won’t have the need for burning yourself out with extra hours.
If you don’t have clear tasks or goals you might end up with this question, I’m I doing too much, I’m I working less than I should? and there you have the error. If you measure the value you are generating you won’t have this question, period.
Measure all! Measuring as much as you can give you a better overview of your current and day-to-day performance, i.e. something really simple might be a google docs script connecting to the apps you usually use to generate a report and have a better scope about your own and personal performance.
PRODUCTIVITY IS NOT ABOUT TIME, PRODUCTIVITY IS ABOUT TO GENERATING ADDED VALUE (work smart!).
In the meantime, if you have covered all the tasks committed for the sprint you should not be feeling bad about your performance, but, what if you don’t have defined those sprint tasks?
So, the next item will speak about productivity, innovating at your workplace and doing some planning kung-fu.
Productivity and innovation vs Planned work
There are people that have an incredibly good performance doing their work and they just don’t like to plan the daily basis tasks they need to achieve, this is motivated mostly because they have all the bits in their minds. But, this is a team, and we are as good as our lowest performance component in the chain.
There are several solutions to this:
- Agree in a way of defining the tasks that need to be achieved in the sprint, try not to use time as a measure for finishing tasks, instead try with something more subjective like value or difficulty.
- Know what to do at any moment of your time, sometimes, not knowing that will force you to invest much time on this without having the need to.
- Keep all the knowledge in a single place of truth, yes, this is painful when you don’t have it. Trello, Taiga, GitHub issues, Google docs, Google spreadsheets, Launchpad, Bugzilla, Storyboard, and so many others… this is the toolset that I’m usually using on my day-to-day work. Now it evolved to use Jira with some plugins to keep and maintain a single-place-of-truth.
The catch, sometimes over commitment makes you not able to innovate on your role, so, keep a little bit of time for improving your product and yourself.
Updated 2019/01/23: First version