The margins would be single-digits if the pace of change and innovation possible was like other engineering disciplines. The business of software engineering evolves at an incredible rate that would be unimaginable in the engineering discipline I went to school for.
If anything, the rate at which capable software professionals can create value has dramatically increased over time. Software is not a zero sum game, cumulative advances make it possible to solve an expanding frontier of problems with increasingly effective and efficient solutions.
And then there’s the freemium B2B SaaS business model (Slack, Notion) that is just insanely lucrative…
Super-simple example: a single developer focused just on internal tools for a 10 person company.
Let's say that this company has a full plate, everyone is busy 100% of the time. They can't really bring on new clients. They could hire a new person to do some of the work, but let's say that that new person will cost almost as much as a new client would bring in. Their margins are very tight, they wouldn't be able to expand fast at all, and losing a client would be very perilous.
(This is how a lot of small companies work. People getting laid off because a client went away is something I've seen firsthand.)
Let's say over the course of a year an engineer could build out enough basic, CRUD-app-style automation to free up 30% of everyone else's time. Now you can get multiple new clients for the cost of one new person! And if you can further automate and reduce the drudgery, even more!
(This is also a partial explanation for why the outsourcing, salaries-will-go-to-zero expectations of the early-2000s haven't come to pass: it requires tight communication and a good understand of people's workflows, which is much harder to do across time zone and language barriers. Hardware, on the other hand, needs a firmer spec and less ability to iterate rapidly with rapid communication and feedback.)
Of course the real world is more complicated and some of that automation comes from SaaS tools, etc (a less-direct way of paying those engineers, and something that could be more outsourceable in the long run) but a surprising amount of companies still need hands-on internal expertise to glue everything together. Less code tends to result in more code, because now that you and your competitors have gotten more efficient too, you have to get even more efficient to move the needle again. The thing about business processes is that they will always evolve as old companies die, new ones start, and consumers (both individuals and other companies) want different things.
It's my suspicion that eventually software engineers will be paid the same as copy writers and scientists. But not yet.
-Indeed average copywriter annual pay [0] is $54,998 USD, versus a staff scientist's [1] at $69,091 USD
-BLS median copywriter pay for 2021 [2] was $69,510 USD, versus a medical scientist's [3] at $95,310 USD
I'm surprised that the median annual salary difference is only roughly $15,000 to $25,000 USD in favor of working as a scientist, considering the additional years doing a Master's/PhD, whereas copywriter jobs often don't need even a Bachelor's. In addition, I would've guessed that the median copywriter salary would have been far lower, as my perception was that there is a far greater supply of candidates for copywriter jobs than scientist jobs in the US (maybe this is offset by fewer scientist positions?). Alternatively, maybe the numbers are missing important contextual information in some way.
[0] https://www.indeed.com/career/copywriter/salaries
[1] https://www.indeed.com/career/staff-scientist/salaries
[2] https://www.bls.gov/ooh/media-and-communication/writers-and-...
[3] https://www.bls.gov/ooh/life-physical-and-social-science/med...