In Scalac we view remote work as a challenge not as a hindrance.
In many companies working remotely, from home or even from another town, is a taboo. No manager there would allow that. They justify it with “decreased productivity” and “difficult communication”. And they are right … as long as we talk about traditional management style for repetitive tasks. Back in the 19th century the manager was seen as a “guard”. Management did all the thinking and then made sure the workers in the assembly line performed their work according to the plan. In this sense working remotely is a horrible idea. The manager no longer would be able to lean over the shoulder and check whether the employee is doing the right thing, ask the dreaded “are we there yet?” question or check whether the employee isn’t taking too much time making coffee. Is this style still valid? At Scalac we argue that in 21st century in the highly creative field of IT, the way we manage people should be less about control and more about trust.
Some people claim that colocation is the way to go. I would rather say that colocation might help, but won’t do much if the company culture is poor. On the other hand if the culture supports communication and efficiency, working out of the office won’t be a problem. I’ve seen it with my own eyes. In one of my previous jobs, I worked for a company that focused on colocation. They had a huge office space with all the people (devs, QA, management) in one place. They allowed to work from home, but it took so much effort to set everything up and so many talks to get the permit, that nobody really did it. This company employed many talented developers and skilled managers, but (in my opinion) struggled with culture that demotivated employees, discouraged sharing information and seeking out help. Colocation didn’t help much in this case.
Scalac takes a different approach - hire the best people wherever they are. Next, help them to be efficient. Hiring new people and then giving them the freedom to work from home without direct supervision, might sound ineffective or even scary at first, but it’s essential for building trust. The more trust you give, the more trust and hard work you get back. In Scalac we substituted direct control for trust. We found that excellent developers are always looking for problems to solve and things to improve. So instead of discipline, we give them more freedom, as freedom breeds creativity.
We see that more and more companies are adopting this approach. The global village is a fact nobody can deny, so why do we so often stick to the rules created decades ago?
As outlined above working remotely comes with both benefits (less time wasted in traffic, flexible working hours …) and risks (communication …). In general it’s as good as you make it. This is how we approach working remotely:
- less control, more trust - less control means less need for middle level management in the company and more trust means more freedom for employees. It’s a win-win situation
- real-time communication - we ditched emails for more effective and rich means of communication, like Slack, in order to cut the question-response cycle. We encourage talking in public channels instead of one-on-one so anyone can join the conversation, suggest changes or simply stay informed
- lots of hangouts - another way of communicating. We use ad hoc video chats mostly for rubber duck debugging, solving hardest problems and analyzing tasks at hand if needed
- transparency in the company and transparency of goals - a person, to work efficiently, has to know what is the desired outcome. Without that he’s lost, frustrated and ineffective. That’s why we push for transparency in Scalac. No one is left in the dark. We point the targets and explain why they are important. We talk openly about things we don’t like at our company and on how to improve those parts. We regularly hold an all-hands meeting to clarify what is the situation, where are we heading as a company and to share successes as well as failures
- we meet in person - working online doesn’t mean that we are avoiding each other, quite the contrary - whenever possible we meet face to face after hours (if in the same city), on a conference or company meeting. Few times in a year we hold a company-wide meeting in Gdańsk, so we can work and have fun together
- flexible working hours - when working with people from other timezones, it’s useful to shift your working hours to work at least a few hours with them. It seems like nuisance at first, but it also comes with benefits - it makes your work much simpler, it’s easier to run errands if you have to and you can sleep till noon ;)
- we embrace coworking - sometimes devs don’t feel comfortable working at home or strive for contact with other people, in these cases Scalac rents a place in coworking offices. A few of our teammates are using this solution. They find it both helpful and inspiring
Some tips that I found useful.
As a team leader:
- define clear goals - make sure everyone knows what the priorities are and what constraints have to be taken into account
- allow for independence - when the team has all the knowledge it needs it’s up to team/individual to decide how to approach a given problem
- keep the team working on new challenges - great software developers love to solve problems and do work that is needed, so make sure they know the importance of their work
- create and support using communication channels that are clear, easy to use and don’t add artificial delay
- get the right tools - working remotely is easier when you have the right tools to support you. Make sure all the information is easily accessible (for instance: tickets on the wall -> Jira) and the ceremonies have an online counterpart (for instance: planning poker -> bitpoints.io)
As a teammate:
- be precise on how and when to reach you
- when working from another timezone than the rest of the team, make sure to plan your work ahead and try to solve blockers as soon as they appear
- try to be flexible, make sure that at least a few hours are spent working together
- consider coworking offices if you miss working with people
- keeping people in the dark - when there’s no idea what to work on people will grab anything often working with low efficiency, so a small portion of non-essential work will be accomplished
- bad audio during meeting - the gear used for meetings has to be solid (on both ends). Bad audio quality leads to waste of time, misunderstandings, makes the remote workers feel unwanted and less eager to participate
- loners - working remotely might seem appealing for someone who works solo, but (surprisingly) it works best for people with good communication skills. Make sure your distributed team isn’t changing into a group of “one-man silos”
- immature organizations - I’ve been there before. You join an organization or a team that didn’t have remote workers before and it’s hard at first. No communication is done on chat, all the important decisions are made face to face without you and everyone seem to ignore you. The team has to grow to the new challenge. Usually I start this process with a simple “Hello” posted on the chat everytime I start work. I ask for help there. I actively participate in meetings also in those that are “optional” for remote workers. I found out that this way teams start to recognize remote workers. Eventually more and more communication is done via chat and finally you can be fully effective working remotely
To sum up, working remotely is not an easy thing to do, but when done properly it might lead to great benefits. I hope these few tips will help with that.
This is how we approach challenges brought by remote work, but I wonder how it looks for you. Leave us a note in comments below.