She did! A few years ago I actually tracked down the source of that, which was an interview done for an obscure textbook and republished it on my blog if you are interested in learning more: https://catskull.net/interview-with-margaret-h-hamilton.html
> During the early days of Apollo, software was not taken as seriously as other engineering disciplines. Though in fact we had a complex system of systems, we weren’t getting credit for what was a legitimate field. It was out of desperation I came up with the term, to say: “Hey, we’re engineering too.” It was an ongoing joke for a long time. Then one day in a meeting, one of the most respected hardware gurus explained to everyone that he agreed with me. The process of building software should also be considered an engineering discipline, just like with hardware. It was a memorable moment.
The idea that it was believed you could build a reliable and deterministic system without proper engineering methods, today, would get a laugh out of most people in the industry. Interesting how the times have changed.
... an audacious choice of words according to the Austrian association of (real) engineers that get all red-faced and jittery even thinking about it! These peasants, bah, they can't even...
And gate-kept by just as many. I wonder what she'd take more issue with. My understanding is she wanted to elevate people who work on software, not draw a line around it.
If I had the option I would prefer the term "engineer" be gatekept.
Terminology can help elevate something that's often overlooked, but if every programmer gets called a "software engineer" there's no way to distinguish the special stuff.
It is not a protected title in the U.S., China, or India, and yet you could say those are three countries most responsible for writing the software that the rest of the world uses. I would argue there is some connection.
It is easy to see how gatekeeping is particularly valuable for those with the means to distinguish themselves. But for the rest of us, people who want to work on or consume a product, does a field benefit more from having an open gate or closed?
If the title is backed by professional standards, standards by which someone can lose the title and be held legally liable, then I can see the gatekeeping as valuable. If it is used to restrict who can write software, then I would see it as detrimental.
That seems like the best way to parse the issue. To push back on my earlier point, some kind of standards enforcing mechanism doesn't have to be exclusionary as long as the path to earning the credential is open to everyone. It is probably more important now than it has ever been, since anyone can produce code now without understanding it.
The use of engineer as a title is endemic in some industries that don’t involve software. A mechanical superintendent at a drilling company I worked for like to refer to (drilling) mud “engineers” as mud salesmen because they were always trying to sell you more product.
You only need a P.E license if you are going to perform certain specific tasks. For example, in some jurisdiction, plans for a building above a certain height or floor size must be signed by a licensed P.E.
Not all engineering disciplines are covered by a P.E exam.
> I believe in some European countries you’re not allowed to call yourself any kind of “Engineer” without being a member of a professional body?
> So ironically if that was the case Margaret Hamilton would not have been allowed to coin the term
Had she been in Europe, she would not have been a part of the Apollo project, something so cutting edge it required new disciplines to be invented like Software Engineering, for the term to be coined in the first place.
At the time it was mostly hardware engineers who did this, along with people with math background (especially discreete math). Most of the cutting edge applications for computers were in numerical simulation for engineering, so most software engineers would have been electrical/electronics engineers.
There have been accredited Software Engineering programs in Canada for more than 20 years now.
So are you okay with actual engineers having a problem with the term used in software since you support gatekeeping? Engineer is a term that was used far before software was a thing. So if you support gatekeeping, you should let engineering refer to "actual work" not "code" and find a new term that doesn't engulfs the "original meaning".
Or just accept terms change as society and technology does.
> Engineer is a term that was used far before software was a thing. So if you support gatekeeping, you should let engineering refer to "actual work" not "code"
This is so jumbled. You mean to say that before software, all work was physical? Nah, engineers spent and spend a lot of time at the drawing board, too. It's just that they're not sitting at the plastic table with a sticker of a dog with a toolbox on it.
If you don't follow rules and practices that are external to you and your employer, as you might in aviation or nuclear reactor software, there's not even a chance it's engineering. It can be "software engineering", sure, just the same way "software architect" is not an "architect".
> NCEES will discontinue the Principles and Practice of Engineering (PE) Software Engineering exam after the April 2019 exam administration. Since the original offering in 2013, the exam has been administered five times, with a total population of 81 candidates.
If you don't want the same rigor, if you can't handle the same rigor, you don't get the same respect. Because you don't deserve it.
>> NCEES will discontinue the Principles and Practice of Engineering (PE) Software Engineering exam after the April 2019 exam administration. Since the original offering in 2013, the exam has been administered five times, with a total population of 81 candidates.
>
> If you don't want the same rigor, if you can't handle the same rigor, you don't get the same respect. Because you don't deserve it.
It's an interesting opinion, but the reason nobody took the exam is that, unlike other PE disciplines, there are no jurisdictions with legal requirement to hold a PE license to write software.
For example, here for a building to be constructed, the plans need to be approved by a licensed PE if it's above a certain height and footprint. Note that you only need one PE to approve, not that all engineers working on the design have to hold PE licenses.
That's just your opinion. If you support gatekeeping, you support retaining the original meaning of words. The original meaning of engineering did not include software.
So it is a contradiction if you support gatekeeping but also only when its convinient to you.
It doesn't have to be that binary. The important part of the meaning is the rigor and responsibility, not the field. Actual engineering has expanded to new fields multiple times.
And if the "convenient to you" point is also supposed to apply to me, nope not at all. My programming would not qualify.
> A professional engineer is competent by virtue of his/her fundamental education and training to apply the scientific method and outlook to the analysis and solution of engineering problems. He/she is able to assume personal responsibility for the development and application of engineering science and knowledge, notably in research, design, construction, manufacturing, superintending, managing, and in the education of the engineer. His/her work is predominantly intellectual and varied and not of a routine mental or physical character.
[..]
> His/her education will have been such as to make him/her capable of closely and continuously following progress in his/her branch of engineering science by consulting newly published works on a worldwide basis, assimilating such information, and applying it independently. He/she is thus placed in a position to make contributions to the development of engineering science or its applications. His/her education and training will have been such that he/she will have acquired a broad and general appreciation of the engineering sciences as well as thorough insight into the special features of his/her own branch.
If programmers can't be bothered, if their employers don't want that, either (if not even less), and yet you say times just magically change, so now people who don't fit that description get called engineers -- how do you call those who do fit that description, who still do those things? "Real engineers"? "Classic engineers?" I don't even care, but you gotta have something, you can't just pretend the real, practical, night and day difference between these things doesn't exist.
> There are several places where the use of engineer is often used improperly. They include:
> Software or data engineer: In most provinces*, unless someone is licensed with a provincial or territorial engineering regulator, they cannot use the title engineer, or any variation. This applies even if the title is assigned by the employer. Alternative titles can include:
> Data analyst, Data scientist, Software specialist, Software technician, Data technologist, Data manager, Data technical expert.
As for Missouri:
> [..] any person using the word "engineer", "engineers", or "engineering", alone or preceded by any word, or in combination with any words, may do so without being subject to disciplinary action by the board so long as such use is reflective of that person's profession or vocation and is clearly not indicating or implying that such person is holding himself or herself out as being a professional engineer or is willing or able to practice engineering as defined in this section
So I say the title "software engineer", in the slop hallucination sense it's too often used, where the sources either don't exist or say the opposite when you look stuff up, carries no information, other that a person is dishonest, or got fooled into repeating something dishonest. They may or may not be a programmer, they may be a man or a woman, but they're a charlatan or victim of charlatans for sure. And furthermore, the petty and stupid way people react to this fact being pointed out means they either have bad motives or Stockholm syndrome. I don't care which is which, since both are wrong.
In the US PE is protected, not the vague "Engineer" tittle.
So Missouri would only go after someone representing themselves as a licensed PE without holding a PE license.
The Canadian law is full of exemptions for non-engineering profession still being able to use the tittle "engineer". Train engineer, airplane engineer (for a driver and maintenance technician respectively).
Up at the software level, the relevance of that distance is only the barest hint of physics behind a frosted glass window. This does not successfully counter what GP was saying.
Quite a few practical constraints on software are imposed by the physical world and our current ability to construct devices out of it. Working within those constraints to provide value that people can depend on isn't the worst definition of engineering I've heard.
I just wish that software engineers had a similar level of accountability that an engineer building something like a bridge is held to. When a negligent software engineer causes harm to people nothing typically happens. No real risk of lawsuits, or loss of license, or worry about their liability insurance. This also means that software engineers can't effectively push back when their bosses want them to implement things that they know are insecure or dangerous
Well, Meta just settled with states to the tune of 17 billion dollars for harm caused by its algorithms.
Air Canada, a few years back, was found liable when its ai bot promised discounted fares to a customer.
Companies are getting hacked and held to ransom regularly so bad software is getting punished alright.
Maybe the guy writing the actual line of code (or the guy in whose name AI code is being pushed to git) isn’t getting punished but software is definitely being scrutinised for ill effects.
Now please show me the consequences from the Hugging Face incident. The company or the engineers individually apparently have nothing to be worried about.
> Meta just settled with states to the tune of 17 billion dollars for harm caused by its algorithms.
Those were working as intended, unlike a bridge that collapses because of bad design.
> Air Canada, a few years back, was found liable when its ai bot promised discounted fares to a customer.
That was a solid win for AI accountability, but it only cost them $812.02. They most likely made money using that lying AI bot. It wouldn't take a week of paying just one employee minimum wage to hit $812. Last I heard they're still using the chatbot.
It's true that bad code can cost a company something, but its obviously not costly enough that they take the needed actions to avoid shipping it.
Companies get sued, programmers generally do not. Companies don't really care about being sued either, as evidenced by the fact that they still don't bother to prevent bad code from being shipped.
Obviously, I won't delete this, I actually don't see why. I can critique anything I want. And it's not fair saying a famous person like Hamilton coined some term when probably she heard it from someone else.
Terming "software engineer" is nothing of genius, it's literally taking two logical words and mending them together. One day I will say "plumber engineer" and now I'm gonna be the one coined that term.
People blow things up out of proportion. They should focus on other things, of course, in my opinion.