Most developers have the herd mentality–they stick with the herd and value themselves based on where they fit in it. At the front of the herd, you are doing good. At the back of the herd, you are in danger of becoming a hungry lion’s next meal.
Developers at the front make more money and have nicer offices, the ones at the back make less and live in tiny cubicles, but they are all part of the herd. So, even though there is a difference in pay from the junior developer to the senior one, there isn’t much of a difference in pay from one senior developer to another, even if one of the senior developers is more valuable and has more advanced skills.
As software developers, we are acutely aware of our position within the pecking order. We know which developers are higher up than us and which ones are lower. The titles at our jobs help us to know our place.
The rest of the world has no idea about which developers have greater skill and can do a better job, and for the most part, they don’t care—they just see a pack, with some developers at the front and other developers at the back. When an employer hires you for a job, they just want to know where you are in the pack. Are you at the front? The back? The middle? They pay you accordingly based on your ranking within the pack.
If you aren’t explicitly standing out far beyond the pack, you are going to be grouped right in with the pack and paid accordingly. And once you make it to the front of the pack, you’ve got nowhere to go in their eyes—you’re already the best.
This glass ceiling isn’t there because someone mandated that software developers shall only make so much money and live in 5 by 5 cubicles. The glass ceiling is there, because unless you are doing something extreme enough to differentiate yourself from the pack completely, you are part of the pack and the pack is always going to stick together. The average salary of software developers will be used to determine what developers at the front of the pack will be paid, as well as what the developers at the back of the pack will be paid.
This is, of course, easier said than done.There are a few developer animals out there who break away from the herd. They don’t waste their time competing for a position within the pack–they just outrun the pack completely. If you want to increase your value as a software developer, your goal should be to break away from the pack. How? Entrepreneurship, Working on Dream Project, joining the Industry Giant, Consultancy etc, This is something you have to decide by your own, how and when to break from pack is something you have to do it by your own.
But the key is learn to market yourself.