As a digital services provider I have been in both sides of the equation. I’ve hired remote and distributed teams and I have been hired to work remotely for clients of all over the world.
Remote work can definitely work and give you many benefits, but you have to clearly understand how to do it right. It is a process that involves discipline and good communications skills.
So, if you are considering to engage with a remote team or individual, this tips are for you.
1. Define your Process
You don’t just outsource your project and expect the company or freelancer figures out everything. Either you or the company you hire must have a well defined scope and process to work towards your goal.
If you are hiring a company or an existent team, it is more likely they will already have a process in place. If you hire freelancers or building your remote team from scratch, you will have to spend a lot of time developing and refining the right process.
In any case, experienced professionals will have some experience in popular software development processes. Scrum or some sort of an agile methodology are good choices to start with. It’s a warning sign if the company doesn’t propose you any process or if they simply tell you they will adapt to whatever you want.
A process should define, at least:
- Meetings: when and how meetings are held. What topics are treated.
- Communication: how will you communicate and how often.
- Responsibilities: clear definition of the responsibilities of each team member.
- Workflow: how work will evolve through different stages from idea to done.
- Tools: what tools will be used for remote work collaboration, share documentation, work assignments, bug tracking, etc..
- Billing and Payments: how and how often will you pay to your remote providers.
As in the previous case, you don’t just throw features to the company or freelancer and expect them to do it right.
If you work with an experienced team, they will probably help you define the scope. But some freelancers are just order takers. They will do exactly what you tell them but don’t expect more; they won’t read your mind.
I have learnt over the years of experience that the most important part of the development happens before the first line of code is written. That’s when a feature is defined with as much detail as needed, user interfaces are designed and everything is documented clearly for your programmers. You just need the right professional for each task.
Another sign of concern is with freelancers who just say “yes” to everything. A professional who never questions your decisions, proposes alternatives or better way to do things is probably not being professional. Go for the freelancers who can say “no” when appropriate. However, pay attention if their suggestions are merely to bill more hours.
3. Time zone and proximity
We use the term “nearshore” to refer to a provider that is close to our location both in distance and time zone.
Always consider to hire a team that can overlap with your time zone a minimum of four hours a day. If there is a bigger difference you’ll lose momentum and any blocking issue or question you have after your team ends their work day will have to wait until the next day to be attended. And when you start your day and see their response they will be less 3 hours or less until they leave again? No good outcome can come from this.
So, if you are based in the West Coast, the East most you should go is GMT -3 (Argentina, Brazil and Uruguay). If you start to work at 8 am, that will be 12 pm in Buenos Aires, where we typically work until 6 pm. That give you 6 hours of overlapping during DST or 5 during the rest of the year (Argentina and Uruguay don’t observe DST).
Proximity and connectivity is also a factor to consider. If you ever have to travel to meet your team, or your team has to travel, is good to have good connectivity and reach the destination with no more than one flight connection and no more than 4 or 5 time zones crossed.
A good parameter to measure is how many regular office hours can you overlap with your offshore team. For example, if you are located in Miami or New York, and your work hours are from 8 AM to 5 PM, you will overlap the full 9 hours with an offshore team located in Buenos Aires during Daylight Saving Time (which is most of the year). That’s because Buenos Aires is only 1 hour ahead, there is no DST in Argentina and the regular office hours there are from 9 AM to 6 PM; so it’s a total match.
On the other hand, if you outsource to East Europe or India, you get almost zero overlapping.
4. Communication and Trust
How do you know people are actually working? That is done through trust and communication. You will never have a successful remote relationship if you fail to this one.
Either you are the contractor or the client, you have to be always available, respond quickly and anticipate to the other party needs. Answer your phone or your IM’s even if you are busy or, at least, let the other party know when you are normally available. The communication challenges of a remote relationship must be compensated with an always available policy.
In my company we schedule every day quick meetings over Hangouts with clients and team members. We follow a typical Scrum stand up meeting format to answer three basic questions: what we are working on, what’s next and if there are any blocking issues. Apart from that, we communicate all the time through Hangouts IM or Skype. I expect clients and team members to be always available during known work hours.
If you don’t communicate at least every day, you lose momentum, the team member lowers the productivity and everyone lose interest and focus in the project.
Another important action you should take towards a better communication and trust building is to meet with your team in person. It makes a big difference to meet your remote workers at least once although I would recommend to do it regularly. Your team (or part of it) can travel for a week or two and work from your office. Use this opportunities to meet the people better but, above all, keep it professional.
Make it clear in advance what expenses you are covering and what not. You want to consider that even if you pay meals and lodging, travelling has other associated expenses.
Don’t try to be best friends with your freelancers. It’s OK if you want to hang out once or twice after work, but you don’t want it to go further than that. Keep it clean, keep it professional.
If you find it difficult for you to travel or have your team members travel to your location, make sure you make video conferences at least monthly to see each other faces.
Speaking about trust, this is straight and simple. If you don’t trust your remote worker, change it. A remote relationship is based mainly in trust. Specially when your developers are billing you by the hour, you have to trust they are working. You can’t have doubts about this one.
On the other hand, if a remote developer tells the client he is working 8 hours a day when he is not, he’s just killing his business; he is shooting his own foot.
5. Price should not be the most important factor in the decision
Price is the main reason most companies start thinking of offshore outsourcing, but sometimes the cheapest is not always the better. Within all your candidates for offshore development, don’t just go for the cheapest; try to discover the most talented professionals out there. You’ll be surprised how many skilled and experienced professionals are there waiting for you.
Hiring a remote worker can be painful. What I recommended here is based in 15 years of working with freelancers and remote developers and designers and even working myself as a remote developer for many companies around the globe. I’ve heard these tips many times during that period but they are hard to assimilate unless you experience them.
Author: Marcelo Ruiz
Marcelo has been working as a software developer for more than 15 years. He has participated in projects for companies in USA, Mexico, Argentina, Europe and Africa. He is skilled with Microsoft technologies such as ASP.NET, MVC, C#, WCF and SQL Server, among others.