Tell that to Microsoft. They sat stagnant on WinMo 6.x for nearly 5 years before rewriting and releasing Windows Phone 7. Their marketshare eroded to dust while iOS and Android (and, by that point, even Blackberry OS, Symbian, and WebOS) ran circles around it.
So, yes, there is a shelf-life. Not because of spoilage, but because of cutthroat competition and a consumer that doesn't have the patience to wait for you.
"You can wait to hire the best of the best. If they are busy right now, you can hire them later."
The reason why programmers make upwards of 200k/yr. (depending on region and specialization) is because there's not enough of them and too many competing companies that need them, not because programming is akin to neurosurgery that you have to wait for that one-in-a-million shot to hire the most gifted hands.
That's why starting salaries out of college are now 60-70k in the West Coast and not 40k as was traditional for a CS grad.
That highlights my point. Until the competition arrived, there was no real force driving them to continue working on it. The money was rolling in regardless of what they were doing to it. Microsoft could have went down to the unemployment line and set all of those people to work on the product, but unlike in other industries, there was no reason for that to happen.
The reason why programmers make upwards of 200k/yr. (depending on region and specialization) is because there's not enough of them
Again highlighting my point. Farmers have to hire anyone, not because farming is easy, but because you can't wait to find a great farmhand. The job has to be done now. Tech companies can wait for the best of the best. Why aren't those software companies hiring that guy who lost his manufacturing job for $9/hr instead? It is because they don't need to. They can wait for the one who is great at the job.
That's not true at all.
A crappy farm hand might harvest at 1/2 or 1/3 the rate of a great one.
A crappy developer will actively damage a project.
It is simply not possible to increase software development productivity by hiring lots of people who don't know what they're doing.
A bad farmhand will damage equipment worth far more than most pieces of software, destroy crops and animals, the list goes on and on. I can say from experience in both that farming is significantly more challenging than programming.
Even a small farmer will have several millions of dollars worth of equipment that is easily broken in the wrong hands. Like good programmers, good farmhands can be paid quite well because they bring a lot of value to the business.
If a bad programmer gets into your codebase, it is trivial to revert their work. It is much less trivial to replace a $500,000 combine because of an minor operator mistake.
It's pretty easy to evaluate the work product of a fruit picker in a field, compared to a "knowledge worker".
What proportion of jobs in the United States are in agriculture, manufacturing, or things analogous to agriculture and manufacturing?
I think you may be suffering from short-sightedness, and assuming that the whole world looks a lot more like your corner of it than it does.
For every job lost in agriculture and manufacturing, there is a new job in the tech industry. However, unless you are highly skilled, nobody will be interested in you. That is the problem. Farmers desperately want skilled people too, but they will hire anyone if they absolutely have to, simply because the job has to be done. In tech, if you can't find that perfect programmer, it doesn't matter all that much if it takes an additional six months to start the product.
Google claims they have approximately 2,000 open positions at all times. If those jobs had to be filled at all cost, they would have no trouble finding people. There are more than 2,000 unemployed people in the USA. The point is that they aren't really in need of filling those roles, it is more of a "nice to have" thing. They are waiting for great people.
My corner is agriculture and technology, so I get to see the vast differences in how people are hired.
I argue that there is a percentage in the agriculture, call center, and manufacturing industry, if given the six years of math and programming, could be top programmers. These same people would be motivated to do so, but have families to feed and mortgages to pay.
We have potential supply. We have demand. How do we get from A to B?
I'm not certain there is any solution that can come from the top. However, hungry people always find a way. I do feel we'll eventually see some big shifts in the employment structure to deal with the problem, started from the bottom. It is not going to happen overnight though.
Or rather, they sell drugs and rob houses. Or take those two minimum wage jobs and tell yourself "someday."
I have seen very few people pull themselves up by their bootstraps, so to speak. And this isn't an easy gap to fulfill.
However, right now, that is not a role the average American wants to take on, even if they have the skills. Much of our society is based around the idea of a stable income from being employed by others. People of HN are typically outliers in that regard.
PS: That's not to say increased efficiency is bad, but it requires someone to spend that new wealth on something before a new job shows up. I have personally destroyed over 100 jobs and while in theory they are going to pop up at some other place in the economy they can just as easily pop up on the other side of the world.
I believe it is deeper than that.
If we look to agriculture, there is a short expiration date on the job. If you don't get the crop off in a timely manner, you are quickly going to be out of business. I hear farmers constantly complaining how difficult it is to find good people, but they are left hiring just about anyone out of necessity.
Manufacturing is similar. You have to keep the products going out the door to stay in business. As such, manufacturers also need to hire someone, anyone, to get the job done. Like the farmers, manufacturers will spend the time to make them better employees.
However, in our technology based economy time does not matter. If you make a product and don't make any changes to it in several years, people will continue to buy your products anyway. You can afford to wait to hire who you feel is the very best, even if it takes years to find them. Once you are established, the only way you can lose revenue is if the competition does something significantly better; but they too are waiting on the best.
That is the problem that I see. There is no need to hire poor employees. You can wait to hire the best of the best. If they are busy right now, you can hire them later.