Captain's log, stardate d98.y38/AB
Running an all-remote company means having a distributed team of employees working from different places and also having no office.
Having no office means getting this question on a daily basis: How do you know if your employees are working?
Photo by Avi Richards on Unsplash
The false myth of remote developers not working
We all have heard those stories where someone hired a remote developer once, and he didn't communicate and didn't deliver the project in the end, causing all sorts of financial disasters for the client.
We all have suffered that, I must add. But we have also seen plenty of cases where that happened in an office environment. Therefore: there are good and bad developers everywhere - irrespective of their work environment.
As an all-remote consultancy, one of the concerns our potential clients bring up during our sales process is how do we know if our employees are really working.
The short answer is: if they're not working, I won't be able to bill you, and will lose you as a client and that will impact my reputation.
Our developers are our best sales asset. By doing their job, and doing it right, we're able to bill our clients. In turn, our clients are happy to pay us and to recommend us around.
The challenge of growing an all-remote development team
As the company grows, we need to keep things in order. Being 100% remote brings several advantages, and some challenges as well.
All-remote companies rely heavily on trust and communication and require therefore hiring only the right fits and the right fits only. All of our employees are always working and giving the best of themselves. Otherwise, they would not be part of the company.
One of the challenges is not really knowing whether there's another person on the other side of the chat. Which, to a certain extent, is a great thing, as most of the things we do can be done asynchronously, but sometimes we're wasting time expecting an answer when the other person is away but left his/her Slack on.
Other situations require to be there simultaneously: chatting with the client, group meetings and solving problems jointly that might be blocking us from progressing.
Since we started using Slack as our default group-communication tool, we've been sharing live status changes on either our general or #random channels (off to the gym, lunch break, taking kids to/from school, etc.) but somewhere down the line, it became a bit overkill. Too many status changes mixed up with other ongoing conversation and bits of information.
That worked until we hit 10 employees. At that point, we decided to implement three new things that you might want to try in your company as well!
Default working schedules
At MarsBased, each one of us is 100% free to choose the best schedule we like for work, as we know that each one has different lifestyles, family restrictions, and other considerations.
Also, we have learnt throughout the years that having flexible schedules does not mean working every day on different times for the sake of flexibility, but being able to adapt to unforeseen circumstances when life requires it. We all know that we work best when we've got a fixed schedule we can define and adhere to most days. This default schedule that is true 90% of the times is the one we use to reach the rest of team members when we need something from them.
For instance, it can be as simple as this:
- Every day from 8:00 to 14:00 and from 15:00 to 17:00.
Or having different schedules depending on the day:
- Monday from 8:00 to 14:00 and from 15:00 to 17:00.
- Tuesday from 10:00 to 14:00 and from 14:30 to 18:30.
- Wednesday from 8:00 to 14:00 and from 15:00 to 17:00.
- Thursday 10:00 to 14:00 and from 14:30 to 18:30.
- Friday from 7:00 to 15:00.
Regularity - a routine - brings many advantages. One of them is prioritising better, and the other one is that by blocking hours, you give the best of yourself to work, not leaving it for the last of your priorities.
As I said previously: having a default schedule doesn't mean we need to adapt to it 100% of the times. This is so we can know if we can expect an answer if we reach out to another employee during his/her working schedule.
We absolutely don't want to send anyone messages after they're done from work, but before implementing this, we were forced to remember what schedules did each one of us adhere to!
There are many ways to store the default schedules. You can create personalised Google Calendars for each employee, store it on a spreadsheet, pin a message to a Slack channel, and such.
We decided to go for a simpler solution: we enabled a profile custom field on Slack so everyone could write their default working schedule.
Notice also the contact information, conveniently erased for privacy
This way, whenever we want to reach out to an employee, we first check whether he/she is supposed to be working.
New Slack channel
As mentioned above, the status change messages were flooding our regular communication channels.
Consequently, we decided to concentrate all the status changes on a different channel. If we ever want to know if David came back from seeing the doctor, we will check the #status channel first. The answer might (and should) be there.
The channel is, of course, called #status.
Slack provides statuses you can use. We have never paid too much attention to them, as they don't really stand out like in other chat apps, but they might help to know if you're out for lunch or on holidays.
Status change popup on Slack
You can choose from the default list or define your own. As an organisation owner, you can edit the suggested ones as well to make the choice easier for the rest of your team.
/away command toggles your away status. We really recommend to be active on Slack only when we're really active, and away the rest of the time.
Most of us use Slack to interact with multiple communities, but for people who just have it for work, we recommend to shut it down at the end of the day so that we don't think they're still available.
What if they're really not working?
Of course, we have worked with people who slacked off, or were just not capable of managing themselves and/or communicate accordingly.
In all-remote environments, communication is key to set clear expectations and to ensure optimal levels of collaboration.
Those pulling crazy schedules day in day out and/or altering them last minute or with no notice at all, or those who seem to prioritise everything else over their own job are not someone we feel comfortable working with, and will be asked to leave.
There should be a strong leadership in doing this, otherwise, employees might think if the rest are not doing it, why should I?
Adding up to that, the most common misunderstandings while working remotely are:
- Communication problems - not setting clear expectations on what's expected of every part.
- That person not working enough or with enough intensity.
- That person not being able to work from remote environments.
If these situations repeat over time with too much frequency, it's a clear sign that this person is not a good match for the company.
Our employees are very responsible for their work and know that if they are blocked by something, they need to report it. Otherwise, we can't differentiate between a person who is not working or a person who might be stuck in a very complex task with lots of unexpected issues.
These are the changes we implemented after we passed ten employees, and we wanted to keep things running smoothly and in order.
Slack is an overall great tool to communicate with and manage remote employees, as it gives many tools and customisation options to have it adapt to your needs.
The things we described above might look like a bit redundant and/or not apply to your specific case, but we wanted to share what we've done and so far it's working for us. But companies are living things, and we will most likely have to change these tactics as the business keeps growing.