The case for remote work

There are very compelling arguments for remote work and some very successful companies have opted for either full-remote or a hybrid working model

What I find interesting is that this concept has its seat well into technology history. Bjarne Stroustrup mentioned that virtual integration was implemented at Bell Labs in the late 1970’s so I’m sure this concept will work for your company in 2022 (unless I misunderstand what Bjarne means by “virtual integration” but I think I have it right)

Also, there is no correlation between software development and something like sales and marketing. I’m exclusively referring to my industry here

My arguments for remote work

These are my personal arguments for remote work. I am logical here

Being more productive

I can wake up in the morning, put the kettle on and make coffee and go straight to work. I don’t need to commute for an hour just to get to an office that has a desk that is just like the one I have at home

The exact logic applies when leaving the office. It’s another hour commuting home and sometimes this commute time increases by a factor of 2-3 because some disturbance has occurred on the road

Being more productive is the most compelling reason I have for remote work and I’m looking at this from the employer's point of view. You ultimately get more out of me when I don’t have to spend time travelling into and out of the office for x amount of days every week

What I’ve noticed when working remotely is that I tend to work longer hours on average. Often I’ve lost track of time because I’m working on an interesting project or my brain is completely occupied by the code I’m writing. This is a good attribute for an employee to have, right?

Comfortable and relaxed working environment

I position my home office (which is basically a laptop on the dining room table) so that I have a nice breeze from the front door. I can hear nature outside and it’s a very peaceful place to work from. I don’t have to contend with awful cigarette odour or noise

Working in this environment enables me to focus and get even more work done and this further amplifies my productivity and how effective I am at completing projects

What I find to be true is that when I’m relaxed and have a comfortable seat (the chair I bought is actually quite expensive and supports my back well), I can really laser focus in and produce high-quality work

Virtual meetings work better

Remote meetings are much more efficient than in-person meetings in a boardroom. I am able to share my screen very easily for when I need to describe source code to you and I can see you on a video call

I hate having to contend with people that are wanting to use the same boardroom as me because there is some overlap on the booking system, which is basically a calendar. It’s a massive drain and a time waste. What would be the point of doing a virtual meeting when everyone is in the same room?

Another way to think about this is:

Is there an argument that states any of the above points are actually better when in-person? I haven’t found such an argument and I can’t imagine one exists

Expense reduction

I am no mathematician but this is the basic equation I use when I calculate the amount of money I am going to need for fuelling my car

Fuel consumption indicated by the car manufacturer: 6.2 l/100 km
Current fuel price per litre: R23.84

Get to k/m per litre: 100 / 6.2 = 16.12 k/m per litre
There and back: 65.6 k/m (i.e.: the office is 32.8 k/ms away)

With a hybrid model that requires either 2 or 3 times a week in the office

2 times a week = 65.6 x 2 = 131.2
Get to litres needed: 131.2 / 16.12 = 8.13
Get to money required: 8.13 x 23.84 = R193.81
R193.81 x 3 = R581.43 per month

3 times a week = 65.6 x 3 = 196.8
Get to litres needed: 196.8 / 16.12 = 12.20
Get to money required: 12.20 x 23.84 = R290.84
R290.84 x 3 = R872.52 per month

With no hybrid model (you need to be in the office during the entire work week)

5 times a week = 65.6 x 5 = 328
Get to litres needed: 328 / 16.12 = 20.34
Get to money required: 20.34 x 23.84 = R484.90
R484.90 x 3 = R1454.71 per month

These are massive expenses for me and they are barely affordable

What you should do when you are working remotely

This is what I do when I’m working remotely. I feel this is a good way to work

Always be available and answer all instant messages

Always keep these three tabs open in your browser:

  1. Your email client / calendar
  2. Your instant messaging
  3. Your task tracking / ticket tracking / bug tracking system

Be careful to not simply enable notifications everywhere without first actually thinking about what notifications make the most sense. I find notifications to be annoying and ruin concentration but calendar notifications are actually fine (seeing they are at a lower frequency)

When a message comes in or an invitation appears on your calendar, reply to it. People on the other end like to feel they are not ignored. I would also recommend giving out your personal WhatsApp or iMessage

Emails often require a more comprehensive response and may take longer to reply to but if your email response can be a one-liner then send it off quickly. I do prefer to keep email as formal and comprehensive as possible so my quick responses mostly depend on what else is actually happening that day

Update tickets with very comprehensive information and keep ticket correspondence as verbose as possible

Always be sure to update tickets (or whatever form of task tracking you use) with as verbose information as possible

Do things like:

You can’t be too verbose with information. The reader does not have to read all of it but you need to ensure that all the information is there

