It is supposed to be a visa for exceptionally skilled foreigners (and not just in IT) that companies should go look for if and when they cannot find suitable American citizens/permanent residents for similar jobs.
Think about this. It is just so difficult to first prove this without really "gaming" it. So then starts the game.
The salary requirement or "prevailing wage" as they call it is again bullshit because it is very easy to meet that requirement.
Now the biggest issue which leads to severe exploitation specially by body shops: its ties to a specific employer and even though technically possible to switch jobs, it is almost impossible in practice.
If we need to reform any skilled visa process including H1B, it must include :
1. No ties to a specific employer. Make it merit based. If I can get it with one employer, let me switch to another one without too much hassle
2. Min. salary requirement may still be in place but then don't make it the crap "prevailing wage". The prevailing wage for Computer System Analysts in NY is average of $65000. Does that make any sense ? What does that even mean ? Who is a Computer System Analyst ?
3. Don't make this a visa that is available when companies cannot find suitable americans for the same job. This is just not possible to prove without gaming. Instead, how about let anyone compete for the same job from across the world and let the employer decide who they want to hire.
4. Oh and last, have stricter standards for "Service based companies" or these third party contracting body shops. They should not be allowed.