8 ms·
Wage isn’t based on the difficulty of the job. Wage is based on the opportunity cost of the uncaptured labor value incurred due to employment. For software eng
by ethn 7y ago
Wage isn’t based on the difficulty of the job.
Wage is based on the opportunity cost of the uncaptured labor value incurred due to employment. For software engineering, this is acute since with the same skills needed for employment one can make a competing enterprise to their employer and capture all the value.
Other professions require you to have large capital to do so, so the opportunity cost is either non-existent if you cannot access that capital or further discounted by the financing cost/risk.
Your end SWE wage ends up being the value you would otherwise be able to capture discounted to the expected value w.r.t your risk.
Companies profit on employment by having a lower risk in enterprising, thus a better EV, than their employees in the same enterprise for a given number of reasons—brand, preexisting customer base, speed, proprietary market analytics, etc.
- xwowsersx 7y agoExactly. Very, very well explained.
- tspike 7y agoThis is actually a great argument in support of OP's conclusion. Once starting a software-based business achieves a sufficiently high cost to entry (at some point most of the profitable problems to solve will be out of reach of a handful of programmers), I would expect pay rates to plummet.
- NeverFade 7y agoFirst of all, the fact that any SWE you don't employ can start their own business, is just a boosting factor to SWE wage. The key reason companies can and do pay SWEs relatively well is that these SWEs generate large profits for them. That's the "opportunity cost" GP mentioned: yes, you'd have to pay the SWE $400k, but the cost of not employing them is several times that in lost profit. Moreover, I'm not really seeing how the barrier of entry is going to increase substantially. In fact, it will probably decrease. As software eats the world, there will be more and more "pure software" work, which means your only toolset is your knowledge. SWEs with large amounts of specialized knowledge and skills will increasingly be able to compete in these areas (security is a pretty good example). It doesn't have to be your typical company with a logo, brand, and office space - we're talking about consultancies and virtual businesses.
- chiph 7y agoThe places I've worked have had revenue-per-employee in the $200-300k range. That's total employees, not just developers (so, sales, accounting, HR, as well). Doing some rough math, it's been more like $15-25mm per developer.
- NeverFade 7y agoYes, it's the same for FAANG as well. If you just divide total revenue by total headcount, you already get seven figure numbers. But if you divide revenue by the engineers who generate it, you get a big multiple of that.
- rev_null 7y agoIf you divide the total revenue by the number of HR employees, you will also get a much larger number. (Total revenue / total number of employees) will always be less than (total revenue / subset of employees). This is not a very good metric.
- NeverFade 7y agoIn a company like Facebook, who is directly responsible for the revenue? And who is working support roles? If you laid off 90% of HR, how will that affect revenue? What about laying off 90% of the engineers?
- chiph 7y agoHR, Accounting, etc. aren't directly revenue-producing. You could make a good argument that Sales headcount should be included, though.
- yibg 7y agoDivide by number of product managers then, even higher per headcount.
- JoshuaDavid 7y agoI think the surface area of "problems that are possible to solve with a handful of programmers" is so that enormous that even if the capabilities of a handful of programmers stagnated, it would take decades or more to run out of profitable problems. Additionally, the capabilities of "a handful of programmers" increases over time as the best tooling available gets more capable, so the surface area of what is possible expands* over time as well. * I'd argue that as tools improve, the number of solvable problems of a given value increases exponentially e.g. if you have a capability A and you introduce capability B, you can now do things that require only B or A and B, and if you then introduce capability C, that opens up (C), (A, C), (B, C), and (A, B, C) as new problems that are possible to solve. Edit: For a concrete example, with tools like Stripe you can do payments-related stuff without being an expert in handling credit cards, and with tools like EasyPost likewise for physical mail, and with the combination of the two a single developer can now do any of the things that require either of those individually plus things like taking online payments and managing shipping on the best-cost carrier without any in-house staff and only a couple months of dev work.
- petre 7y agoMost software products must stay relevant, so they need countinous improvement.
- ENOTTY 7y agoI suspect that at least one cost to entry that might be coming down the pike is a legal requirement to design secure and resilient systems / software liability. This might start in sectors deemed “critical infrastructure” but that line is increasingly blurred.
- adrianN 7y agoI think the skillset needed to successfully start a company is quite different from the skillset needed to be a good programmer. I consider myself to be a decent programmer, but I would never be a successful business owner
- jolmg 7y agoIt's still probably a lot easier compared to other professions. Most need their employers to provide them with very expensive equipment to do their work. Programmers need little more than a laptop. That's a big difference, business-making skill notwithstanding.
- taneq 7y agoTrue but a development machine is a bit cheaper than a steel foundry or an automotive production line. The barrier to entry for a new software company is orders of magnitude lower than other industries.
- wallace_f 7y agoAlso, for the most part, isn't yet monopolized by lobbyists, corporatists and government working together to use regulatory capture to corner markets. It's pretty extreme in some industries, such as telecomm with natural monopolies, but also in markets without natural monopoloes. People even get arrested/fined for ridiculous things like braiding hair, giving haircuts (such as to homeless), selling hot dogs, selling cookies, or selling diet advice, etc. So in accordance with OP's theory, if this were to happen the salaries for devs would go down.
- jefftk 7y agoI'm confused: normally occupational licensing and other barriers to entry are modeled as increasing pay by constraining labor supply. Why do you think I think the opposite?
- username90 7y ago
- GuiA 7y agoExcellent comment. The killer feature of software is that it is utterly delocalized. Theoretically, you can capture the whole market whether you are based in SF, Berlin, or Calcutta. That has actually probably been somewhat reduced over time as governments have realized the benefits to protectionism (eg you can’t capture the Chinese or Russian market anymore if you’re a search engine), but it’ll likely remain generally true compared to other enterprises. This effect is so powerful that even if your business has a strong physical component (Uber, Airbnb, etc) the scalability of software still puts you at a huge advantage. As a doctor or lawyer, you tend to be limited to a radius around your immediate physical location. Software is a weird beast that we haven’t really seen any equivalents to in human history.
- PaulDavisThe1st 7y agoIt hasn't been reduced over time - if anything it has increased. The early online commerce ventures were completely nationalistic in their scope, which is markedly different from today. Localization in the sense that you mean is a function of a lot more than the software: language, culture and law all play major roles.
- austincheney 7y agoSoftware is poorly explained by economics so I question the validity of economic considerations in hiring or paying developers. The thing that makes software different is scale due to low reproduction costs. You can easily envision the costs of adding new labor, for example, in building a car and directly map those expenses to increased production quantity. In that case scale of labor to scale of product is not exactly 1 to 1, but it’s close. In software that 1 to 1 scaling does not exist. Perhaps the big difference is that few people working a car assembly line are engineers. Most of the labor is produced by manual labor and robots. In software the actual engineering is equally as rare but the distinction between engineering and button pressing (the manual labor) is absent. To really prove that point many developers adamantly fear and oppose producing any form of original code. If you are terrified at writing original solutions to a problem how could the work possibly be considered any form of engineering? https://news.ycombinator.com/item?id=21883670 https://news.ycombinator.com/item?id=21883670
- wongarsu 7y agoA software engineer is more like a car designer (or more general the entire R&D of car manufacturers). The number of car designers is independent of the number of cars you are producing, but if you want to have more or higher quality models you have to hire more of them.
- austincheney 7y agoResearch (R&D) suggests some amount of intentional documented knowledge expansion, not mere personal learning. Every job has personal learning including scrubbing toilets and digging ditches. A person mindlessly smashing buttons will eventually learn to smash them faster with fewer mistakes but that isn’t scientific progress increasing understanding of product use cases. There actually is real research that occurs, with white papers, to test opinions and that isn’t what most developers are doing.
- wongarsu 7y agoIn this context I understand R&D as Research and (product) Development. Sure, that includes actual scientific research (say material science for better break pads) but also the development of that research into actual products (making a new, attractive, profitable break assembly with that great new materials the scientists came up with), as well as mundane product development (let's make a new truck by making slight modifications to last years model). Programming can fall anywhere on that spectrum.
- hyperbovine 7y ago> Wage isn’t based on the difficulty of the job. If by "difficulty" you mean "skill" then of course it is, in part. Why do baseball players make $30m and teachers make $30k? The demand for watching baseball is huge relative to the supply of people who can perform at a professional level.
- cm2012 7y agoYeah, but speed running Mario is also really hard but pays nothing.
- hyperbovine 7y agoDemand.
- _bxg1 7y agoYou could say the same about Law. All you need to start a competing practice is an office, if that.
- bryan_w 7y agoIts true. All you need is an office...and an very expensive degree...and clients. That's all
- _bxg1 7y agoThe parent comment's whole point was that an already-skilled worker can start a competing business with minimal up-front investment, and that the main benefit an existing company provides is its existing brand and customer relationships. Please read before weighing in.
- everdev 7y agoAs a previous employer of SWEs, this is somewhat correct. More accurately for me was salary was equivalent to the market price. I needed to maintain a certain level of talent to be competitive, so I recruited and found developers at that level. After enough interviews and salary requests it's easy to ballpark the industry average for a certain level of talent and I'd hire the ones that were a good fit at a reasonable salary. In my case supply was scarce but just available enough that prices were pretty stable. As the supply of good developers increases it makes sense that the average salary request will drop. This is economics 101 that no capitalist industry is immune to.
- deleted 7y ago[deleted]
- cryptonector 7y agoThis is the right answer. Life isn't fair. Though, too, programming isn't as trivial as TFA makes it sound -- working with your mind is not backbreaking like manual labor, but it is still exhausting. But TFA makes a good point: the level of compensation that programmers can demand may well fall more in line with that of other professions at some point. Thus one should not go into programming simply because current compensation levels make it attractive, nor should current programmers spend like drunken sailors. Caution is warranted here. Software has been eating the world. We're probably far from peak software. Whether we're far from peak software developer compensation is another story -- I wouldn't know or make any predictions, informed or otherwise.
- helen___keller 7y ago> Software has been eating the world. We're probably far from peak software. Whether we're far from peak software developer compensation is another story -- I wouldn't know or make any predictions, informed or otherwise. Plus, we will reach peak software eventually - likely decades out of course
- himinlomax 7y ago> Plus, we will reach peak software eventually - likely decades out of course I'm amused by people who think that some tech will erase their tech job. Take ops automation (Ansible, not robots); some people think that it's about cutting tech jobs. Obviously there's definitely not fewer SREs today than there were sysadmins 20 years ago, far from it. Until a major paradigm shift occurs, the need for software / tech can only grow in every economic niche. A crisis is coming, it's not going to be a problem for those with IT skills / abilities, but for those without.
- deleted 7y ago[deleted]
- mrfusion 7y agoTo simplify you can say wage is based on supply and demand.
- ethn 7y agoSupply and demand (SD) doesn’t tell you what the equilibrium price is, which is what we are concerned with. That’s what this analysis resolves, and in this context, the long term view of the wage; of which the wage reaches a state closer to the SD equilibrium. But you’re right that the direction of price is completely subsumed by SD theory.
- danesparza 7y ago> Wage isn’t based on the difficulty of the job. It is though, kind of. It comes down to supply and demand economics -- and the perceived difficulty of the job. People hire lawyers because they don't want to become one themselves. Lawyer wages come down when there is a glut of lawyers and not a corresponding glut of lawyer work. I'm old enough to remember working in 2001 when the software market contracted. It was very hard to get a job, even for skilled developers because hardly anybody was hiring. It sucked. It also temporarily removed software developers who were just in it for the money -- they literally switched careers to something else. Incidentally my salary is now higher than it ever has been -- so the market clearly recovered, it just took a few years.