Our ability to communicate over many different channels and distances has changed the landscape of how we work and socialise. When I was a kid we were unreachable until we got home near a landline. Now we have a myriad of ways of staying in touch. While this has annoying, distracting downsides, it opens up a new world for companies to engage in remote work solutions.
I started reinteractive as a 100% remote software development company. While not all businesses are suited to this model, I find that many software developers enjoy remote work.
Constant distractions that come from working in an office environment are the enemy of a developer or anyone who needs to be engaged in concentrated, detailed work. Being an experienced senior developer myself, I decided to build the type of company I had dreamed of working for.
This was something new – I didn’t have a model to guide me. Some companies had a number of staff working remotely a few days a week, but not what I envisioned. So, with some management training and experience under my belt, I got to it, addressed the various pros and cons, ironed out the problems and I feel we have achieved the right mix.
We are flourishing and a recent internal survey of staff showed that they also love remote working and the flexibility that it offers them and their family. Happy people are more productive. No one misses being stuck in traffic or being jostled on an overcrowded train for 40-plus minutes. If you have to put in some extra time on the job, the two hours saved on travel is a great option and you can still eat with the family, tuck your kids into bed and go to bed refreshed, not frazzled.
I wanted to share some tips of how I have navigated the remote work downsides and the firm policies put in place to maximise the benefits of remote work.
Varying Degrees of Trust:
The first thing to note is that remote work is not an all-or-nothing activity. There are levels of “remoteness” and each comes with a different level of trust that is required to make it successful.
It works to break down the levels of remote work into five broad categories:
Remote work prohibited: This is where all staff are on-site. Sometimes this is necessary if you are dealing with highly sensitive data, or you need access to specific equipment and the like.
Remote work tolerated: This is where staff are permitted to work from home on occasion, such as when they (or a dependent) are sick.
Remote work encouraged: This is a common scenario, where staff work 2-3 days per week in the office and the remainder at home.
Remote work first: This is where a company maintains an office, but many people work from home.
Remote work only: This is where a company does not have an office at all and all staff work from home.
In this gradient scale of remote work, there is an increasing level of two-way trust required.
Trusting Your Staff
I have complete trust in all my staff. I choose the best there is and then I let them get on with it. I expect them to be responsible and perform at their peak. If you have to constantly check up on someone, then you likely haven’t chosen the right person to work for you.
There is no micro-managing (which capable staff enjoy) and they are a brilliant team who control their own workflows and are responsible for producing high-level products. If someone needs help then they ask for it. We have a buddy system for new staff so they always have someone helping them navigate through being new.
We have a full-time Quality Manager who reviews technical quality and monitors staff training.
When hiring, we look for team members who have a strong care factor and pride in their work.
That strong trust extends out to our client’s faith in us. They pay good amounts of money to build business-critical software and they want to know that we have their back and will continue to provide top level service and be available to answer all their queries, no matter how small.
REMOTE WORK BENEFITS:
Accessing the best talent
At reinteractive, we require top level developers in the Ruby on Rails language, the primary language used in our custom-built applications. While our land mass in Australia is large, we have a small population and just one city doesn’t have the quantity of senior developers that we need.
A remote work set-up allows us to hire top-level developers and designers, no matter where they are located. If a client is in Melbourne, I don’t need a senior developer in the same area. They can be in Adelaide, Sydney, or Auckland and provide superlative service to that client.
Our team is in all parts of Australia, New Zealand, North and South America, and we just hired our first developer in Western Europe. This enables us to provide dedicated follow-the-sun operations support for managed hosting for clients. This level of support is often an requirement for clients who have made a large investment in their business-critical applications.
Distraction free work
While being remote means you can’t meet around the coffee machine for a chat with your co-workers, the advantages of uninterrupted, concentrated work far outweigh any negatives. It encourages focused work without the distractions of an office environment. The time saved by eliminating noise and distraction means projects get finished faster, with less frustration. And that benefit spreads out beyond the workplace. The less stress at work, the better human relations can be all round.
The expenses related to furniture, fit-out, rent, office supplies and travel are reduced, or eliminated, in a remote work situation.
We travel to visit clients as needed and provide staff with travel allowances to fly in for our regular Team Days.
We have a firm policy to follow the “Golden Rule” of treating each other as we would like to be treated ourselves – with tolerance, consideration and compassion.
Mistakes and errors usually result from a misunderstanding or lack of training, not malice. We hire our staff not only for their skills, but also their personality.
Remote work tends to nullify cliques, office dramas, incidents of harassment/bullying and personality clashes that can poison an office environment and result in work-related stress. If someone is having a bad day or is completely stuck on something, they are encouraged to take a break, go for a walk, chill out and come back refreshed. It is hard to take a bad mood out on fellow workers in a remote work situation.
We have a results-oriented team who will go out of their way to help another team member on the job. They are professionals in what they do, they are respected, trusted and appreciated. And clients enjoy working with them.
A recent survey of our staff showed high levels of satisfaction with remote working. What do they like the most? Flexibility in schedule topped the list. Many are raising a young family and they can pick-up their kids from school or code with their 6-month-old next to them, without disturbing anyone. They work just as hard and do all the needed hours, but it simply allows for greater life flexibility. Again, not all companies could support this model, but it is especially workable for software developers.
REMOTE WORK TEAMS: THE PEOPLE SIDE
Communication is king
The number one thing to focus on is communication! Strong communication helps effectively manage the challenges of working remotely.
The more remote the team, the more deliberate and formalised the communication needs to be.
Here are some recommendations:
- Set-up a chat application – Flowdock / Slack / IRC / whatever.
- Dedicate one chat room for all general communication. There should be no talk about work. This room is reserved for announcing your comings and goings, and general “water cooler” chat.
- One chat room per project for project specific communication.
- One chat room for the various divisions – marketing, HR, etc.
- Ability to have one-on-one private chats within the team.
- Make sure you announce all wins and successes loudly and often. This boosts team morale.
All team members must announce their comings and goings:
Make sure arriving at “work” and leaving “work” is announced and include lunch breaks and other random breaks. Team members become frustrated if they can’t find who they need. It helps if everyone knows what the other team members are thinking and doing.
Provide clear expectations with Key Performance Indicators (KPIs):
When the team is remote, there is no way to drop past and ask for a progress report. Remote team members need clear KPIs or statistics to work towards. I developed the Envisage application specifically for this purpose. It is a statistics collection and graphing application. We use it internally within reinteractive, but it can be used by anyone within their company.
These agreed-upon metrics allow you to monitor the production of your team, providing an agreement between management and the team so that everyone understands what is expected of them.
It removes uncertainty and office politics: people are either producing or they are not. However, remember that a KPI is exactly that: an indicator. If someone is not performing, there might be an underlying issue that is preventing them for achieving the desired numbers. Always give them the benefit of the doubt when opening a dialogue about performance.
Disagreements are not settled via email or in writing.
This is an extremely important point. The bigger the disagreement between people, the closer you need to get to them in order to solve it.
Disagreements defuse in person or with verbal communication if you cannot be in the same space. They explode on long distance communication lines, e.g. “Is that a sarcastic emoji? Or a happy one?” Too many misunderstandings can result from arguments over text or email. Your team are humans. Meet in person or, at the very least, via video or phone call to settle misunderstandings or disputes.
In a traditional office environment, we would speak to our colleagues daily. A remote office should be no different.
Waiting a week to make sure that everyone is heading in the same direction is not enough. Each project team should have a daily meeting to coordinate their activities. These meetings should be kept brief and focus on deliverables planned for today, any blockers being faced, and deliverables completed from the day before.
Make sure everyone comes to the meeting with their information ready to go. One-on-one detailed coordination within the meeting should be banned beyond “I’ll talk to you after”.
How you hold these meetings is entirely up to you - each company has its own style. All that matters is keeping communication high between the team.
Remember: Meetings cost serious dollars - make them as short as possible, without cutting back on sharing needed information, so people can get back to work.
A weekly meeting with all staff is critical. They need to know what is going on, where we are strong, what needs improvement. It is amazing how many bright ideas various team members come up with that can be useful. Their pay packet requires the company to be prospering, so keeping them in the loop is essential. Here are some recommendations:
- The CEO or general manager gives an overview of progress and new upcoming projects or actions.
- Hold it at the same time every week, with no variation
- Go over what was achieved the previous week, with divisional heads also reporting to the team
- Go over what will be achieved in the new week by area
- Minimal discussion in the meeting, just focus on goals and targets
- Provide an opportunity for everyone to share their wins and for good news to be shared and work well done acknowledged.
- All meetings should be recorded so that absent team members can listen in and stay up-to-date.
Remote work culture:
Unlike an office environment, you don’t have birthday cakes, office parties, Melbourne Cup hats, etc. You have to work harder to build a company culture, but it is well worth your while to do so.
Encourage people to be creative: make themed days in your chat rooms, for example. reinteractive has Kitty Tuesdays, WTF Wednesdays and Corgi Thursdays. Be inventive and just play.
To learn more about the team culture at reinteractive, you can read a blog on the topic.
Remote work get-together:
We do this every second month in Sydney. The team flies in and we meet at a venue and hold our weekly team meeting. After lunch we socialise, hold tech talks, and/or pair program.
Take the opportunity for team activities, such as WHS training. Take the opportunity for more thorough briefings.
Encourage people to get to know each other and chat. We encourage individuals from the team to talk.
This day is a focus on the social aspect, not the work aspect.
Management needs to be approachable.
I also don’t hold with certain hierarchical management structures where a team member doesn’t feel they can approach management with a valid proposal or share new ideas and solutions to better our operations. I want to hear bright ideas.
How to run this sanely is with the use of the Completed Staff Work principle of management. It originated in the military in the early 1940s. The aim is for subordinates to be responsible for submitting written proposals and recommendations outlining the issues and solutions, completed in a manner that requires no further work from the manager, who simply has to approve or disapprove it.
I keep a strong hand on all things related to reinteractive on a daily basis and talk to my managers each morning and throughout the day as needed and they know they can ask me anything.
REMOTE WORK TEAMS: THE MANAGEMENT SIDE
Hiring the right staff for remote work
We are very exact about who works for us. We have a specific hiring formula which includes testing a developer’s coding skills. A resume is one thing, but the interview and skills testing are more important. An interview determines communication skills and whether they will be the right fit for our team. Someone may be a brilliant developer but may lack the needed skills to directly talk with clients, under all conditions.
Strong client communication
We meet face-to-face with the client and will fly to where they are located for various stages of the work they need done, including the UX design of their application. Developers are on a project from start to finish, creating a strong relationship with the customer. Our developers and project managers attend daily stand-ups allowing clients a high level of control throughout the build of their application.
Not everything always goes exactly to plan, but if the communication is strong and fast, it can be resolved easily. It’s our high level of communication that is most commonly praised by clients, while contributing to the high levels of project success.
Workplace health & safety
We are responsible for the workplace health and safety of employees when they are working at home. Training on Workplace Health & Safety (WH&S) is a legal requirement.
This includes: having a dedicated office with “work times” and “home times”, adequate lighting, seating, desk, cable management, etc.
This is a whole topic unto itself, but it is a primary factor in ensuring a secure work environment for our client’s intellectual property. We employ top-level security arrangements which includes hardware-level encryption, two-factor authentication and confidentiality agreements.
Travel Allowance vs Expense Claims
With flying everyone into Sydney every two months, we very quickly came to realise that handling expense claims and/or booking flights and hotels for the entire company can be an absolute nightmare.
Instead, we now provide an annual tax-free travel allowance and, because we are saving many hours of admin time, we are generous with this allowance.
The individual team member is responsible for making their own travel arrangements for team days, RubyConf, Rails Camps, etc.
The details are as follows:
- We calculate six trips to Sydney for team days
- Add a bit of travel for client meetings etc
- Pay this in the pay packet throughout the year, rather than one lump sum
Remote Work Resources
Finally, here are a couple of useful resources where you can obtain further information:
- www.fairwork.gov.au Search “Flexible Working Arrangements”
- www.safework.nsw.gov.au Search “Remote & Isolated Work”
I would love to hear any feedback or input you have into the remote work issue, so drop me a line.
Dissecting Code With Ruby's caller Method
Handling deletes with Null Object Pattern in Ruby
reinteractive is Australia’s largest dedicated Ruby on Rails development company. We don’t cut corners and we know what we are doing.
We are an organisation made up of amazing individuals and we take pride in our team. We are 100% remote work enabling us to choose the best talent no matter which part of the country they live in. reinteractive is dedicated to making it a great place for any developer to work.
Webinars are our online portal for tips, tricks and lessons learned in everything we do. Make the most of this free resource to help you become a better developer.
The Ruby on Rails Installfest includes a full setup of your development environment and step-by-step instructions on how to build your first app hosted on Heroku. Over 1,800 attendees to date and counting.
The Ruby on Rails Development Hub is a monthly event where you will get the chance to spend time with our team and others in the community to improve and hone your Ruby on Rails skills.