Even though it makes sense, I think the biggest problem with this solution is preventing people from taking up low paying cash jobs. The US doesn't have an effective way to enforce that yet.
Given that this discussion is about US immigration, it makes sense to discuss cases where capital needs to be raised(if comparing to OECD countries) or there is a significant advantage to relocating to US(if comparing to non-OECD countries).
One of the main premises is that innovation is stifled because employees in the position to innovate are chained to their jobs via the H1 visa in their prime years.
You are right. I was describing free - not freemium. Though, technically even freemium is an example of where a large number of people don't pay in the direct exchange. The monetization model divorces payment from the direct beneficiary - that's the key takeaway.
Consider the example given by creamyhorror below - the influence of money in the political process.
What if besides having a disproportionately high number of points on HN, you had the power to influence the creators of HN so that a percentage of all the points on HN went to you? Or, what if you had millions of points on HN and were able to convince the makers of HN that you should be able to vote on HN with only 0.5 points per vote?
The problem with the current system isn't that people act selfishly i.e. in a way that creates most value for themselves.
The problem is that the selfish actions of some actors(the figurative 1%) count for overwhelmingly more than others. And a lot of actors don't have any say at all(those below the poverty line). In such a system, the selfish 'demands' of most other actors don't matter.
Say on HN, there were a few people (type A) that could instantly give 1,000,000 points to any comment or post and everybody else could give only 1(type B). A post could provide value for 100,000 type Bs and yet some other post that type A liked would always rise to the top. If this were true, HN would be a very boring place to be.
The goal should be to empower all actors to act selfishly - perhaps not equally, but atleast in a 'reasonably' proportionate fashion.
Divorcing ability to pay doesn't necessarily have to mean nobody pays.
We are already beginning to see the early stages of such a system. All freemium services are in essence an example of such a system and therefore by extension most startups.
Gmail satisfies the demand of millions of customers for an email service but doesn't ask them to pay. This doesn't mean gmail doesn't make gains.
Currently, the primary funder of such services are ad and brand agencies.
What if we lived in a world where any individual could basically play the role that ad/brand agencies play in supporting freemium services today?
You nailed it. The key problem is 'demand' is determined only by whoever has money. Capitalism works because each person gets a say in what is important and creates value for them. The problem is that if you don't have above a certain amount of money, you don't get much of a say. In the age of immense income inequality, this completely distorts the 'demand' generation aspect of capitalism.
What if we divorced 'demand'(what creates value for each person) from money (payment for value created) and gave all actors an equal right to determine demand irrespective of their ability to pay? We are working on building such a world.
Certification is a form of social proof, and a shortcut to find people who might be qualified in some industries.
They are worth it if your 'customer' (employer, actual customer, other) cares. But, thinking about acquiring social proof rather than certifications leads to a more interesting set of ideas.
For eg., you can acquire Salesforce certification for their platform or you can build a Salesforce app that customers use and rate highly. In turn, you would use the app to generate revenue or give it away for free so you can get multi million consulting contracts(slight exaggeration).
If you are looking to be cool with the tech crowd, no they are never worth it. If you want to provide a service to customers, social proof matters.
Credit and recommendation are fundamental to any human endeavor - whether applied to Ph.D candidates, poverty and access to capital, patents, or a plethora of other complex societal issues. If nothing else, I always find it interesting to learn how different sections of the society deal with these issues.
Even if they can't do it right away, they should communicate a plan for how they are going to tackle this recurring issue. That's the whole point behind status.heroku.com / trust.salesforce.com. They are part of a publicly traded corporation with a lot of resources.
Extremely nerve wracking for new startups like ours.
My experience has shown that there is one more category - #1(creates frameworks) + #3(gets stuff done). In early stage startups, this is the kind of person you want. In big companies, usually #1 types are ideal.
Regardless, it does suck to have to maintain/extend apps written by #3.
Also,
1) potential to eventually sell MS products to yammer's customers.
2) being able to win other enterprise deals in competition with Salesforce/Oracle by being able to claim that you have something similar to Chatter.
Yup, you are right. Attitude is key to becoming a) (along with a basic level of aptitude, obviously). And, few people have the necessary self awareness.
Attitude is exactly what companies look for when they hire people with less experience. Even for more advanced programmers in a sense it is essential because you never stop learning. This is why there is some bias towards younger people as they are supposed to be more willing to learn.
But, as with any behavior, attitude becomes less necessary if a clearly defined system for mentoring/acquiring the necessary mental models is in place. Someone who graduates from a top school and ends up working at a company where a) types mentor new hires has to try significantly less than someone who graduates from a less well known school and has to figure out some way to learn from a) types.
Btw, the way a lot of the best companies bypass the HR problem is they hire based on employee recommendations. This is another contributing factor to 'talent shortage'. There is a hiring channel at any company that is much better at recognizing potential - existing employees. The high effectiveness and limited reach of this channel adds to perceived 'talent shortage'.
Patents help the inventor in the following ways:
1. Capture value/recover costs from the application of the invention. Inventors gain, society's gain.
2. Receive portion of value created by third party who applies the patent. Inventor's gain, society's gain, and third party's gain from application of patent and loss from sharing patents.
3. Restrict others from using the invention to create value. Inventor's gain, society's loss, third party's loss.
Most people against patents have a problem with 3). But, what if we figured out a way to standardize 2)... i.e. rather than preventing everyone else from using the patent, we figured out a standard system to proportionally reward the inventor with the value created by the application of the invention. Say 10% of all money made by application of patent (via direct/indirect monetization).
In such a system, the original intent behind patents of rewarding the inventor is maintained, society as a whole is able to benefit from the invention, and pace of innovation is accelerated.
Talent at any company can be divided in to following categories:
a. People who make code* frameworks
b. People who extend code frameworks
c. People who maintain code frameworks
* you can replace code with almost any other employable skill
"Talent shortage" usually refers to people who fall in a).
Every company claims to want to hire only a) but most companies need b) or c). Very early stage startups ideally need a), but they don't always manage to hire people in that category. They can temporarily bypass this requirement by hiring people in b) and using frameworks like (Rails, Django, etc) built by other people who fall in a) until they get to a point where a) types will be willing to join.
When people talk about shortage of talent, they usually mean shortage of a) people. This is mostly because two of the three things that people in b) and c) need to become a) are hard to acquire and come with 'experience'(for those who try).
3 things you need to become a):
1. Acquiring a good base
- data structures, algorithms, design patterns etc
- learning languages/specific skills
- interview skills
2. Acquiring good mental models
- working with smart programmers
- reading code by smart programmers
- learning to make tradeoffs
- actually building stuff
3. Acquiring reputation
- Building stuff
- Talking about stuff you build
- Having other people talk about you
- Collecting badges that other people recognize i.e. working at well known startups/companies, winning programming competitions, going to Berkeley, etc.
Most people manage to succeed in 1) eventually. 1) is also where most college/other training programs focus. But, 2) and 3) are much harder to acquire.
If a company is big enough they will assign an a) to mentor someone who is a b) or c), but this is often not viable for startups (and, imho, slightly unreasonable to expect from a lot of startups).
If we figure out a way for b) and c) people to learn 2), we can solve a lot of the talent shortage. But, this requires either a b) or c) person to spend time on their own looking at work by a) people (not always possible and extremely time consuming), or an a) person mentoring the b)/c) person outside companies (100x faster, imho).
Until we build social systems that enable b) and c) to transition to a) easily, the alarms for 'talent shortage' will continue to ring.
Caveats:
1. A lot of jobs only need b) or c). Employers could adjust expectations.
2. Luck is a huge factor. You don't actually have to be a) to be hired or considered a) because perception(3) plays a big role.