In this difficult times, almost everyone is working from home but before this pandemic, there were number of people who were opting for work from home to reduce travel time or for their health, or it was the company's policy to mandatory work from home once or twice a week. Whatever is the case, with the increasing technological advancements as well as messaging and video conferencing apps it's possible to always connect with your teams.
Now as a developer, we do messaging and video conferencing but that is just for the meeting. Now before going into focusing developers related productive apps, let us know how to be effective or productive while working from home. First and foremost, is to have a good working environment which includes a table, good Chair a Monitor and a quiet place so that you can focus and you don't get too much distraction. Since I used to do occasionally work from home, I did not have this setup and thus I am struggling a bit.
Along with that we need to try to be as much as flexible with timings, now we are not doing 9-5 jobs and sometimes doing work from home can be overwhelming and we spend quite a bit of your personal time into your job. So if the situation demands you to go and do any work for half an hour in the morning or afternoon you should do it because you don't know when you will be free.
These options are great for just doing your work or be productive, focussed, relaxed etc, but as a developer, we know that we are not alone in working since we are working in a team (most of us). Thus we need Collaborative tools so that we can do pair programming or can do review together. What we use is Visual Studio's Live Share which is Microsoft's real-time collaborative solution for both Visual Studio and Visual Studio Code. I work on .Net as well as Angular so mostly for work we use Visual Studio and Visual Studio Code and thus this Live Share helps us to have collaborative development.
According to Visual Studio Live Share
Welcome to Visual Studio Live Share! Live Share enables you to collaboratively edit and debug with others in real-time, regardless of the programming languages you're using or app types you're building. You can instantly and securely share your current project, start a joint debugging session, share terminal instances, forward localhost web apps, have voice calls, and more!
Unlike traditional pair programming, Visual Studio Live Share allows developers to work together, while retaining their personal editor preferences (e.g. theme, keybindings), as well as having their own cursor. This allows you to seamlessly transition between following one another, and being able to explore ideas/tasks on your own. This ability to work together and independently provides a collaboration experience that feels much like in-person collaboration.
This has enhanced our code review practice a lot, we don't have to go back and forth to have a code review session or we don't have to use a desktop sharing to show our code. We just do live share and thus, based on the review comments we update it then and there.
There are other tools too, some are paid and some are free and based on your working ide's you can choose what to use and whatnot. I am liking my work from home setup, not because of the working environments but because we have so many tools out there for collaboration and thus you don't feel alone.