With the unfortunate events going around the world in the last few days a lot of people/companies have been adapting to the concept of working from home. Anyone reading this will know that this is not a new idea. Out of my 4 years of experience working as a software engineer more than a third of it I have been working remotely. A lot of people must have worked from home before, but these are different times. Most of them have been forced this time and no one does well under forced circumstances, but the work must be done, and companies will expect you to give the same output and what I have been seeing and hearing from some of my former colleagues and friends is that they have been finding it difficult. Each one has their own reasons and most of them have nothing to do with working from home but rather with the individuals or how they work from home as compared to when they are at a workplace. We are not going to discuss that, but I am going to mention some tips that I have found useful when working remotely. Neither we are going to discuss any specific tools. We will be trying to be efficient with what most of us have at this point.
This is something I am going to stress the most. This single most important factor that will make remote work very easy and efficient is communication. It’s very rare that one person working is working on the entire project. We are always in teams and it is about how well you perform as a team. So, when your team is not around how do you make sure that all are aligned with the goal. In fact, how do you know everyone even understands what the goal is. The team needs to establish a proper communication channel and must rigorously use it for any communication means. Not everything will be communicated over one medium. A lot of communication must happen over some of the other tools that you will be using.
For example: Any discussion related to a task would be happening as comments over GitHub issues or JIRA tickets. A lot of times I have found solutions on GitHub issues. Turns out the problems I am currently facing are already solved by others. This just doesn’t inform others about what is happening, but it will also help other developers in understanding.
Communicate as much as you can even if you think it is something of less significance. Look at any open source project and how much discussion goes when designing a feature or addressing a bug. Also we are working in a team. Team members depend on each other and you have to be as responsive as possible.
Finally, I would say it is very important to exchange talks about everything other than work. After all, we all need friends at work.
You have an elephant in front of you and you eat it one bite at a time. Do not plan for eternity. Plan a sprint, prioritize your work and do one thing at a time. Set up a goal for the next few days (for a week or two), divide it into smaller tasks and get them done one at a time. This works for the individuals as well as for the entire team.
When working from home your workspace is not far from your couch/bed. Dressing up will help you warm up for your work and will mentally prepare you, it doesn’t have to be a complete 3 piece, but getting out of your pajamas does help.
As I have mentioned earlier that we work in teams. So, you want to have a discussion regarding something or you are unavailable for a certain period. Having it marked on the calendar will help you and the rest of the team members about availability of the individuals.
Though we have a specific tool for communication, another one for source code management, a different one for project management, a time management and scheduling tool like calendar it is not possible for one to keep monitoring all these at all times. My Email is connected to each one of the tools that we use so it is a place where I get to know about anything that I have missed.
Every communication tool has video calling capabilities. Use it as much as you can. You don’t want to feel you are talking to a machine. Having the video turned on will keep you much more involved in the discussions going on.
Get off your couch/bed! Having a separate physical space for working gives us an edge mentally. Get clear lighting in the room, for one, you don’t want to strain your eyes and have a proper table-chair set up. Have some love for your spine.
It is very important not just for you but for everyone working with you to know when you begin and when you get off work. You are working from home and your home does not have to be your office all day. Do not get carried away with work that will interrupt your family time and social interactions. Also take regular breaks and stretch.
These might not the the only ways to be productive but they will certainly help you and your team coordinate better when you all are not at the same physical location.
Stay home. Stay safe. Stay productive