Hacker News new | ask | show | jobs
by randomdata 701 days ago
According to the dictionary, engineer is defined as: A person who designs, builds, or maintains engines, machines, or public works.

You may have a point that the prevailing idea of what engineering is does not recognize software as an engineering discipline as it does not fit into any of engines, machines, or public works. But if we were to include software, surely all software practitioners are people who design, build, or maintain software? Even the web API guy from the story is an engineer on that end.

3 comments

You are totally misunderstanding me. I am not saying that software engineering does not exist, but that most people who are software developers are not software engineers.

If you look at what engineers are doing in other disciplines you will find that in software there are some people doing the same thing. They are doing things like drafting requirements, designing, defining, simulating, overseeing, but don't spend much, if any, time actually building things.

> They are doing things like drafting requirements, designing, defining, simulating

Which is design; captured in the definition.

You're welcome to invent whatever meaning for engineering you want (although you kind of need to define it, in that case – we can't read your mind), but going by what most people consider engineering to be, either all software developers are engineers or none of them are.

>either all software developers are engineers or none of them are.

Why? I have worked jobs where I definitely didn't do any real design and was just there to implement certain things. I absolutely wouldn't call what I did engineering.

Again, "build" is also captured in the prevailing engineering definition (although software may not be).

What is the significance of you not wanting to call it engineering?

>What is the significance of you not wanting to call it engineering?

It conflates two separate things with not a great amount of overlap. It also describes two different paths, an academic path and a tradesman path. The distinction is obviously useful in describing people/roles/activities.

You could also ask why we are conflating machinists with engineers, clearly machinists are building things, definitely more so than engineers.

> You could also ask why we are conflating machinists with engineers

You could, but it would be rather silly as machinist is clearly a subset of engineer (within what most people deem engineer to mean). It is not a conflation, it is a more precise term. Like using "surgeon" over "physician". It is not like a surgeon has anything to do with your family doctor evaluating your common cold symptoms. Those are entirely different jobs too, yet absolutely get grouped together.

The problem here, it seems, is that we've never come up with generally accepted terms to differentiate the different roles under the software engineering umbrella. I expect that is because the differentiation doesn't matter beyond trying to appeal to some pointless emotions.

I think "engineer" as a protected title refers more to their status as a professional in the strict sense of the word.

If you are a professional, the norms of your profession override your loyalty to your employer. Your boss cannot override your professional judgment, unless they are also a member of the same profession and willing to assume responsibility. And if something goes wrong, it can be the professional who will be held liable rather than the boss.

It’s a protected category in my country.

“Software Engineering is the part of Computer Science that is too hard for the Computer Scientist.”