Is offshore software development right for my startup?
Hidden costs, risks and recommendations
Mark Ferris, Engineer
Mar. 10, 2020
A couple weeks ago, Ricky made a quick post about offshore software development on LinkedIn. After getting quite a bit of feedback, our team had a couple conversations about our collective experiences and thought it could make sense to put together a blog post.
Over the past few years, we’ve spoken with many founders choosing between US-based and offshore software development companies. We’ve worked with client’s offshore partners and we’ve taken over projects started by offshore teams. Here, we share a bit of our experiences and lessons learned for early stage startups considering an offshore software development strategy.
To start, offshore software development is a common, well-established and profitable strategy for many large corporations and technology companies. The business model is built on the fact that software engineers in developing countries earn quite a bit less than their US-based counterparts.
As a startup, this can be an attractive option in that you can hire more developer time with your limited budget and avoid the HR overhead. It’s tempting to think that this will enable you to get your idea to market faster and for less. Based on our experience however, that’s often not the case. For a startup, there are hidden costs and risks to an offshore development strategy that can quickly outweigh the savings that come from lower wages.
The language and communication challenges inherent in offshore development arrangements are well documented. There is no way around the fact that it is tricky and time-consuming to convey requirements and context-specific business logic across time zones and cultures via Slack and Google Docs. While you and your developers aren’t on the exact same page, it will require more conversations and more iterations to develop complex features and products.
We’ve also seen these language and communication challenges manifest themselves in technical debt that has real costs over the long term. We’ve seen undocumented codebases with naming conventions that don’t correspond with the product team’s language around even basic functionality. In these cases, it takes longer (read: costs you more money) than it should to get new developers, whether in-house or at another firm, up to speed and productive in your codebase.
While fully remote teams and remote working are becoming more of the norm, at some point you will want to work with your developers in person. You may need to visit your development team to build rapport or manage a pivot in your product. Or you may need your lead developer on-site for a strategy meeting. In any case, international business travel is expensive and time-consuming. Considering flights and time-zone adjustment, it will cost you thousands of dollars and seven or eight days to have three productive days on-site in Bulgaria and much more for comparable trips to India or Indonesia.
Contracting services and spreading your team across multiple countries is a mainstay of the modern global economy. That said, it exposes your startup to new risks that you must take the time to manage.
Because it can be difficult and costly to perform due diligence on potential overseas partners, there is a higher risk that you choose the wrong company. Unfortunately, we’ve seen more than one US-based startup essentially gamble on lightly vetted, low-cost developers and end up with software that will never make it to market.
Sharing intellectual property (IP) and sensitive data with outside partners is always a risk. That risk is amplified in offshore development arrangements because many offshore markets (e.g. China, India, Russia) may or may not enforce IP laws.
Depending on the country where your developers are based, there are different levels of contractual and legal risk. Although the probability of a dispute with a reputable partner is low, for startups with constrained budgets it may be prohibitively expensive and/or time-consuming to favorably resolve any disputes that you do have.
Many of the larger offshore development markets are in countries with geopolitical (e.g. Ukraine, Russia) or natural disaster risks (e.g. Philippines, Indonesia) that have the potential to affect infrastructure and your team’s ability to work. Larger and established offshore development companies will have plans in place to minimize your exposure to these risks.
Offshore development has worked well for many successful startups. If you do choose to use offshore developers, be clear-eyed about the total cost (much more than the initial contract price) and the risks you’re taking on. And proactively work to mitigate those risks. Our recommendations:
1. Get referrals and do your due diligence. Talk to both former and current customers and if possible, do an in-person visit before choosing an offshore development partner.
2. Try to minimize time zone differences. Many offshore development companies are extremely flexible with their hours and will go to great lengths to be available on your schedule. That said, the difference between a 7-hour and a 12-hour time difference is significant. “Near-shoring” in Latin America can minimize the time difference but will likely cost more than Eastern Europe, Africa or Asia.
3. Speak to your potential partners about risk and make sure they have good strategies in place that help to minimize your exposure.
4. Be extremely clear about intellectual property and the management of sensitive information. Ensure your expectations are understood and that your partner has the controls in place to protect your assets.
5. Have an in-house technical expert to manage your developers and facilitate organizational communication and decision-making.
7. Use Agile methodologies. This holds whether your developers are in-house or offshore but is especially important when they’re offshore.
8. Make sure that you own the accounts where your code and data are stored (e.g. Github, Amazon Web Services). At the very least, set up a email@example.com account that your developers use for your services. Better, set up your own organizational accounts and grant your developers revocable access. This will make the handoff to new developers (internal or at another company) much easier and prevent scenarios in which you can’t access your code or data.
9. Put in the extra effort to establish and maintain shared vocabularies and a good working rapport with your team. This includes those early morning (or late night) calls and perhaps somewhat regular in-person visits.
If you’re not sure that offshore development is right for your next project or if you are second-guessing the cost-effectiveness of your current development strategy, please contact us. We provide reasonably-priced, high-quality development services with staff across the US.