I have spent half of my career having remote work from home. Working from home has many positive sides, but also some problems. I am writing this article now because the topic is more actual than ever.
So, let’s see what we lose when we win.
Bonding with colleagues
Social interactions are very important. Only getting close with your colleagues you can build a strong and well-performing team. Sadly, this is way harder when the work is decentralized. Many tools and applications make us productive in our business processes but don’t do much much in helping us creating strong teams.
When you are close to your colleagues it is much easier to put your ego away. Only when you are close to someone you can allow yourself to be weak and seek help when you need it. And vice versa, when you know someone well, you see how to help them even before they know they need that help.
Also, it is a lot easier to provide and accept objective criticism. This helps bad ideas to be discarded easily and the good ones to propagate.
Software development is a team sport. If we behave like islands and isolate from others, we will never reach the performing level we desire.
My advice to you is to seek the development of these relationships outside work. What about a long session of Age of Empires 2 Friday night 😊? Working on a common hobby project? Learning new technology together? Hanging out together or practicing some sport (if the distance allows it)? The options are endless. Just dare to make the first step.
Remote work and learning
The second drawback of remote work is how the learning process happens. If you are new in the profession this is even more important for you. When you are around experienced colleagues you learn a lot faster. Yes, online discussions and code reviews are great for developing skills but not enough.
Most of the learning comes in an unstructured way. It could be a piece of advice during lunch or wise thought around the coffee machine. It is much easier for everyone to share knowledge and discuss ideas when the communication is in person.
To function well the remote work happens in a way more structured process. This well-defined structured process often cripples learning by limiting the communications and methods of expression.
What can be done about that? In the first place, I would suggest you start looking in detail the code produced by your colleagues. Try to explain to yourself why the concrete approach is taken. What would be your solution to the problem and how it differs? When something is not clear ask the developer, who wrote the code. If you learn a new good practice add it to your toolset and try to implement it when a similar problem appears in the future.
Pay great attention during online meetings. When you work from home it is very easy to get distracted. Try to minimize all distractions. Close all unnecessary tabs of the browser. Close all doors so your roommates (if any) don’t bother you. Put away your phone. Put comfortable headphones on and just “stay frosty”.
The last advice is an absolute must – you should take part in the discussions. Don’t be passive during calls. Even if you are not familiar with the problem domain try to understand it. Ask all the “stupid questions”. Share your vision of the possible solutions and be active!