Engineers should make more money than what they are making now. The largest number I heard lately is $240k for a data scientist from Apple. That's too low! That person can make Siri better and make millions for Apple. Why aren't we getting paid like lawyers? If they win $20M they will get paid at least $2M. But if we make a product that generates $20M profit, at best we get $20K bonus. This has to change!
-Software developers typically aren't comfortable negotiating, nor are we well versed at it. Therefore, we accept job offers for less than we know we are worth and accept raises offered rather than negotiate raises based on our actual performance. -We have no collective bargaining capability, and anyone can enter the field. In Canada engineers have a professional designation, the software industry is typically not a part of that collective. Lawyers have the bar exam to pass before they can practice. These restrictions restrict the labor supply in those industries to ensure higher wages. In our industry anyone can join, even foreigners, or employers can even outsource the labor to another cheaper country. This has the combined effective of raising the labor supply, and reducing our ability to negotiate as a group. -It is difficult to measure the performance from one developer to another. Look at sales as an industry, it is very easy to measure a top performer. If we were better able to demonstrate performance it would be easier for a developer to earn 50% more than his/her peers. Where I live some shops that hire refuse to pay even 10% more for a developer because they are filling head count and treat developers somewhat like a commodity.
The above realization has left me a little jaded. I love this field, but realize that I can earn more selling software than building software.