Junior developer, Senior developer, Senior Architect… So many titles floating around when looking for a job in Software Development or when looking at the company you work for.
But should we be talking about titles, experience or knowledge? What gauges salary compensation?
It is a common mistake that companies make, that equate title with experience and thus salary. There have been some trends lately from Software companies to reward mostly experience than titles but this trend is not moving fast enough.
You have a guy that started as a Junior Software Developer. He was moved to technical support with little access to code and stayed there. For whatever reason, he was happy where he was. Time passed, he got a raise every year and fast forward 10 years later he is making 100K and has the title of Intermediate Software Developer.
When he decides to move to another job, should the new employer start the salary from the 100K (which could very well be a Senior’s salary) or from the Intermediate? Or should this be an experience/knowledge starting point, which would dictate that the company should start the salary from the Junior level. After all, our hypothetical employee never really learned anything in terms of Software development. He was just working at tech support. He might have tons of experience supporting an application or two, but never really delved into the code and expanded his horizons.
More often than not, the starting salary would be to match what the previous salary was. After all, the hypothetical employee would not like any loss in income. However, if the new company agrees to match the previous salary, they will have to change the title of the employee, promoting him to a Senior Developer in order to match the salary with the title. As such, the new title does not correlate with the knowledge the employee holds and herein lies the issue.
There is a really promising candidate for our company. We hire him straight out of college as a Junior Developer. After a while we realize we have a gem. We also run a sweat shop so to speak so we really don’t want to pay him much. After a few years, our developer has evolved, developing heavily in our application, making solid architectural decisions and also helping with DevOps. As far as his knowledge is concerned, it has increased by a factor of 1000. Yet if we look at his salary he is still at the 50K range and his title (after all these years) is Intermediate Developer.
When the developer decides to move to another job, should the new employer start him from the salary of 50K onward? That would definitely not represent the knowledge and caliber of the individual. Even the title will not do him justice because clearly he knows a lot more than just the expected knowledge of an Intermediate developer. Once again, the title (or salary in this instance) does not correlate with the knowledge of the employee.
This is similar to the first scenario. A developer is hired as an Intermediate Developer with the appropriate salary. The company is very generous with their raises and soon enough, the developer has reached the threshold of salaries offered to Senior Developers. Lo and behold he gets promoted but without having the appropriate knowledge to support the title. The company now expects him to make architectural decisions, which are flawed for the most part, not because of malice, rather lack of knowledge.
Again the issue here comes from the salary ranges and titles attached to those. This model has been working great in the past for companies but something has to change in order to more carefully identify talent and reward it.
Companies should not be afraid to reward superstars (see scenario 2) or downgrade not so superstars (scenario 1 and 3). Titles should only dictate what each developer knows and not how much they earn. If a company is happy paying 100K to a Junior developer, that is fine. What is not fine is to artificially promote a developer to Intermediate or Senior because they are making 100K.
Something to think about.