However, there have been multiple trends throughout the last 25 years of companies outsourcing more, then insourcing, then outsourcing, then insourcing. I will say for the current trend of outsourcing, it doesn't look like companies are moving everything offshore, it looks like they're being strategic about non core products/services.
My guesses for why:
1. Trends/Fads. Sure it didn't work last time, but enough time has passed that people forgot the mistakes and now the new management wants to try it again.
2. Software is more mature (?). Maybe with git, unit testing, better type systems, linters, cleaner architecture, modern frameworks, software without alot of churn, doesn't need the same level of talent to 'keep it running'.
3. Interest rates. Maybe when interest rates were lower, it made sense to spend 5x as much per engineer to get 50% (?) better quality.
4. Problem getting H1-B? I don't know if this is true at all, but I imagine with lots of layoffs at big tech companies, it may be harder to prove they can't find american engineers?
I have found, surprisingly, bipartisan support on this topic with the reps I engage with. I encourage you to make the time to engage as well.
Outsourcing did not start “recently” either. As far back as the 1990s some companies started outsourcing, with mixed success. I remember the dire predictions of widespread tech unemployment coming because of outsourcing. Didn’t happen, probably won’t this time either.
More programmers create more programming work, and I’d say that doubles when you have remote programmers with language, cultural, and timezone differences.
Profits are becoming hard to come by at many places and a large driver of cost is salary.
The U.S. dollar has also grown in strength over the past ten years. I think it has more than doubled compared to inr?