Yeah, so the details really matter here. A lot of people hear "In country X they live on $2 per day," and think that you can experience the same standard of living in that country as you do in the US. But that's really not the case. Even in places that enjoy a relatively high standard of living, while things like food and rent are cheap, all the things that are imported from the developed world cost exactly the same, and it just means that people can't afford them. Everyone may not want to live in America, but they all want to have the luxuries we enjoy, and which are enabled by American salaries.
But standard of living isn't really the reason someone would be miserable at work -- the real thing that makes this a bad arrangement is loss of agency, both for the off-shore contractor, and for the supervisor. This is where I accused you of not having done this before, because in my experience, and several friends' experiences, working with lower-paid, lower-experience software teams is extremely frustrating.
As others have pointed out, coming up with specs is a frustrating and unsatisfying process, and is akin to writing code, except that you don't actually get to run the code and see the fruits of your labor. Because of your working arrangement, the people actually making the product don't have the agency to take ownership of its architecture, and instead you get a whole bunch of copy-paste. If you push back and say, "no, this isn't what we agreed to," then they push right back and say that your requirements are unreasonable, because they don't have the expertise to architect the project right.
But suppose you decide you don't care about architecture, because that's what expensive people do, and you're hiring cheap people, then what's the harm? They can do things their way, even if it's less efficient, right? Except that now the team living with the bad architecture is responsible for fixing all the inevitable bugs that come up, and every time a bug is "fixed," another bug pops up somewhere else, and you, the supervisor/customer, are now responsible for all of it. You can keep filing the bugs, but you can't fix them yourself. Or maybe you can fix them yourself, but you can never improve the overall design, because your decisions will always be overridden by the copy-paste brigade doing the "real" work.
It's a world where all the code bases are awful and nobody gets any job satisfaction.
I think you're right about the state of leveraging over seas labor today, but the gap is so large between life over seas and life for SWE in USA that I have no doubt that a middle ground can be found to put SWE in USA out of a job once overseas experience reaches a satisfactory threshold. There is a lot of negotiation to be found between $2 and $50 per hour.
If nothing else, Land Price will be a big driving factor. If both sides have equal budget for commodities and investments, overseas wins on home budget.
>off-shore contractor
this does not need to be a contract arrangement. The person hired overseas could be hired indefinitely to support the product, with typical transition plans in place. same as today with local workers.
>coming up with specs is a frustrating and unsatisfying process, and is akin to writing code, except that you don't actually get to run the code and see the fruits of your labor
We might be operating with different levels of "specs". I am not saying you need to tell them exactly what to write.. it would be the same as a manager talking to a subordinate at a tech company today. You tell them what needs to be done and they have the skill and autonomy to do it.
I agree that this arrangement does not work with low-experience overseas workers. However, the point I am trying to make is that I think overseas experience will catch up way faster than the local need will become more complicated. So even if local employees maintain a lead in skill and experience, overseas does not ever need to catch up to them - they only need to catch up to necessary qualifications. Local people can offer more, sure, but this is a field that discourages over-engineered solutions. That implies there will be significant diminishing returns on all the extra skill local employees provide.
Again, this is not the case today because the lower experience workers are not just lower experienced but too inexperienced in general. Some time in the future they will still be lower experience, but they will be experienced enough. the only question is when, which is a gamble, but i think soon. On the order of 5 - 20 years would be my bet. It already happens but is a rare exception to the rule - so that timeframe is how long for it to become a common occurrence.
But standard of living isn't really the reason someone would be miserable at work -- the real thing that makes this a bad arrangement is loss of agency, both for the off-shore contractor, and for the supervisor. This is where I accused you of not having done this before, because in my experience, and several friends' experiences, working with lower-paid, lower-experience software teams is extremely frustrating.
As others have pointed out, coming up with specs is a frustrating and unsatisfying process, and is akin to writing code, except that you don't actually get to run the code and see the fruits of your labor. Because of your working arrangement, the people actually making the product don't have the agency to take ownership of its architecture, and instead you get a whole bunch of copy-paste. If you push back and say, "no, this isn't what we agreed to," then they push right back and say that your requirements are unreasonable, because they don't have the expertise to architect the project right.
But suppose you decide you don't care about architecture, because that's what expensive people do, and you're hiring cheap people, then what's the harm? They can do things their way, even if it's less efficient, right? Except that now the team living with the bad architecture is responsible for fixing all the inevitable bugs that come up, and every time a bug is "fixed," another bug pops up somewhere else, and you, the supervisor/customer, are now responsible for all of it. You can keep filing the bugs, but you can't fix them yourself. Or maybe you can fix them yourself, but you can never improve the overall design, because your decisions will always be overridden by the copy-paste brigade doing the "real" work.
It's a world where all the code bases are awful and nobody gets any job satisfaction.