I think this really comes down to basic economics. Talking about a "shortage" of something is equivalent to saying the market isn't clearing: that there's more demand than supply. And having more demand than supply is equivalent to the price being too low. Salaries for developers, inflation-adjusted, have remained essentially the same since the dot-com boom. Meanwhile, salaries for bankers and consultants and lawyers have exploded. The results of this should be obvious.
You guys want people to major in computer science? Pay them to. I'm sure that the DoD and Google and Microsoft would all like to hire top people for $50,000 a year. But that isn't the way markets work. If I want a Ferrari, I can't refuse to pay more than $10,000, and then complain about a "Ferrari shortage" because no one will sell me one at that price.