As a software developer, you have probably been in a situation where you have to work from home, over the weekend, or when you are too sick to go to the office and yet, the deadline is so critical and you have to complete and push that feature that you are working on no matter what. That’s the beauty and curse of software development because all you need is an internet connection to be able to work and contribute. Then you have probably realized that work from home is actually cool and comfortable and you probably said to yourself “It would be great if I could work like this all the time. Laying around…”. Well sort of :)
Some of you, including me, are actually working from home full time. Opinions and experiences are different and as with everything around, there are good and bad sides of it. It’s up to us to make remote work as effective and organized as possible. Let’s list some good and bad sides of it and later we’ll see what else we can do about it to improve it even more.
So let’s start with the good:
Making more money - Besides all other reasons that you have when you apply to some job position, such as the opportunity to learn and improve, to be surrounded with smart people, maybe to travel a little bit, salary is probably what everyone will think of most. If you are working as a freelancer, you are able to charge the client for an hourly rate which is much greater than you are able to achieve in a company, because there is no company between you and client. It’s a win-win combination. A little bit riskier than work in a company because you are responsible for finding yourself the next project, but if you’re honest and good developer it should not be a problem in software development. You are probably working via services like upWork of Freelancer and if you’re good, you will have mostly good feedbacks from your previous clients which are essential for next client.
Probably more comfortable as in company office - Well, simply relax. You don’t have to follow company dress code that you don’t like (if there is one), the environment is more friendly (there is no place like home). So there are no that kind of limitations. It depends on though of your apartment. We’ll get back to it below.
Dynamic work time — It depends on of client or company that you are working with, though. Maybe your client is in the time zone which is 6–9 hours behind you (EU — USA for example) and you have to be available when your client wake up and comes to work. In my case, there is a meeting around 6 pm, because guys in California just came to work. But, generally, you probably have a freedom to work today 4hrs, tomorrow 10hrs, to work over the weekend or not. You’re pretty much allowed to be organized as you like. But if you are working for company which is in the time zone at least 2hrs ahead/behind then you will probably work to company work hours, which is not bad also. Can go to break as many times as you want — yup, same as above. You need to go to the doctor, fine. Breakfast with friends, to help to your wife with heavy stuff :)
Listen to music as you like — If you are like me, working without music is not acceptable. It’s not that I dance, most of the time I even don’t know what song is playing, but it helps me to concentrate on work and “work in the rhythm of beats or drums”. So you’re free to plug in your desk speakers or maybe some standing room speakers with amplifier and no one will say nothing about it.
Spend more time with your family and kids — This is probably most valuable since you’re able to take a cup of coffee with your wife or husband, or any lovely person that you’re living with. I don’t have kids yet, but from other colleagues experience, watching the kids grow up every day cannot be replaced. So, that’s something that you could think about also. Not to mention early days and years of kids life when every help to your wife is needed.
Possibility to eat healthier food — If you don’t live all alone, then you will be sharing a meal with someone. It can be fast food or something you ordered, but it also can be home made and there is a greater chance that you will be eating healthier food than in a restaurant. Having a chance to work on different projects and solve different problems, in the same time if you’d like.
You will realize that good and bad statements are mostly based on whether you see a glass as half empty or half full.
Non-dynamic environment — As I said, someone can see it as a good thing also, but as a freelancer, there is much lower chance that you will find yourself in constructive conversation with the fellow developer (person next to you). Sure, you have international coworkers online, but that conversation is mostly limited to project related issues and that’s it. Pull request approved, pull request denied.. not much of conversation right.
Then we come to the social aspect of the problem above — You are all alone in your office. The only type of communication you have with persons and friends that live near to you is limited to chat contacts you have on skype, slack or whatever you are using. Also, you realize that most of the people you know are also at work and it’s impolite to spam someone just because you got the need.
Home distractions — For example, your wife if cleaning house and enters your office, because cleaning would be incomplete then. Your kids go out, so they enter once again to let you know. If you have small kids knocking on the door, yelling, crying, loud tv, a vacuum cleaner, those are all possible distractions you can have. I’m not saying that you don’t have distractions in the company office, though.
Friends and family have no understanding for your work time — Since you work from home, that means that you are always available, because you’re home, playing around, you are not at work. It does not matter if it’s 10 am or 10 pm. It is expected of you to do all kind of favors during the day because you can always work later and finish it. No one thinks that we might like to finish at 5 pm and go out, instead of sitting until midnight.
The risk of getting unemployed — As a freelancer, you are constantly at risk of receiving that “we’ll keep in touch” message from your client. It is your responsibility to have something to work on tomorrow. This is where I draw the line between freelancing and remote work. Remote work from my point of view is the full-time job with the contract, that you are working on from some other location. As a freelancer, you are free, there is no full-time job, no safe contract.
Less possibility to advance — Well, it depends on of what do you think with “advance”. Is it more responsible position in the company or bigger salary, or maybe gaining more knowledge about the technology you are working on. If that’s the case (trying to learn), then freelancing is probably the worst option. No client will tell you to take 8h of billed time and learn something new because you are selling your current knowledge. And that is ok. You are left with the option to read a lot after you finish your work. You also have that option if you are working in the company, but additionally, company might send you to some seminar or something where you can listen to very smart people and actually talk with other smart developers (yes, I am thinking of you droidcons). As a freelancer, you have to pay that option with money you earned to pay the bills.
So, we are left with the option to decide if freelance and remote work is something for us or company office with fixed work time. If you decide to work from home, there are few tricks that you can do to help yourself and make homework more efficient and comfortable.
It’s imperative to have work space, an office. In the ideal case, it is a separate room that you turned into the office. No home furniture. Office desk, book shelf, additional chair and that’s it. If you don’t have a separate office, put your computer in the bedroom (forget all-nighters in that case :) ). If you live in small apartment, and you have to work from a living room, take one of those foldable walls made of cardboard or something and surround yourself with it. If it’s too funny to do something like that, turn yourself to the wall. Don’t let yourself to watch the tv while working. Put your headphones and make yourself offline to the surrounding.
Have a work time. Get up on time, 7 am for example. Go to the toilet, brush your teeth, do the hair, put a deodorant, dress yourself in some clothes that are not to wear at home and go to your office, sit and work. It’s in the head. You need to feel that you went to work because you did. Someone is paying your time. A lot of ads will tell you “Work in pajamas and get rich”. Wrong. Someone can send you a message, “Urgent video conference in 2 minutes!” and you did as above, you can just put your headphones and start talking, otherwise…
Have a fixed work time. If you agreed to work 40hrs in a week, then do your 40hrs, with fixed daily work time. Your client will know when you’re available and you will ideally finish at 5 pm, with enough time to spend with your family, to go to dinner with your friends or to practice some new programming language or technique. Go out to break. Eat with close friends. Arrange breakfast with someone. If you are not going out to breakfast, don’t eat in front of a laptop. Go to your living room instead.
If there is a coworking space in your city, go once a week and pay the daily ticket. Next project possibility might be there. At least you will be with other people that also came from the same reason. Not to be alone. Depending on work you do, coworking office might be your daily office. For me personally, there are even more distractions. Let’s assume that you have a home office. Buy yourself an ergonomic chair, great extra monitor, possibly an USB docking station. Great mouse and keyboard. Any table will do. Let the sunshine in, don’t be in a basement.
You have to minimize distractions. Tell your wife or husband that you’d like not to be disturbed in next 3 or 4 hours at least. No office entrance, if you have small kids, use the door lock. After some time it will be normal to not disturb you while you are working. If you can, avoid unnecessary notifications, phone calls. Pomodoro technique might help with this one.
Do not agree to get out the office every time someone calls you. You have to drive a car to service and guy on the other side is asking you come in one hour. Don’t be ok with it, don’t say that you are always available because you are not. If you don’t appreciate your time, neither will other persons. Family friends can come to visit once you finish with your work and your wife or husband must be aware of it. Schedule a visit at least 3 days ahead. You must not get yourself in the situation where you have to do a deployment, while your friends are sitting in living room.
It’s hard to follow everything stated. In reality, your daily time will be a mix of these things. It is your responsibility to be as effective as possible. My 8h billed time is spread across the whole day, from 8 am until midnight and I am trying to have a schedule which will follow notes I have written above. This is what I intend to do and this text will be a reminder to myself.