I've just read Martin Fowler's post about the Cheaper Talent Hypothesis. It's an issue that most of us have encountered.
If you're in IT, feel underpaid, and think that you're above average (as > 50% of us do), you'll have wondered why you aren't rewarded in keeping with your worth.
I suspect the main reason that good developers are undervalued is that most people think that software is easy to write. Since many IT projects fail, the implication is that we can't very good at what we do.
The conclusion is false because the premise is false. Writing good software is one of the hardest things that people do. I'd love to find some way to allow non-developers to find that out for themselves.
IBM used to run introductory programming courses which included a session called keep the alien alive. The instructor played a dumb alien who obeyed spoken instructions literally; the class had to tell him/her how to drink a glass of water. It was surprisingly hard to do, and the instructor usually got soaked. But it really brought home the fact that programming is hard.
How could we update this for the 21st century?