The ability to work remotely is a boon for a software developer. The industry provides this option.
This might look simple from outside. But when you look closely, the whole working environments that are created in the world, start with this underlying truth. “Don’t trust the working person. He might cheat, have all the checks and balances”. They start with no trust.
When it comes to remote working, in the real sense, like. I don’t want to worry about anything else, one and only one thing matters is you complete the work. In the time estimates that you have given. There is a huge trust factor in this whole transaction.
In software development, that’s what really matters. Because it’s not really linear scale with time. I might be not good at coding, I will spend one month developing the same code that you have written in a day, or I might not be capable of ever writing such code that you write. When the things that involve mind to work, the output differs mostly on the developer’s capabilities. So there is a vast difference between the code of an average and competent software developer. That’s why there is a saying, pay twice the salary of an average developer to a good software developer and hire him. In other words, hire one good software developer instead of two average software developers. By spending the same amount, you get 10X output.
The current times are offering huge amounts for people who are capable of working remotely. There are even companies that train people to become good software developers and place them in US and UK companies. So they work from their home town or village and earn US dollars. For which many people go through all the loops, like doing MSc, getting an H1-B visa, and other stuff.
With the recent Covid effect, many of the large companies in Bharat also shifted their workforce to remote mode. This is one of the welcome changes due to Covid. When you image a group of friends from childhood, become good at developing software and settle in their native places. Enjoy the environment with all the friends and get US salaries. They can do wonders in their native place. A village with 3 such capable people can transform it into something great, which we cannot even imagine.
The core capabilities needed to have excellent opportunities to work as a software developer become critical requirements when you work remotely.
Work independently with the least amount of dependency on other developers. Communicate well with people. Provide proper estimates. Keeping your reporting manager up to date, to avoid surprises for him.
We like to have people around to work. Sometimes, when we really want to focus on getting some code done, we want to be in a flow, with no one around. Many good developers try to find time in the office when there is no one like early hours or late in the night or on weekends. They really enjoy the time. When they get into a zone, where they are just focused on development. I had many of such zone states when working in Microsoft. It’s a pleasure to work on a hard problem for long durations without a single distraction. Only for lunch, you get up, the rest of the time, you are enjoying coding. When you are good at something, you tend to enjoy doing it.
With the remote working option, you get a continuous block of 4 hours to work on something. Which is the best gift for any developer? Every software company must provide such an environment in the office by design. But you rarely find it in the typical offices.
Communication is critical for remote development. With today’s tools, you can regularly push the code to a central place where other people can use it. But getting these updates becomes critical for the team. Remote working style when you are following a good process, it becomes hard. Writing skills becomes very important. Taking up writing challenges like continuously writing for 30 days in a stretch for a fixed duration. It helps you to become comfortable at writing. Having templates for communication also makes life simple.
Estimating the time to complete and completing on time is the art any developer should master. For this, it takes time. Being details oriented and straightforward in thinking that estimating with emotions or gut feelings will lead to unnecessary pressure to complete the huge task in a short time. There are many things that need to be done when developing software. We tend to not consider the other things than the primary parts of coding the core part. When you consider all those, you get a better estimate. Sticking to the plan is also essential. The discipline of your faculties plays an important role. When your mind, emotions and body takes instructions from you. Then you are fit for remote work. Otherwise, you need to work on them.
Having a clean, silent space will help you to complete your work. There will be some calls with the teams, so having the basic setup to have a clear voice capturing mic, decent internet with power backup.
Once you have the setup and capabilities needed, it will be a joy ride. I have a dream of making people capable of working remotely for FAANG salaries. And make them settle in their native places or their dream places.