While I agree, as someone who is effectively self-taught, it's really troubling to me what we get paid for the quality and quantity we produce collectively.
I bet a lot of folks here won't want to hear this, but we really are vastly overpaid for what we do.
Everywhere I've worked, and I mean everywhere, there's a lot of frankly bad practices that are bad for users and create bullshit work for everyone involved. Just because you've installed a bunch of linters, have 80%+ coverage, and use Code Climate does not mean that your code isn't fundamentally flawed and a liability.
I do think this stems largely from there being effectively no credentials required to be a software engineer. Whether or not your code is "good" mostly depends on your title, seniority, and social clout. If the software breaks, you just keep fixing it and you look like a hero because you're constantly opening and closing Jira tickets. Junior developers learn to code without bothering to consider the philosophy, history, and discipline of code.
It's all just to "get shit done", and there's consequences to this. Things are written to not be accessible, and if they are written poorly then it can be difficult to implement accessibility, thus many are cut out of participation. People's account data and credentials get exposed. Countless millions of $ are spent deciphering code written by people who believe their shit doesn't stink (the code documents itself bruh), and countless hours of lifetime are depleted. People are outright ripped off when companies release software, namely games, that are written atrociously.
Do we really need this many engineers to write GUIs around databases? I seriously question this. Should we really get paid this much for a job where we can be inefficient with almost no consequence?
I argue that we should have standardized accreditation.
How we would implement it, I don't really know. The obvious counterargument is how bass-ackwards many college computer science and programming courses are.
>I bet a lot of folks here won't want to hear this, but we really are vastly overpaid for what we do.
Yeah, coz this view is driven largely by the just world fallacy. Either that or the perplexing idea that quality of life is driven by iphone ownership and cheap clothes rather than availability of medical care, education and a roof over your head.
The fact that education, home ownership and medical care are still reasonably priced compared to our incomes but almost nobody else's while wealth inequality has taken off like a rocket suggests that it is most other professions that are underpaid - not us who are overpaid.
The fact that our incomes kept up with productivity while median incomes decoupled in 1981 suggests likewise.
I'm shopping for houses not quite as good as what my teacher parents were 40 years ago and I'm in the top 2% of incomes while they were a bit above average.
Yeah, how dare I have a viewpoint. Goodness gracious.
> The fact that education, home ownership and medical care are reasonably priced compared to our incomes but nobody else's while wealth inequality has taken off like a rocket suggests that it is most other professions that are underpaid - not us who are overpaid.
Both can be true at the same time. In my personal opinion, if a lot of common practices seen in the software industry went away, the cushiness of our jobs would be glaringly obvious. Did you not see that my point is that I witness us creating busywork for ourselves? If it could be measured and validated that my experience matches reality, what would be the argument for being paid this much?
And yes, I know that different parts of the world pay engineers differently. I can only really comment on how engineers in much of the United States are paid.
If I can't call out work for being shoddy and excessive, then that kind of proves my point. Why should I get paid more than other jobs that require more skill despite if my work is garbage?
> The fact that education, home ownership and medical care are reasonably priced compared to our incomes
Come again? I wouldn't call any of those things reasonably priced even at my income.
Whether something is reasonably priced doesn't really have a 1-to-1 relationship with whether you can afford it.
I could certainly afford a home. Would it provide the same value that a home did to my ancestors? Probably not. It wouldn't be a good use of my wealth at this time.
> In the 1950s these things were available on a non-college degree wage.
Yet I am being underpaid? Sure, technically speaking, we are all underpaid if you compare things like workforce participation to wages and CPI. None of that really undermines my point that I don't think we should be paid as much as we are for the quality of work we are producing.
You don't have to like it or agree, but no, I refuse to believe that I'm a bad guy for concluding that there's a racket-like quality to the software industry. In politics there are clubs where political performance has little bearing on the distribution of wealth, so why would any other industry necessarily be different?
>Yet I am being underpaid? Sure, technically speaking, we are all underpaid if you compare things like workforce participation to wages and CPI. None of that really undermines my point that I don't think we should be paid as much as we are for the quality of work we are producing.
Except it does...?
Just saying it doesn't doesn't make it true.
>You don't have to like it or agree, but no, I refuse to believe that I'm a bad guy for concluding that there's a racket-like quality to the software industry.
Software engineering isn't a racket.
The reason we're paid middle class wages (unlike, say, teachers) is because:
A) capital controls the stocks and flows of most society's wealth and because
B) we can potentially trigger large increases to productivity so the ceiling on our value add is very very high.
C) there are not enough experienced programmers to satisfy capital's insatiable demand for automation.
These things are relative to one another. The way you present your case that we are all underpaid is very absolutist and lacks the nuance that someone can be underpaid in the grand scheme but overpaid at a smaller scale.
> The reason we're paid middle class wages (unlike, say, teachers) is because:
I don't really have the time to adequately address every one of those reasons, so all I have to say is that if economics were that straight forward and honest then we'd have a lot more millionaires and billionaires. At best, reason B is true absent any sort of incompetence or meaningful quality-control around production. When you consider how the revenue of many companies is not tightly coupled with productivity and profits, your perspective doesn't seem to add up.
>These things are relative to one another. The way you present your case that we are all underpaid is very absolutist
I didn't really disagree that "underpaid/overpaid is relative", I just used a different default frame of reference to you. One that made you angry I guess?
> and lacks the nuance that someone can be underpaid in the grand scheme but overpaid at a smaller scale.
This point sounds horribly confused to me. Earlier you said we are all vastly overpaid. Now we are both underpaid and overpaid? Depending on the scale of... something?
>I don't really have the time to adequately address every one of those reasons, so all I have to say is that if economics were that straight forward and honest then we'd have a lot more millionaires and billionaires.
I really have no idea what you're getting at here. It doesn't make any sense to me.
> Why should I get paid more than other jobs that require more skill despite if my work is garbage?
it's a mistake to think that degree of skill is or should be the only input to compensation. whether the skill is actually useful to other people is at least as important. there is still a lot of low-hanging fruit in software. even a mediocre engineer who messes up a lot of stuff can still provide a lot of value. I think that's likely to end given enough time, but for now, it's reality.
also as an aside, I think it is easy to forget that software is actually kind of challenging when you're surrounded by other people that do it as a full-time job. it's not rocket science or open-heart surgery, but when I help my friends who are trying to break into software without much tech background, I realize there is a lot of knowledge I take for granted.
This is the typical “just world” rant of the junior to mid-range devs. Did this exact rant back in my day.
I’ve been in those shops that “consider the philosophy, history and discipline of code”. Your counterparts in those organizations? They’re ranting against the waste they see going on.
The reality is more nuanced. If you were handed a multi-thousand developer organization, business goals, and a fixed budget by the BoD via the CEO and CIO, your theories of “how it should be” won’t make it past the first fiscal quarter.
This is the next level awareness of what Brooks meant by “no silver bullet”. He wasn’t just talking about coding tooling, he also meant these kinds of diatribes we all evolve through in our career.
We aren’t paid to only cut code. We’re paid to help deliver an outcome. Outcomes at the business level are not evaluated by the same criteria you personally use, despite what your immediate business liaisons tell you; you need the C-to-upper-management perspective to start to understand the real decision factors. Before you make assumptions about companies not knowing at industry aggregates level how to pay developers, first go manage a multi-hundred to multi-thousand person engineering organization with balance sheet and P/L LOB insight into their real impact as crunched by the finance wonks. Then you’d know the real cost benefit you currently assume the finance people in aggregate don’t know.
We absolutely can and must do better as an industry, and I see us every month making incremental progress (this is much more difficult to see in the first half of your career because you struggle to get a feel for what is and isn’t progress that business cares about). That doesn’t preclude us from obtaining useful outcomes given prevailing conditions (including pay as a very small factor).
I agree. It's hard to argue software developers are overpaid when the executive leadership are making hundreds of millions (some even billions).
Seems absolutely terrible to attack the smaller fish compared to the truly 0.01%. Especially when the billionaires are directly influencing the country.
Let me know when a staff engineer at Twilio or Square is able to influence the media people consume, and I might feign worry.
The "high tech illusion" concept spoken about by the book "Peopleware" relates to this. It's the idea that software engineering is viewed as a high-tech profession on par with something like rocket engineering. In reality, software engineering is closer to an assembly line process wherein we simply arrange and connect pre-made components (e.g. APIs).
I bet a lot of folks here won't want to hear this, but we really are vastly overpaid for what we do.
Everywhere I've worked, and I mean everywhere, there's a lot of frankly bad practices that are bad for users and create bullshit work for everyone involved. Just because you've installed a bunch of linters, have 80%+ coverage, and use Code Climate does not mean that your code isn't fundamentally flawed and a liability.
I do think this stems largely from there being effectively no credentials required to be a software engineer. Whether or not your code is "good" mostly depends on your title, seniority, and social clout. If the software breaks, you just keep fixing it and you look like a hero because you're constantly opening and closing Jira tickets. Junior developers learn to code without bothering to consider the philosophy, history, and discipline of code.
It's all just to "get shit done", and there's consequences to this. Things are written to not be accessible, and if they are written poorly then it can be difficult to implement accessibility, thus many are cut out of participation. People's account data and credentials get exposed. Countless millions of $ are spent deciphering code written by people who believe their shit doesn't stink (the code documents itself bruh), and countless hours of lifetime are depleted. People are outright ripped off when companies release software, namely games, that are written atrociously.
Do we really need this many engineers to write GUIs around databases? I seriously question this. Should we really get paid this much for a job where we can be inefficient with almost no consequence?
I argue that we should have standardized accreditation.
How we would implement it, I don't really know. The obvious counterargument is how bass-ackwards many college computer science and programming courses are.