Always use comprehensive code comments and provide details in pull requests

Always write comprehensive multiline comments in code and make sure that pull requests are well described

You don’t ever want to have to answer questions like: “why are you doing it this way?” or “it’s not clear why you are using this approach”

The person reading the code should get the answer not by asking you but rather by reading the comments that you have already thought through

I also find by adopting this principle that it helps me with my problem solving and thinking process. It’s generally a good all-round idea to apply these two principals and even more so when you are working remotely

Humour is a good trait to adopt in code comments

Never be late to meetings and use the HR systems correctly

Jump on Google Meet or Zoom at exactly the right time. No one should ever be wondering where you are when the meeting as started

If you are going to miss a meeting, update your calendar. If you are on sick leave, update your calendar and upload the doctor's note into the HR system

If your company does use a formal HR system, make sure you fill out your profile with a good profile picture and input things like your mobile number, email address and birthdate. Also be sure to add a profile picture to all the systems that you use (email, task tracking etc)

Adding your profile picture also personalises the system and makes everyone know that you are human and that you are alive

Write good documentation and ensure it’s collaborative

Google Docs and Atlassian Confluence make it really easy to create collaborative documentation. Documentation is really good for many reasons and when it collaborative, it does give the readers the feeling that you are around

You should also apply this principle to any readme’s or documentation that travel with the source code repositories

General arguments for remote work

These are general arguments for remote work and are objective facts

It’s been tried and tested

The coronavirus pandemic pretty much forced all employers into remote work whether they liked it or not. Industry was already heading in this direction years before the global pandemic. With me, I’d been working with a remote team for just under three years starting back in 2015

This forced push put the concept of remote work to the test at industry-wide scale and it was deemed a great success. I’ve heard of no companies that implemented remote work actually going out of business due to remote work or any issues with it

All the tooling we need is right there

Computers are not lacking any of the software you need to be able to work remotely and be part of a remote team

Internet connectivity

Connectivity to the internet is fairly cost effective and you should be able to bring in a stable internet connection into your home office

Virtual Private Network (VPN)

You can be on the logical office network regardless of where you are physically in the world

Source Code Management (SCM)

Thanks to the work by Junio Hamano and Linus Torvalds, we have distributed SCM and it allows for offline work (not that you’d be offline but you can still work if your internet connection dies)

Task tracking

There are countless task tracking systems on the web. Jira is the most popular and supports all of the Agile methodologies (Scrum, Kanban etc)

Instant messaging and video calling

Same applies to instant messaging. Microsoft Teams being my least favourite

Document collaboration

Google Docs is right there in your Google account and ships with Google Workspace

No need to rent office space or force employees to be in the same city

This attribute only applies to employers but it is still a very valid argument for remote work. Why would you want to rent an office and pay the commercial lease when you can do remote work instead?

Certain cities in the world are unaffordable and this is mostly caused by such a high demand on housing in these cities. Remote work can fix this issue and in Silicon Valley, this is been advocated for

General arguments against remote work and why they are wrong

There are arguments against remote work but I have yet to see a single technical argument against remote work. All the arguments are relating to the soft aspects of work

Team building

I have heard it said that team building works better when in-person

I don’t think that this statement applies to everyone because the argument I’ve made above regarding virtual meetings can equally apply to team building (team building is just another type of virtual meeting)

You can laugh, joke and tell stories all on a virtual meeting

If you do want to have some social time together off of the computer, then this is what monthly team lunches or group activities are there for

What I would not do is force everyone to be in the same room just to promote “team building” or some type of social cohesion. I haven’t heard any compelling argument for this. To add to this, when I’m working I’m not focused on people, I’m focused on technology and writing code

Training or mentoring

I’ve heard it said before that training/mentoring works better when in-person

This category can be split into two parts

Training: you need to learn something

Mentoring: you need to teach someone

Training and mentoring can all be done remotely

When I’m learning something new, I have to hear my own voice in my head. If someone goes rambling on how something works, I might not recall all of it. I have to read, re-read, listen to recorded lectures on YouTube or Udemy and participate in online forums

I’ve also had no issue teaching new joiners over a virtual call. I share my screen and take them through the source code I’ve written and point out areas that need work or require a bug fix or two

When I do need to ask questions, I jump on a video call with the person or send an instant message and this works out just fine. It has yet to fail and I don’t think it ever will

Feelings might not be conveyed correctly

I’ve heard it said before that feelings might not be conveyed correctly

There is some truth to this but I feel it mostly applies to email and messages. If you are on a video call, you can easily determine the person's demeanour and facial expressions