Software Development can often be seen as a solitary affair to the casual observer. A single person per machine, typing away, producing lines of code for production. Requirements go in, software comes out.
With this in mind, remote working shouldn’t pose much of a sea change or present any real problems. Remote requirements in, software comes out, this is Business as usual, right? SETL was already moving to remote working before the lockdown, so it should have all been seamless, I guess.
In reality, things aren’t quite as cut and dry as everything may seem. Software development ultimately is a series of problem-solving exercises. While this requires individual focus and concentration, collaboration is also important.
Certainly, techniques like Rubber Ducking can be useful, a problem shared really can be a problem halved. Time savings aside, consultation with colleagues can often be the difference between a good piece of work and a great piece of work.
Developing software as with any problem, understanding of what is required is essential to coming up with an informed and correct solution. Ensuring good lines of communication means that any ambiguity is quickly resolved, allowing the developer to concentrate on the task at hand.
Even the best requirements can sometimes miss out assumed knowledge and consulting with colleagues can catch these early, avoiding costly refactors. Grabbing some colleagues for a call might seem daunting, but it can certainly make a difference.
Most developers know, writing a good piece of code is a rewarding process in and of itself. However, it can be easy to generate something that while elegant, is beyond the scope of the project or doesn’t fit with the intended audience. Working alone, it can be easy to get blinded to the fact that what you are producing is not quite valid for the project and it is easy to get attached to a piece of functionality. Getting feedback from peers can often help to ‘kill your darlings’ and ultimately makes for a more refined end product.
Most projects involve a large number of interconnected pieces working in tandem. Writing these in isolation and hoping that they will glue together successfully at the end is a risky bet even given the best interfaces. Regular check-ins with team members can help make the pieces fit together just right.
Knowledge share is another place where communication is key. Spending hours on a solution, only to have someone point out a better way or have a pre-existing solution ready to integrate can not only be a little soul destroying but can also be costly to a project. Getting a second or third opinion on your proposed implementation can reap valuable insight and might even save some hair tearing.
Other members of the company will also need to be interacted with. Project Managers will need to be kept in the loop, to make sure they are kept abreast of any changes on the project landscape. There is always the temptation to get your head down and hammer out some code in a marathon session before revealing your efforts. This siloed approach might produce a great piece of software at the end, but if no-one knows about it, someone might have already duplicated portions of your work, or the project requirements might have changed making your hours of effort into a bad fit.
Aside from work and project concerns, no person is an island and even the most clandestine of developers requires a little interaction. As the days seemingly meld into each other during this lockdown, it is important to remember that developers are more than just code machines. The well-being of a person is very important and more so than ever in these isolating times, both in terms of physical and mental health. The old adage, ‘A developer is a machine that takes in pizza and coffee and outputs code’, can only go so far!
Some Helpful Hints
Make sure you can get away from your desk on occasion. This is important normally, but there can be a thought that you need to be at your desk all the time in case a call comes in. If you’re worried, just let people know you’re taking a couple of minutes, stretch your legs and get the blood flowing again. You never know, that answer you have been searching for all morning might suddenly make itself known!
Creating a divide between work and home life is quite important too. The fact that work is now at home doesn’t mean that you are at work all the time. Separation of the two worlds can be essential in avoiding feeling burnt out. No one can be ‘on’ 24/7 forever, striking the right balance is essential to keeping up mental and physical health for both you and the others around you.