Today’s post is guest authored by Vincent Woo, Founder of CoderPad.
With the COVID-19 pandemic in full swing, companies everywhere are trying to switch to fully remote work, prompting discussions of the age-old question: Should we outsource engineering overseas? Put another way, if your entire team is already going remote anyway, is now the time to try outsourcing?
In short, probably not. But for some people, it can be useful. This article will go over why most companies shouldn’t outsource their engineering overseas, who should, and how to do it right if you’re going to do it. First up, let’s talk about why outsourcing can be tricky.
Outsourcing international engineers seems like a natural enough idea, especially when everyone is working remote or distributed already. But it’s easy to underestimate the complications. Onboarding overseas contractors while your team is just now learning how to manage remote work is a complication on top of an already drastic change in the nature of your work.
Keep in mind as well that previously colocated teams that are going remote due to COVID-19 are all going to be in the same timezone. That's much simpler than adding a new, often distant, timezone to your set of working hours.
Engineering in a team setting requires a lot of coordination, quality control, and clear expectations. Remote contractors, especially overseas remote contractors, can strain your limited resources to coordinate employees.
There are also the classic problems of remote contractors to consider, which probably still outweigh any new considerations introduced by COVID-19. Remote contractor quality is highly variable, and it can be very hard to know how a contractor will perform prior to giving them work. They tend to be less enmeshed in the engineering standards of your team. When contractors produce work that isn’t terribly good, teams either have to accept the hard work of reviewing and coaching the contractor, or just merging code that may not be up to standards. The latter is often very tempting for teams, because you’ve already “paid” for the work.
If your team has been succeeding with remote or distributed work for a while now, then it won’t be as disruptive as trying two new things at once. In that case, contracting overseas certainly has its uses. The best use of contractor dollars is probably on small, relatively self-contained projects like landing pages, marketing, and secondary business functions. Exercise caution when hiring contractors to work on core business products. That said, contract-to-hire can be a good way of trialling out engineers you’re considering for full-time positions while still getting some work done, so long as you’re willing to reject code that is not up to spec.
When interviewing contractors, it helps to treat the interview as if it were for a full-time employee, instead of merely shopping by resume and hourly rate. Choosing by rate alone will often cost you many hours of engineering time spent in code review, so spending more to avoid this outcome is usually worth the higher rate.
It’s also important to make sure your contractors fully understand your expectations before they begin work. If your team has formal engineering guidelines, make sure your new overseas contractors read and understand them. If you don’t, now is a good time to write them down.
After hiring your new contractor, consider having a meeting after they’ve been assigned a specific task but before they begin implementation to ensure you’re on the same page about their approach to the project. Contractors are often used to being given a long leash and implementing solutions according to their first instinct, which may not mesh well with how you would expect any given task to be done. Likewise, if you can suggest approaches for how a task should be implemented upfront, you should take the extra time to formalize your suggestions when handing a task to a contractor.
COVID-19 is changing a lot about the way teams operate. For most teams, now isn’t the time to try outsourcing engineering overseas because it’s going to be too complicated to try that many new things at once. But if you’re already familiar with remote/distributed engineering work, then it may work for you. If you want to try it, be sure to start with smaller, simpler projects where the outcomes don’t impact core business functions. Also, when hiring, look at overseas contractors as contract-to-hire. And pay them well, so you don’t have to throw out as much code. Lastly, make sure you’re on the same page about expectations and approach before work begins.