I think that automation can save a lot of money, for a company. As an individual, if you automate something for yourself, you probably spent more time analyzing the problem and writing the code, than the task took originally. But in a company, you can automate a repetitive task of hundreds of people. And those people made errors when they did it manually, so you also improved the quality. If you save 40 people 1 hour a week, you have already paid your salary. Actually, the company now got 1 extra hour from those 40 people forever, but they only paid you for the automation once.
Well, that would be the ideal case. Then, the programmers would be drowning in money.
But in reality, programmers often spend a lot of time adding features that don’t really save costs, just because someone thought they would be nice to have (why read the numeric constant from a configuration file, if you can have a configuration dialog, preferably as a REST service?), or because the idea of having a program makes everyone suggest that it should also do this and that, things that would be completely crazy to do by hand, and become “not crazy, but not profitable either” when automated (the company used to calculate some value once per year, now it is calculated every 5 minutes every day, and you have an on-call duty during Christmas in case the server stops being responsive). Also, the people who make decisions don’t really think it through, and then they keep changing their minds during development, so the programmers have to rewrite the code over and over again. (But the programmers need to do “sprints” and keep their tasks in JIRA to make sure they don’t waste time doing unproductive things, such as studying new technologies.)
As a result of these two things, the programmer salaries become what they are.
There is also the problem that companies usualy can’t distinguish between good and bad programmers, so the bad ones are overpaid, and the good ones underpaid, to make it work on average. Similarly, junior programmers are somewhat overpaid and senior programmers underpaid.
Also, good programmers keep learning all their life. But the company is usually not going to pay for any of that. (“Why would we pay anyone for learning X? If we ever need a person who knows X, we can simply hire someone who already knows.”)
In my experience, companies are inflexible. When you read the online debates, the company owners typically complain “we need someone who knows X, Y, Z, and we keep looking for years and can’t find anyone”, and the audience asks “so how much do you offer?”, and the boss says the number, and the audience goes “but that’s below the market wage, you should add 50% and people will start coming to you”, and the boss goes “no way”, and the audience goes “so offer some other benefit, such as part-time work or remote work”, and the boss goes “no way”, and that’s the end of the debate. (That’s an equivalent of me precommitting to never buy bread for more than 10 cents, and then writing blogs about national bread crisis, while walking around shops that are full of bread. It’s not about crisis, it’s about my stubbornness about how much things should cost.)
I think that automation can save a lot of money, for a company. As an individual, if you automate something for yourself, you probably spent more time analyzing the problem and writing the code, than the task took originally. But in a company, you can automate a repetitive task of hundreds of people. And those people made errors when they did it manually, so you also improved the quality. If you save 40 people 1 hour a week, you have already paid your salary. Actually, the company now got 1 extra hour from those 40 people forever, but they only paid you for the automation once.
Well, that would be the ideal case. Then, the programmers would be drowning in money.
But in reality, programmers often spend a lot of time adding features that don’t really save costs, just because someone thought they would be nice to have (why read the numeric constant from a configuration file, if you can have a configuration dialog, preferably as a REST service?), or because the idea of having a program makes everyone suggest that it should also do this and that, things that would be completely crazy to do by hand, and become “not crazy, but not profitable either” when automated (the company used to calculate some value once per year, now it is calculated every 5 minutes every day, and you have an on-call duty during Christmas in case the server stops being responsive). Also, the people who make decisions don’t really think it through, and then they keep changing their minds during development, so the programmers have to rewrite the code over and over again. (But the programmers need to do “sprints” and keep their tasks in JIRA to make sure they don’t waste time doing unproductive things, such as studying new technologies.)
As a result of these two things, the programmer salaries become what they are.
There is also the problem that companies usualy can’t distinguish between good and bad programmers, so the bad ones are overpaid, and the good ones underpaid, to make it work on average. Similarly, junior programmers are somewhat overpaid and senior programmers underpaid.
Also, good programmers keep learning all their life. But the company is usually not going to pay for any of that. (“Why would we pay anyone for learning X? If we ever need a person who knows X, we can simply hire someone who already knows.”)
In my experience, companies are inflexible. When you read the online debates, the company owners typically complain “we need someone who knows X, Y, Z, and we keep looking for years and can’t find anyone”, and the audience asks “so how much do you offer?”, and the boss says the number, and the audience goes “but that’s below the market wage, you should add 50% and people will start coming to you”, and the boss goes “no way”, and the audience goes “so offer some other benefit, such as part-time work or remote work”, and the boss goes “no way”, and that’s the end of the debate. (That’s an equivalent of me precommitting to never buy bread for more than 10 cents, and then writing blogs about national bread crisis, while walking around shops that are full of bread. It’s not about crisis, it’s about my stubbornness about how much things should cost.)