Among several challenges when working Remote are:
- not in the same physical location
- timezone difference
- language barrier
- additional communication overhead
It's much easier and time effective when another developer is just besides you to guide you on a work process. He or she can directly point on your screen to explain things. And if you have any question, you can instantly ask. The idea here is you get feedback almost in real time, which is a challenge when working remote.
Moreover, we need to take into consideration the language and even culture barrier. This affects quality of communication. For example, both you and the remote team members might have different mother language. This makes explanation, even if face to face communications harder to follow. For me, I've also noted how different accents can make it harder to understand.
That's why many developers prefer working in an environment whereby everyone or most of the team is in same physical location.
For software development as a programmer - in my experience - the best way to make progress is to have quick feedback either from other developers or the product owner. In this way, you can then adjust your sail whenever there is something missing, which usually happen due to poor communication and/or understanding.
The most effective way - especially for a new colleague - is to do pair programming. This helps in a lot of ways namely:
- understand the glossary used to at least be able to agree on fundamentals
- a demo of the existing software
- conventions, standards and best practices (might require multiple sessions)
- share some productivity tricks
- can show instead of simply telling what to do and how it's done
- exchange of ideas in the most concrete form
When working on the same physical location, we do it all the time. When we have an issue, we call a colleague and the latter helps us. Nowadays, we have plenty of tools that can help us with this process - such as Skype or Teams.
- programming is already tough, but what makes it harder is a lack of quality communication
- an effective way to communicate better and get feedback faster is through pair programming