Back to the programming reality from the analogy, I've seen outsourcing happen, for businesses that revolve around American customer bases and rules and regulations- now the code is outsourced, but the basic understanding of how business logic related to the real world use was gone. So the offshore team, while technically competent, was not equipped to make decisions about software with the consumer in mind. If you were working on something and it didn't really make sense in a real world sense, as a dev, you could go to your product person and raise concerns. Without the cultural context- those concerns never get raised.
Treat them like 1) there is a language barrier and 2) they will not know there is a language barrier and they will forge ahead in the wrong direction.
Some of the best developers and PMs I have worked with were born in a country you barely know about, it just took a little time to get to know them and their skillset.
That's a tall order, the root of a million missed deadlines is that software is notoriously hard to fully design without writing code.
Are you doing something you've done a hundred times before, or are there some twists?
That is the real work here; discovering acumen. Once you know that, you can hand out work that fits within their wheelhouse.
American developers excel at this because there's less of a communication gap. If an American can not do something he will tell you. If you are wrong about the way you are doing something, an American developer will tell you. Outsourced subcontractors will blindly do what they understood they were supposed to do without questioning anything resembling rationale.
Just know that going in.
You know what else is like that? A computer.
GIGO, etc.
My point being; there's an efficient way to utilize cheap labor.