No promises on timings this time, let’s just get started.
As of late I have thought a lot about developer compensation and how it influences one’s decision to switch companies. Here are some things that I noticed (based on personal anecdotes and first-hand accounts):
- Developer market is extremely hot right now
- Companies are more reluctant to increase one’s salary when already employed
Based on that, I would like to formulate the Attrition Theorem:
As long as (1) and (2) are valid, the bulk of developers will be incentivised to switch companies more often in order to increase monetary part of their compensation
Let’s try to see why that happens.
High Demand for Developers Increases Opportunities For Salary Growth
Have you thought why some countries are more “entrepreneurial” than others? There may be many reasons, but one of them is safety netting which gives one more opportunities to take on risk without fear of life-changing financial damage: if your country’s economy is on the brink of collapse, it’s is much scarier invest one’s time into start a business. Same is true for changing jobs: if you are unlikely to find a new place to work, you would think twice before job-hopping and your leverage will be smaller in any kind of salary negotiation.
Increasing One’s Salary Inside a Company Is Hard
Businesses exist to make money. Building products and selling them is the main way of making money for the majority of software companies. Suppose you have X% margins and Y revenue. You know what’s better than X% and Y revenue? It’s X% margins and Y + 1 revenue. A company can get more revenue by making more products and selling them. One way to make more products is through expanding the production capabilities, which in the case of software companies can be done through hiring more developers. Guess what is not gonna lead to more products being made? Increasing their salary! When everything is accounted for, salary increases while on the job only influence how likely people are to leave (and expenses connected to that). As people normally like to avoid changing jobs with time and emotional investment that it entails, the additional hiring expenses tend to be relatively low unless an employee is a superstar at what they do or is responsible for a lot, which is why there is little incentive for the company to increase developers’ salaries.
Money Today > Money Tomorrow
Let’s move back a little and think about how relatively “normal” people become rich. The biggest reason for that is compound interest. The rule is simple: if you save and invest money over a long period of time, you will eventually get a lot more money than you would get without investing. This directly leads towards the fact that that today’s money is more valuable than future money.
Conclusion
All three things above combined push one to pursue the money as soon as possible. Is it bad for the companies? Who knows. I think the worst impact of developer attrition is all of the unseen products that could have been built if people had more knowledge of the existing products inside companies. At the same time, there isn’t a way to estimate the damage of that, so maybe we should just live with it?
This post is a bit different than other ones before it, let’s see what’s gonna happen next. Peace.