Let’s talk about the terms “onshore,” “nearshore,” and “offshore” as used when discussing software development outsourcing. If you talk to software developers, you’re going to hear these terms a lot. I want to discuss how they are similar and how they are different and also make the point that not everyone uses these words in the same way. A lot of widely used terminology in the outsourcing industry is ambiguous. You should be aware that not everyone agrees on the meaning of even these three popular outsourcing terms.
When we use the terms “onshore,” “nearshore,” and “offshore,” we are discussing the relative location where an external development company will develop software for you.
Onshore means that outsourced work is happening in the same country as your company. For example, if your company is in the United States, and you are hiring a software development firm also in the United States, that would be “onshore.” One could argue that a Miami-based company hiring a software development company based in Honolulu, Hawaii, should not be called onshore. Still, most people use the term “onshore” to mean “in the same country” regardless of physical distance. You can think of “onshore” as referring to “cultural distance” more than physical distance. Onshore also implies that both companies are effectively in the same legal jurisdiction, which speeds negotiation, and reduces key areas of risk, including foreign exchange risk.
Nearshore generally means that outsourced work is happening in a nearby country. For example, if your company is in the United States, and you are hiring a software development firm in Mexico, that is nearshore. The terminology gets a little fuzzy when the country is further away, but still in close timezone alignment. New York, NY, and Bogotá, Colombia are 2,500 miles (or a 6-hour flight) apart. Still, the timezone is only different by one hour. In my mind, Bogotá to NYC is nearshore. But what about NYC to Santiago, Chile? In that case, we are talking more than 5,000 miles and a 13-hour, multi-stop flight, but confusingly, these two cities are in the SAME time zone! If you take “nearshore” to mean, “not in the same country, but still easy to get to,” then NYC-Santiago is not nearshore.
Outside the software development industry, “offshore” is a loaded term that often suggests illegal financial activities like money laundering and tax evasion. Within the software development industry, “offshore” is not a negative term, and it is definitely not illegal! Offshore outsourcing is simply hiring a foreign firm to develop software for your company. In everyday use, “offshore” means that your software development partner is far away, often physically in miles and time zones. More subtly, “offshore” implies differences in cultural interactions, methods of communicating as well as national differences like holidays and currencies.
I want to mention the term “in-house,” which is not the same as the other three terms. In-house refers to software developers that work directly for your company (not outsourced) regardless of location. Your company could be based in NYC, but have a development team in London that also works for the same company. In that case, the London team is not onshore, nearshore, or offshore, which are terms that imply an outsourcing relationship. The London team would be “in-house.”
As I write this, most of us are working in our own houses because of COVID-19. But that is not what in-house typically means in software development! With remote work becoming the “new normal,” onshore, nearshore, and offshore outsourced software development is more accessible than ever before. Give me a shout if you want to talk about this one-on-one over a video call.