They'd rather be called "engineers."
With none of the licensure, mandatory education, and so forth. But the world needs programmers and technicians for most of the work we have to do. I do comparably little "engineering" and the little I have done that qualifies for such a statement I recall. Majority of the work is programming and technician work. Nothing wrong with that.
This analogy falls apart the moment you apply it to anything in software.
Most of the time however stakeholders will prefer that someone unleash the last technical shiny tech stack (that no one master in the team and that is about to be dethroned by the even newest thing) to deliver a pixel perfect reproduction of the mock-up rather than question the relevance of the proposal.
i.e. in Austria many IT techs and devs are called (at the doctor's office or in formal settings) "Mr. Engineer" ("Herr Ingenieur") if they fulfill some formal criteria and get licensed. A further qualification is becoming a federally certified civil technician for IT (Ziviltechniker or Ingenieurskonsulent) - also something that public sector contracts sometimes mandate.
Software around the world is engineered - it just often isn't in California.
What that means in practice is that they study math and physics for the first 2-3 years of their degree, instead of computer science or software engineering.
Does that make them build better systems than Californian devs? Based on company revenues and salaries, I’d say no.
Majority of silicon valley devs are immigrants though, they are good because they are sourced and filtered from all over the world not thanks to American education.
Keep in mind that being the major economy also carries costs - the US spends many times as much as other countries on its military and has no realistic path towards spending less.
And either way, their economy has been wildly succesful since the 1800’s.
Now, there are several types of taxes you pay in Germany based on your income. One of them is the income tax, the other is called Gewerbesteuer (maybe best translated as "commmercial tax) - and the Gewerbesteuer can be significant (something like 12% of your income). Many freelancers are exempt from the Gewerbesteuer, and so are software engineers. However, I learned that you only qualify as a software engineer if you have actually studied software engineering or a closely related field. I had studied business administration. I tried to explain to them that I have been working as a software developer for over 10 years, literally doing the same job as somebody who had studied software engineering - to no avail. They woulnd't exempt me from the Gewerbesteuer.
I'm not claiming that I'm an "engineer" or that my computer science fundamentals are as good as somebody who studied computer science, but the tax exemption shouldn't be on some bureaucratic difference like what you studied a decade ago, rather on what kind of job you're doing.
Welcome to Germany!
As for formal education - I've seen dozens of people with an engineering diploma who barely can write a FizzBuzz, so it is not the best indicator and mostly people don't look at it when it comes to recruitment aside from big corps. Although that kinda changed lately as junior positions started evaporating and without experience the diploma is the main thing they check.
But I never really studied software engineering or anything related, only Electric Engineering.
But nobody in the government knows that. I don't have my diploma papers with me and have no time or interest in going to my country of origin and ask my university for it.
With a degree in computer science you are also allowed to call yourself an engineer in Germany, for anyone reading this and wondering.
Can you explain the difference between 'engineered' software, and the rest? I mean other than being created by someone with an engineering certificate or whatever.
But, for me it implies that it gets Planned and Worked on formally like other engineering projects, Lists of Requierements, Detailed Propossals, Design documents, BOM's ,Gantt Charts, the whole shebang
The alternative being the ultra lean SV style, where a project is lucky if even the public facing documentation is not at least N-months out of date
Normally in startups it is very common to have the only available documentation be the code itself.
A gatekeeping organisation you have to pay to enter the workforce isn't the same as something actually being "engineered".
For something like this to work there needs to be a strong and technically competent government that the tax payers trust. This is presumably why it works in Austria and not the USA.
You can enter the workforce as a developer here without being licensed or credentialed at all, it's absolutely no problem (legally speaking) - it's just an obvious sign of a commitment to engineering responsibility and quality.
> they fulfill some formal criteria and get licensed
Can you tell us about the process to get licensed? Do you think it adds value for software developers?And just to troll a little bit: Do they make you do any hard problems from HackerRank or LeetCode?
Engineers shouldn't compromise on things like safety, security, legislation, budget, properly documenting, properly communicating with others, etc. Same as anyone working professionally with code should, no matter the title.
But there's nothing that says that engineers should only be doing groundbreaking or interesting work.
The "artist" analogy works much better.
EDIT: Perhaps the main difference is what psychoslave mentions below – engineers are expected to question the relevance and necessity of requirements, and work together with business, rather than just doing as asked.
He defines the Engineering Method as: 'Solving problems using rules of thumb that cause the best change in a poorly understood situation using available resources.'
In that sense a Software Engineer would not necessary need to know all the complexities of the complete system to make something work as specified. And I would equate a 'Programmer' more like the Scientist or Mathematician in this case.
Funny how there are so many different ways to look at a title.
I went to an engineering school. Actual engineers design bridges and machines and biochemical whatnot, and of course require licensing. I push code around.
I even try to subvert company culture and say things like "Well developers will need to update that API" instead of "engineers".
I would perhaps even like there to be a license, because then we would maybe get way fewer people interfering with a technically sound decision process. As it is right now, every manager dude thinks they know better what to build than the actual programmers/engineers, even if the programmers/engineers work on the product for years already and have gathered experiences the frequently rotated managers lack. It is always soooo convenient for the manager types to defer good enginnering endlessly, so that ultimately it never happens and shitty products are made.