In something like 25 years in this industry I have seen this opinion time and time again. "I am not being paid what I'm worth". You can negotiate to higher levels of compensation, but there is more to life (and your job) than money. I have often seen people price themselves out of a job.

A normal high tech company runs an R&D budget that is less than 10% of earnings. The rest of the money goes to cost of sales, infrastructure (building, chairs, etc) and various other things. This means that on average your contribution needs to pull in at least 10x your cost in order for you to be seen as being worth it. There are also a lot of costs for hiring employees -- employee tax, insurance, benefits, etc, etc. So if you make $100K in salary, then your contribution has to bring in maybe $1.2 - $1.5 million.

You may think "Oh those bastard sales people are making way too much and aren't providing any benefit", but you will find that the company will still budget less than 10% of earnings for R&D. Whether it is justified or not, quite a few of the people in the "management side" identify a lot better with sales and understand their value a lot more. Unless you think of a way to significantly increase earnings, then you are depleting the pool of cash for R&D when you ask for a raise.

"Not my problem," you think.

Except Jane down the corridor appears to be very nearly as productive as you are (whether it is true or not is completely beside the point because everything will be judged by its appearances). She makes something like 60% of what you make. She's a freaking bargain! You, on the other hand, bitch and moan that you can't make ends meet on $100K and that you are living out of garbage bins. Plus you see yourself as the saviour of the company and without you everything will just collapse. Managers think, "God, please don't make me talk to that guy again".

The order comes down from above -- either 1) Our competitors are kicking our ass and we need to downsize R&D OR 2) We need to ramp up explosively to hit the next big business wave, so we need more programmers!

How will we reduce our expenditures or hire more programmers with the same amount of money? Easy! We'll do away with those bitchy-moany prima donnas and hire more of the absolute bargains that never complain.

Here's a secret I've learned. Being seen as worth significantly more than you are paid means your boss always approaches you with a sense of gratitude. In fact, creating a sense of solidarity with management in this respect shows loyalty. While it is true that, in general, companies do not return such loyalty, individuals in management will tend to select a handful of people that they trust and "can not do without". Those people will not be the guys that constantly threaten to leave for greener pastures, or that constant complain that they aren't appreciated.

I have never negotiated salary. I have either taken what has been offered and then worked hard to become an integral member of the team or I have refused the job. I have left jobs that I didn't like, but I have never left to make more money. Nor have I ever threatened to do so. I probably get paid less than I might if I pushed hard, but I can tell you that I enjoy the privileges of being "that dependable guy" much more than any salary could provide.