this post was submitted on 22 Nov 2023
47 points (89.8% liked)

Programming

17406 readers
111 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS
 

In your opinion what's the difference between the two? In my opinion both terms are frequently used interchangeably in the workplace.

But I'd like to consider myself as an engineer, because although I don't consider myself to be good at it, I think I cares about the software that I worked on, its interaction with other services, the big picture, and different kinds of small optimizations.

I mean, what is even engineering?

you are viewing a single comment's thread
view the rest of the comments
[–] grue@lemmy.world 7 points 11 months ago (7 children)

As a former civil engineer who now works in software, "software engineer" irks me. "Engineer" means you're supposed to be licensed and you have a responsibility for the public good above your responsibility to your employer.

[–] FMT99@lemmy.world 5 points 11 months ago (2 children)

Do engineers take some sort of hippocratic oath?

[–] orockwell@lemmy.world 4 points 11 months ago (1 children)

Robert "Uncle Bob" Martin, author of several foundational texts, and coauthor of the agile manifesto provides one, which I think is good: https://blog.cleancoder.com/uncle-bob/2015/11/18/TheProgrammersOath.html

[–] elias_griffin@lemmy.world 2 points 11 months ago* (last edited 11 months ago)

Very intersting! I'm not so sure about the oathiness of:

  1. I will make frequent, small, releases so that I do not impede the progress of others.
  2. I will do all that I can to keep the productivity of myself, and others, as high as possible. I will do nothing that decreases that productivity.

But I think the real oath impact there is:

  1. I will continuously ensure that others can cover for me, and that I can cover for them.

In Government work that, ^, is considered career ending.

I will improve upon this, thanks for the awareness.

[–] Miaou@jlai.lu 0 points 11 months ago

Of course we don't, otherwise social media/tobacco/petroleum industries wouldn't exist.

[–] ShrimpsIsBugs@programming.dev 5 points 11 months ago (1 children)

As a former civil engineer who now works in software, "software engineer" irks me. "Engineer" means you're supposed to be licensed

This really depends on the country you live in. In some countries you need a license, some need you to have some kind of university degree and others don't care at all. So we cannot really use that measure as a definition.

[–] lysdexic@programming.dev 3 points 11 months ago (1 children)

This really depends on the country you live in.

Not really. There are two aspects to this problem: one is how people assign arbitrary and meaningless titles to themselves, and another is regulatory requirements by jurisdictions to be able to legally assume a role.

I can call myself senior dubstep engineer, and that's perfectly fine. I can't call myself a civil engineer and sign off on a construction project or a permit. No one cares if I'm actually a senior dubstep engineer or if I'm junior at best. In the meantime, you will get in trouble if you try to sign off on a construction project, no matter of how stubborn you are with regards to calling yourself an engineer.

[–] ShrimpsIsBugs@programming.dev 1 points 11 months ago (1 children)

another is regulatory requirements by jurisdictions to be able to legally assume a role.

This is exactly what I mean with "this depends on the country you live in". Different countries have vastly different regulatory requirements. Taking UK as an example, you can call yourself civil engineer all day long without having to worry any legal consequences because there simply is no such thing as a licensing system for engineers.

[–] lysdexic@programming.dev 1 points 11 months ago (1 children)

Taking UK as an example, you can call yourself civil engineer all day long without having to worry any legal consequences because there simply is no such thing as a licensing system for engineers.

Britain's Engineering Council disagrees.

https://www.engc.org.uk/international-activity/access-to-practise-in-the-uk/

[–] ShrimpsIsBugs@programming.dev 1 points 11 months ago

Well idk the details in that specific case, this was just the first example I found. My point is, that different countries, states and institutions disagree on this matter. There is no universal rule that defines what you need to have achieved to call yourself an engineer.

[–] superb@lemmy.blahaj.zone 5 points 11 months ago (1 children)

This is seriously what’s missing from the software field. There is no rigor or responsibility

[–] PoY@lemmygrad.ml -3 points 11 months ago

there is.. but it is expensive and the tech is constantly evolving

[–] kralk@lemm.ee 5 points 11 months ago

Hah, my dad (electrical engineer) had the same complaint when I studied sound engineering 😂

[–] lysdexic@programming.dev 3 points 11 months ago* (last edited 11 months ago) (1 children)

As a former civil engineer who now works in software, “software engineer” irks me. “Engineer” means you’re supposed to be licensed and you have a responsibility for the public good above your responsibility to your employer.

This. I think some people don't understand that titles are not whimsical status symbols and hold actual legal and regulatory meaning. A random guy can hold an engineering degree and not be an engineer, while a random guy with no degree can actually be a engineer if he jumps through all the hoops.

In engineering fields, being a member of a professional engineering body is critical to work in the field, because the main value proposition of these credentials is to prevent incompetent people from working on critical tasks which can potentially have important consequences to society if they are done poorly. For example, people can die if an engineer signs off on a project for a residential building that collapses due to shoddy work. If that happens then the engineers who signed off on the project will be investigated and if they are held responsible not only can they be held criminally responsible for their work but their license will be pulled, which is society's response to ensure this problem won't happen again.

[–] DroneRights@lemm.ee -1 points 11 months ago

And the criteria for which bodies are considered professional can often come down to government or capitalism, both of which are very flawed. It should come as no surprise that software developers, who tend to be anarchists(see: the existence of FOSS), are distrustful of statist and capitalist regulatory bodies.

[–] atheken@programming.dev 1 points 11 months ago* (last edited 11 months ago)

Just to be clear, that is not exclusive to “engineering,” as other professionals have similar legal requirements (doctors, lawyers, fiduciaries).

More generally, on a personal level, people are expected to act with integrity, and we have laws that provide them legal protections for whistleblowing.

The actual practice of engineering is about problem-solving within a set of constraints. Of course the solution should not harm the public, and there are plenty of circumstances where software is developed to that standard.

When a PE stamps a plan, they are asserting that they personally have reviewed the plan and process that created it and that it meets a standard for acceptable risk (not no risk!). That establishes the boundary of legal liability. In software, we generally do not have that process that fits in a legal framework, but that doesn’t mean that professional software engineers aren’t making those assessments for life-critical systems.

For other kinds of systems, understand that this is a new field and that it doesn’t have the bloody history that got “real engineering” to where it is today. A lot of the work product of most software engineers just don’t have stringent safety requirements, or we don’t understand the risks of certain product categories yet (and before you try to rebut that, remember that “building codes are written in blood” because people were applying technology before it was well-designed/understood).

Anyway, “engineering” is defined by a lot more than if you or your boss has a stamp (and in point of fact, there are plenty of engineers in the US that work as engineers without being a PE, or with any intention of ever having the stamp. Are they real engineers?)

[–] sirdorius@programming.dev 1 points 11 months ago

“Engineer” means you’re supposed to be licensed and you have a responsibility for the public good above your responsibility to your employer.

Good point. We definitely don't, and it's what's causing huge amounts of trouble in the world, rather than using software for the greater good.

But engineer sounds better by some definitions, and it strokes the ego of employees, so companies like to use it to give more prestige to the role.