Working remotely as a Software Engineer

Carlos Cuesta - Aug 21 '20 - - Dev Community

Since March due to the COVID-19 ๐Ÿฆ , the company I work for, decided to ditch the office and go full remote ๐ŸŒ.
Within a day everyone moved his workspace from the office to elsewhere ๐Ÿ . Actually we do not own a physical space and there's no intention to have it anymore.

I'm going to give you some tips based on my remote working experience as a Software Engineer on a team that is on the same timezone โฐ.

Communication

The communication environment at the office is usually synchronous and face to face ๐Ÿ—ฃ. It's really easy to reach anyone, you just need to approach to his table, and that's all right ?

However working remote means you can work anywhere you want in the world. So you don't have the possibility to reach your colleague table and talk with them.

This leads to the most essential part of remote work the asynchronous isolated communication ๐Ÿ’ฌ. From this point you should understand that you'll be communicating through a screen. This introduces a layer of complexity to the communication process.

Why? You might ask, we can use video conference software! Yes but, it's not the same for the reason that we are not used to it, because humans by nature are social animals and we are made to interact physically.

Keep in mind that a video conference is a synchronous process, so you won't be able to use it anytime, it will depend on the momentum of the coworker you want to contact. Luckily text communication comes to the rescue! โ›‘๏ธ

Assume positive intent and be kind

Always begin with a position of positivity ๐Ÿ˜Š, the communication will flow a lot easier as a result of how our brain ๐Ÿง  processes positive intent โค๏ธ

Before sending a message read it a couple of times and think about this: Would I say this exactly word by word to the person's face ? โ€” If the answer is no, don't send the message โœ‹

When you are on a situation where you are not understanding a colleague, jump on a video call. You will find that a long discussion could be closed on a 10 minutes talk.

Use public channels

When using your company's internal communication tool always try to communicate on public channels avoid group chats or direct messages as possible. For the simple reason that private communication discourages collaboration.

I'm pretty sure that anyone on your team could benefit from reading certain discussions to stay informed on whatever you are working on. This will help to embrace team work and collaboration ๐Ÿ’ช

If you feel that the topic/resolution is important, you should document it somewhere else outside the communication tool. Otherwise you'll be losing essential information that could be shared and will be lost on the history of the chat.

Connect with the team frequently

Do video calls with your team mates frequently to make them feel connected. Working with nobody next to you could be tough and depressing sometimes. I found that proposing a 10 minutes daily meeting from the beginning of our remote situation helped people to feel better.

Add a social aspect to those meetings, talk about trivial things, sports, news, personal stuff... You'll maintain and improve the relationship with your colleagues ๐Ÿ™

Organization

As a distributed team it's essential that everyone on the squad knows the company roadmap. As a Software Engineer being aware of the objectives will provide us a comfortable habitat to work on. Because we won't like to feel as machines ๐Ÿค– who write code without any clear purpose ๐Ÿ‘Ž

Personally, I feel much more motivated with the product and problems If I understand the background of what I'm working on.

Knowing what person is working on is really valuable for the team. It will help to avoid blocks between engineers and provide them a clear picture of the status of any task.

Use a software development methodology

Choose a system to distribute the workload on the team. Try the different frameworks that exist out there and pick the one who works best for your team. We use Kanban flow and we're pretty happy with it.

With a methodology like Kanban you'll reduce the overhead of organizing tasks remotely and you'll make visible the work that every member is doing on a daily basis to the rest of the team ๐Ÿ‘€

Manage your working hours properly

The first two months of going remote I made a ton of overtime hours. We had a critical situation at the company and we had to make an effort. I spent a big time on my home office / bedroom coding. Since our whole country was on lockdown ๐Ÿ”’ due to pandemic, I had nothing else to do ๐Ÿ‘จโ€๐Ÿ’ป

You should be very careful with your working hours on remote, because our body needs rest time ๐Ÿ˜ด sport ๐ŸŠโ€โ™‚๏ธ and entertainment ๐ŸŽฎ. A situation like this could end up with a burn-out ๐Ÿ”ฅ, make sure you protect your time ๐Ÿ’–

Adjust your schedule flexibly to your daily routine, that's one of the best perks of working remote!. You can code whenever you feel most focused, need a break? Go for a walk and grab a cup of tea ๐Ÿต

Documentation

Writing documentation is an essential process on a remote based company. Have you ever hired someone remotely? What an onboarding should be to a new engineer?. How our business model works?. All those questions and more should be documented on a knowledge base.

This is something really important because you won't be at the office anymore so it's not that easier to communicate with people, specially with someone you don't know.

You will repeat and explain the same information to every new employee, so you have a great opportunity to write it down โœ๏ธ saving you some time on the future.

There are multiples documentation tools you can use, I'll list some of them as an example: Confluence, Notion, Dropbox Paper, Google Docs etc.

Workspace

Setup a comfortable and ergonomic workspace. Design your space as the home office you would be proud to have. You'll spend a lot of hours everyday inside them. Create your space, here's a list of things to consider when designing your setup:

  • Lighting โ˜€๏ธ: Pick up a place with good lighting, a space that have a great amount of sunlight if possible.
  • Office furniture ๐Ÿช‘: Get a good & ergonomic chair and desk your body will thank you later.
  • Ventilation ๐Ÿ’จ: Ensure that you have a decent airflow.

More resources and tips

Here's a list of useful links about remote work companies! Hope you find them interesting ๐Ÿ‘‡

. . . . . . . . . . . . . . .