Relatedly, after my previous job tried to force everyone back in the office a majority of the time, and I gave them my notice after accepting an offer a week later, my former boss was suddenly very willing to discuss working from home 3 days a week if it meant I stayed. They can do it, they know remote work has been fine for a year+, they just don't want to. If you're an employer, make your peace with a hybrid or remote environment and make the accommodations clear now, not after all your people have started interviewing places that will. No matter what you're paying your tech folks, someone else will pay them more right now, and then it'll be too late.
High quality developers from these countries can get paid surprisingly well. The ones that are insanely cheap tend to also do poor work.
The reason we still plenty of work being outsourced is because if you have a really high tolerance for low quality work, the lower end is much cheaper than you can get in the US.
You are also wildly underestimating some of the tech markets. I know plenty of people that are heading back to China because they are being offered amazing positions over there.
This isn't true. Yeah statistically maybe. In practice if you are willing to endure some hassle you can save a lot of money by using offshore freelancerds/contractors. However it requires lots of patience and also depends on the field.
Most people hire locals because they want to feel comfortable. It is just nicer to communicate with someone from the same culture, and it is easier to trust that guy.
Software engineers in these countries are significantly less competent than their American counterparts. This has been documented by academic literature.[1] That still doesn't mean that there aren't great engineers in Pakistan, but what makes you think you have the ability to recruit, interview, hire and retain the top decile of engineer in Pakistan?
Are you able to discriminate between a great Pakistani engineer's resume looks compared to an average one? Do you have a network of contacts in Pakistan to make recommendations? Will you be able to speak Urdu when you check their references? Does your company have any reputation or prestige in Pakistan? Why would a highly in-demand Pakistani engineer be interested in working for a company without any career progression, who's only outsourcing work because it's cheap?
It's not like this is the first time in history that companies have realized they can offshore programmers to low-cost markets. It's literally been a constant theme in IT management circles for fifty years. It's not like they needed WFH to make it happen. It really doesn't cost much to open an office in Bangalore. Cassandras have been predicting the collapse of the American software market for decades, yet engineer compensation just keeps growing. If anything the economics are far less compelling than they were 20 years ago, since the wage differential is much smaller. If offshoring didn't work in 1995, there's no reason to expect it to work in 2021.
This is not a good thing. The dominant form of 'bullshit' in code is pointlessly self-inflicted pain, and so people who don't hit the 'enough is enough' point are wallowing in bullshit code most of the time, and writing more bullshit the rest of the time. We politely call this 'accidental complexity' to water it down and not point fingers. It wasn't an accident. It was deliberate, or thoughtless.
Anyone who hits the 'enough' point now starts to consider high threshold people as mess-makers. As being less than 1x employees (worst case, -x employees). Doing that kind of janitorial work for long is a quick road to burnout. It's taking and challenging to explain to people that 'okay' is not universal and just because you think something is 'okay' doesn't mean anyone else does and as you work on a team you need to adjust your levels to match expectations.
Time zone is the first hurdle. Although, in my opinion, this can still be overcome in a relative short period of time.
The second hurdle is familiarity with work culture and style. For a person who's worked already in your office, knows the system, knows all the procedures, knows the nooks an crannies of how all the softwares behave, who to call in case of issues, how to resolve them. All these aspects add to a significant amount of non-quantifiable knowledge which lots of organizations don't consider while outsourcing initially.
The third is process. Most organizations have their processes worked out over time. And this is rarely, if ever, documented. Even for people coming to office, there's a certain amount of time till they get familiar with this.
However, the biggest challenge is communication. This means everything - grammar, vocabulary, diction, accent, familiarity with jargon, parts of speech, colloquialisms, everything. To make a requirement understood itself is a challenge. Asking questions about that requirement when faced with a roadblock, is again a bottleneck.
As an Indian, who's worked in most of the English speaking countries, and now working from India, I can just humbly say this - never outsource to cut costs. This will bite you hard in the short run. Only if you have processes set, softwares used correctly, procedures documented, should you look into outsourcing. And that too it should be for reasons other than purely financial. As an example, having remote workers across time zones helps in maintaining support for your global customers better. Similarly, time zone differences can be used to your advantage. Finally, interacting with different cultures can only improve your organization's awareness, maturity, communication and global reach.
That's literally the same argument about the "Fight for $15" - the argument is 'yer gonna get automated'. That's going to happen no matter what.
You could argue that there still has to be a US lawyer in the loop, but that's still true of software projects as well, that there is one Sr. software person overseeing the outsourced team.
If you want a laugh about why not to be a lawyer: https://www.youtube.com/watch?v=Xs-UEqJ85KE
Also remote workers are easier to automate because employers know precisely what they are doing.