IMHO offshoring is a done deal. It worked, all the big companies do it. The issues you're talking about are not so much offshoring issues but rather issues in the business trying to hire offshore. It requires Management, a lot of experience, some age / wisdom on the hiring side.
I meant outsourcing in general, which sure a lot do it, but it's not as efficient as doing in-house.
Outsourcing offshore is cheap enough to be a bed that is not so much of a loss and a lot of companies do it, doesn't mean it's efficient or long lasting enough that will result in the seasonal farming scenario you mentioned because things are changing fast and the communication is the most laggering.
That is IMHO exactly what happens. Companies have learned that crappy code is usually sufficient to make the big bucks for a while. And if a company gets big enough, the revenue allows for tolerating crap.
Guess how many big companies among the worlds TOP 100 actually do not do offshore development and focus on the in-house quality code? In reality, these are more like 100 offshore guys, and 1 in-house guy to fix the worst crap.
Has it gotten less in the past two decades? No.
As much as I would wish for no offshore development, the reality is a different one.
Companies have learned that crappy code is usually sufficient to make the big bucks for a while.
This is so painfully true. But I think it's also a sign of an oversaturated market.
It's mostly a race to deliver a product faster than the competitor now. Quality is a 2nd class citizen, if not a 3rd class citizen even should we count development cost optimizations.
Quality tends to make ist return when companies grow old as suddenly there are sufficient competitors which also can get cheap code. Suddenly quality becomes important again.
IMHO all the skills for arriving at quality in development, deployment, etc. should be a part of engineering training worldwide.
And you can see that startups take over market share gradually by making quality products, being closer to the final user and improving gradually.
It's a cycle that moves the market and there's always a breach. I don't see this being stable soon.
... and every startup either dies or becomes the next IBM. It's an iterative cycle where companies repeat the same mistakes over and over because they think they would be able to sustain doing / being better while growing.
I wish it worked that way, it did not so far. See Google. Small "do googy startup". Now they are big. And no longer goody two shoe folks.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.