Having said that, this is a hacker/cracker debate; the ship has sailed on calling developers (and tech employees) "engineers".
I agree with you though. It's like holding on to "literally" being used solely for the opposite of "figuratively." It's pointless.
From my recollection, Software Engineering became A Thing at schools long before companies started calling their employees Software Engineers.
My general thinking is that engineering is a more practical application of science. Colleges don't have a Department of Development. They have a Department of Engineering. So even though it doesn't quite fit, maybe we can just stick the degree in the engineering department and obviously call it Software Engineering.
So schools do this - they create this "engineering" discipline that doesn't quite fit engineering. It seems obvious that companies and people are going to then follow.
I remember when I was looking at schools (~1990) many schools didn't even have a separate computer science degree, much less software engineering. Often it was a sub-degree in the math department. OTOH I'm pretty sure 'software engineer' as a title was already well under way by then.
Maybe it was just the jobs I was looking at. They all had "programmer" or "developer" in the title. But it was around when programmer started becoming bad, and over the next 4 or so years they all started morphing into "engineer".
Should we segregate people like because they don't have a formal education? What if she develops an algorithm superior to every other one in the field for a specific use case? Is she not an engineer, despite using the same skills as anyone else?
Engineer has a specific connotation to the outside world, developed over centuries. We'd like to use it because we tinker with programs, and invent new things, but it's misleading to the general public. Should I call my self a Software Surgeon because I fix up bugs?
You cannot do that with surgery. Or, well, you theoretically can, but it's much more hands on and almost certainly requires in-person mentorship.
But I take it your answer is "yes", then - if someone is a better software engineer and an accomplished luminary in the field, who progresses engineering itself forward, we shouldn't call her an engineer without a degree. Is that your position?
At the risk of being accused of developing a strawman - I'm not. I'm developing a baseline. Calling someone an engineer without a formal education is binary. If it can be done under any reasonably achievable circumstance, it's fair to say that you can be an engineer without a degree.
Words change over time, like "gay" (happy -> homosexual), "chaperone" (a type of hat -> someone who looks after others), "clue" (a ball of yarn -> a piece of evidence). I hope you're not arguing that words shouldn't change.
Traditional engineers built fortifications and siege weapons, but now we have "chemical process researchers" or "chemical process designers" calling themselves "chemical engineers". What gives? Like other engineers, software engineers design real-world systems in such a way as to minimize cost while meeting objective requirements. Similar to mechanical engineers, software engineers build real, physical machines that perform quantifiable tasks--the major difference is that the software engineers are designing the non-tangible parts of the machine.
I'm not saying that tinkering with programs makes you a software engineer. Kids (or adults, more likely these days) playing with erector sets aren't engineers either.
As you say software engineers build real physical machines, building a crud app doesn't make you a software engineer, but many people call themselves software engineers without applying any hard sciences.
The fact that carpenters build houses does not diminish the accomplishment of engineers who build skyscrapers; the fact that novice programmers can build CRUD applications does not diminish the accomplishment of software engineers. The only reason that this is an issue today is because most people are old enough to remember when "software engineering" was not a thing.
I also worked with several systems engineers who did not have engineering degrees. I don't know of any universities who have systems engineering bachelors programs, but masters programs are semi-common.
I am highly biased though, I think education of this type should be something like 90% hands on 10% theory, as apposed to the opposite of what it is. I think its more important to have set up a website while working with several others using some sort of source control, and then load tested it with a million hits than to be able to write a formal proof on why some algorithm you can look up on wikipedia is NP complete. - if that person wanted to be a web developer
I understand where terms like software engineer and software architect come from but they seem silly to me.
Still, not as silly as things like ninja, rock star, jedi, etc
Most engineers live and die by standardization, rules and responsibility that most so-called software engineers would hate.
Also, to say that software engineers care nothing for standardization, rules and responsibility is unfair. Software engineers use standardized languages such as C and Java. We often use standards from the IEEE, IETF, and ISO. Depending upon the industry we support, we are often bound by very strict rules and regulations. Examples include software engineers in the defense, aerospace, banking, and health industries.
Bottomline is software engineering is just as valid as any other form of engineering.
What do they mean to a Medical Doctor? They are basically the reason you trust a MD instead of just someone who learned all the same stuff.
> software engineering is just as valid as any other form of engineering.
Little e engineering the process perhaps, but this is big E 'I'm an Engineer and you can trust me' the title.
Face it, developers call themselves Engineers because of the work that goes into obtaining the title in other fields. They are riding the coat tails of the process to get the title of Engineer without doing the work themselves.
If I were a P. Eng and had to stamp the PLC programs I write I would be in a much different boat when bad things inevitably happen. I could be sued and held liable for lost revenue.
There are much different risks and liabilities in embedded software where lives are at stake, and in machine or process control where physical damage to property and equipment could be a result than in any other business where the worst thing that can happen is lost revenue.
I have never heard of anybody stamping a program, no matter what the risks and liabilities are it does not seem to be a requirement, but I think someone calling themselves a Professional Software Engineer should be stamping their work and taking on liability for it the same way professional civil, mechanical, electrical, etc engineers do, if they are going to call themselves Engineers.
Does anyone have examples or anecdotes of a program being "sealed" by a professional engineer?
I think the line between "software engineers" and all other titles is that "software engineers" should be using physics and hard sciences the same way civil, mechanical and electrical engineers do, but it so happens that they are using hard sciences in programs. Software Engineers may also have to apply computer science to solve their problems, but everyone applying computer science isn't necessarily doing engineering. defence, health, aerospace = software engineering to me, banking not so much, unless you stamp your program and are ready to be sued for everything you got if the customer has any excuse.
And why would they hate that? Because now they would only be responsible for things they actually agreed to before? Or because they would have a guideline they could cite "sorry, standard foo says this and this and we have to use it" without the customer crying that they want their new software to do something which is simply not possible? Or the same with rules?
You seem to have the strange misconception that "software developers"/"software engineers"/"problem solver who uses software to get the job done" (The last one is my favorite, but somehow people don't want it on their cards ..) don't have the same responsibility as other engineers. This may be correct for some and is completely wrong for others. We lack the safety nets provided for other professions, not the responsibility. For examples look at all the times something exploded/didn't reach the right star/killed a few people when some software was buggy.