Baring a few exceptions, programming tends to be a well-paid, cushy job. I don’t think there’s any other industry where fresh college grads can get the offers that (competent) programmers usually get.
Why is that, though? The widely-told answer is, “value”. As the reasoning goes, the dev’s salary reflects only a fraction of the value they end up creating. For instance, if a programmer working for Amazon.com pushes an optimization that speeds up the site by 20%, it directly translates to more revenue for the company as there is a direct correlation between site speed and the number of customers successfully checking out.
It sounds like a sensible argument. However, I believe there are plenty of holes in this line of thinking.
If programmer is entitled to the value they created, shouldn’t they also have a stake in the value they destroyed? Products that never got traction or failed to reach product-market fit. Obviously, they shouldn’t be responsible for bad decisions up in the hierarchy. But why, then, they should take credit for the good ones?
Quantifying value isn’t always straightforward. What’s the value of adding animations to a product that makes the experience more fluid?
Think of a factory that manufactures luxury handbags where each handbag retails for $600. ̱How much are factory workers making there? Probably, only a measly salary. I don’t want to get into the greediness of the corporations here, but the workers’ pay has only a slight correlation to the cost of the handbag. But according to the logic of ‘value’, shouldn’t they get paid according to the sales of expensive bags they are crafting.
Programmers are responsible for achieving something in a fast and efficient manner, but they don’t directly make the decision to do something. If the project is already set to be done, how much credit can they take for the value it brings? Granted, getting things done is no easy deal, but programmers aren’t in a unique position to see something shipped.
In any project, it’s not just engineers that are involved. There are designers, marketers, copywriters, and PMs. How would the driven value split for each of those roles?
Sometimes, especially in startups, programmers can make decisions on their own that can bring tremendous value. Gmail famously was a result of Google allowing engineers 20% of the work time to create interesting projects. But in most big companies—companies that usually pay the most—this isn’t the case. Programmers are often left to make the micro-decisions that are largely inconsequential.
So why are programmers paid so much?
It’s simple. The demand of competent programmers far outstrips the supply. There doesn’t need to be any more justification. In the last twenty years, technology has rapidly expanded its footprint, and the amount of software that is being made/needs to be made, exceeds the number of programmers who can create them.
There’s no upper ceiling to innovation in the software industry. In other STEM fields, advancement has naturally slowed making it harder and harder to reach the new frontiers. Not so in the software industry. Each new paradigm, or technology, spawns an entirely new sector in the software industry demanding more and more code to be written. Delivering software through Internet (SaaS) had humble beginnings, but is now a $176B industry, and it’s expected to grow at the rate of 27.5% .
iPhone can probably be credited for pioneering the mobile apps industry, and it’s now $170B. And still growing at the rate of 11.5%.
It’s true software can create immense value for businesses. But are salaries driven by that fact? Kerbal Space Program, a popular space simulation game, has sold millions of copies. Yet, Squad, the Mexican game studio behind it, was paying their devs as low as $200 a month.
The Software industry is also attractive for capital. Few big winners can make up for many losers—an idea that draws various funds to make many bets. Even companies with unproven business models can fund themselves with external capital and use them to increase headcount, which creates a bigger vacuum of talented engineers.
A dev’s salary is purely a function of what everyone else in the industry with the same skill-set is making and the capital that exists to support it. I don’t consider justifying it useful. Someone is willing to pay you for your skills, and you’re happily accepting the trade.
Should you sell value as an engineer?
There has been advocacy for the idea that engineers should sell value. An example would be, “I worked on a feature that improved agent response time by 5s, and created hundreds of thousands of dollars of revenue.” But if the feature was already on the roadmap, spec-ed out by a PM, and handed to you with designs and requirements ready, were you really responsible for the impact?
I feel it sounds a little self-important. Things would be different if you were given a vague task, like, improving a site’s speed, or cutting down costs, and did a commendable job at that. Or, if you leveraged your expertise to execute a difficult project. But other than that, I am not strongly sold on the fact that dollar figures stand out when employers are looking for engineers.
In my limited experience, what employers are looking for is rather basic. They want smart capable engineers, who can do the job well without significant guidance. They want to see things you’ve shipped, or have worked on, and want to know how well you can handle different scenarios. They want to be sure you can work peacefully within the existing team. Taking initiative, and having expertise, is a bonus point.
But they don’t necessarily need someone who thinks everything through the lens of business value. In fact, engineers like that can meddle too much into what needs to be done and annoy team members who are actually tasked with decisions (personal experience).
I think, it’s good to know your impact, and highlight it a little, but not everything you did needs to be translated into ROI. “Created a feature that was adopted by 80% of agents”, “Added animations that made UX more delightful” are equally good things to say. Let your work do that the selling. You don’t need to push too hard.