I like this article, but it does not delve very deep into why the current perceived shortage exists. On the public policy side, there is probably a belief that more STEM professionals will increase the economic competitiveness of the nation, even if there is a surplus. From technology businesses' standpoint, it is in their interests to have a surplus of STEM graduates in order to maintain or reduce wages.
Except that it doesn't work, and it should be obvious why. There's no reason to bust your ass in college to enter a field the government floods with foreigners. The more people the government imports the less attractive the field looks to domestic students choosing a major.
I can't complain about my treatment as an EE and later a software developer, but knowing what I know now I doubt I would go into anything technical if I were graduating from high school today.