Hacker News new | ask | show | jobs
by lampshades 1038 days ago
Designed a bridge that injures no-one and collapses a few hours later? 5 year suspension.

Programmed a faulty flight control system that kills hundreds of people and ground all planes that use it for nearly two years? Probably a promotion, if I had to guess.

Can someone remind me why software engineers can't be held to higher standards?

12 comments

Because they would involve holding the entire managerial chain to that standard too. Plus, it’s slower, and we can’t miss those product metrics, right?!?

It can be done. Places like NASA do it. For JavaScript too even.

…but it has to be a culture thing. Either by choice or by regulation. Because otherwise it ends up being about shoveling crap as fast as possible.

I have an acquaintance who works for one of NASA's laboratories as a technician.

The simplified distinction as he explained it to me is:

Engineers are the guys who painstakingly design things, with reams of university degrees as appropriate for their credentials.

Technicians are the guys who painstakingly implement the engineer's designs on paper into physical things. Academic credentials not necessarily required.

The vast majority of the people who call themselves or are called "engineers" should not be called engineers.

There is also the subset of actual software engineers (incl. degrees) that are hired to rapid fire features. In fact most engineers are hired to do this, because move fast and break things. Usually telling a PM that feature X needs proper analysis and design and that can take multiple sprints, they go “how can we break it into smaller pieces so we can deliver each sprint”. Sometimes you can’t do that. You engineers simply get into developer mode.
This is a good argument for protecting titles like "engineer". Programmers love calling themselves engineers, but they'd better be careful in places where there are consequences attached to the term.

The system is useless without protections in place to prevent it from becoming a racket, but I'm not opposed to such a system.

It *is* protected where this fellow practised. It's also a 5yo story. You can't be an engineer in Canada without being held to the same values (it's a regulated title[0]). Much to the chagrin of boot-camps, and US employers.

[0]: https://engineerscanada.ca/publications/public-guideline-on-...

Also we also have pEng which means professional engineer. Most of the Software Engineers in Canada (even though with actually engineering degrees) are not professional engineers.
I know, that's why the suspension was possible in the first place.
That would do nothing if so called engineers are not given the "power" to refuse to implement something when they are ordered to by their PM.
Do you think normal engineers have any more power than a programmer? In the end, they're employees for a business, with a boss breathing down their neck to just sign off already.
All at will employees have the power to refuse to implement something when ordered to by their PM. Quit. “I was just following orders” doesn’t even fly for situations where refusal can get you strung up for treason.
I have in the past successfully pushed back and refused to work on projects I thought were ethically fraught. Problem is, your company will just say "Sure! No problem! We take care of our developers here at Initech! Jimmy, two desks down, would be happy to write that code!" So the problematic software always gets implemented, despite one person's objection. Because we have jerks like Jimmy.
But in that case, if the project turns out to be illegal or harm people, Jimmy would be on the hook and not you.

Jimmy can be a jerk, but he'll be careful if he'd risk being employed in his home state if he signs off on something he should know is unacceptable.

If my greatest accomplishment in life is that I wasn’t Jimmy then I guess I’d die pretty proud of that.
Oh yes. Software engineers are drones that are unable to refuse to do things they believe are unsafe.
Software engineers have kids to feed.
> Programmers love calling themselves engineers, but they'd better be careful in places where there are consequences attached to the term.

At least in the US, you can refer to this case where the state of Oregon tried to be as anal about the word "engineer" as you suggest and got slapped down. The whole case was a lot of fun because not only was the engineering board using unconstitutional restrictions of free speech, they were on the provably wrong side of an engineering argument while doing it, demonstrating just how stupid the attempted restriction of speech was in that case.

https://ij.org/press-release/oregon-engineer-wins-traffic-li...

Perhaps in places where there is no First Amendment equivalent your suggestion holds weight.

I suppose it can't work in the USA, then. The American idea of freedom of speech is pretty unique, though, so it shouldn't be that much of a problem in most of the (free) world.
Ironically, the (electrical) engineer who had his free speech rights protected in the case was Swedish. And the (correct) argument he was ultimately allowed to make in Oregon triggered an update in international guidance on traffic light timing. So the rest of the (free) world will actually benefit regardless!

https://www.ite.org/technical-resources/topics/traffic-engin...

> This is a good argument for protecting titles like "engineer".

That battle was lost long ago. I saw a truck driver by a ‘tree surgeon’ the other day.

Tree Surgeons is the name of the company that trims my trees. They do employ arborists which is slightly above landscaper in qualifications
Software "engineers" refuse to believe somethings is their fault, and push responsibility to everyone else but the "engineer".

My professors had no qualms about failing people because if you are not good enough to pass an exam, you are not good enough to be trusted with peoples lives.

> Can someone remind me why software engineers can't be held to higher standards?

because most of the time, civil engineers employ proven techs to solve problems that have been solved 100 or 1,000 times already. software engineers, I mean real engineers, face completely new issues in every aspect of the job on daily basis.

just remind me how much changed for civil engineering in the last 20-30 years? how is that compared to software engineering? let's just be honest, those people shouldn't be called engineers, they are more like technicians, as most part of their jobs don't involve anything new.

dude most software “engineers” copy paste code from stackoverflow and load up a library of functions written by somebody else

I guess the code is from ChatGPT now so that’s a big advancement?

Because their employers want them to "move fast and break things". Demanding documented requirements and a tight change process is something that's more likely to get a SE fired than be appreciated.
> every state regulates the practice of engineering to ensure public safety by granting only Professional Engineers (PEs) the authority to sign and seal engineering plans and offer their services to the public.

There's a big difference between the typical so-called "software engineers" and actual Professional Engineers that are qualified to put the P.Eng. designation next to their name.

I thought the root causes of 737 Max failure is (1) marketing’s choice to make a new plane that pilots with existing 737 certificate can fly with little or no training (2) the lack of a third sensor.

Why is this the software engineers’ fault?

There were several factors causing the accident:

1. The AOA sensor was faulty

2. The installation of the AOA sensor apparently didn't check for proper operation

3. The MCAS system was connected to only one of the two AOA sensors

4. The MCAS system had too much authority

5. The LA pilots did not think to turn off the stab trim system when it ran away

6. The EA pilots did not receive, read or remember the Emergency Airworthiness Directive sent to all MAX pilots after the first crash that basically said to turn off the stab trim when it runs away

7. The first MCAS incident was when the crew simply turned off the stab trim and landed safely. The information about the faulty sensor was not passed on to the next crew, who crashed.

Well the root cause of this bridge failure was (1) the municipality’s choice not to pay for a geotechnical investigation and (2) not using extra helical piers, so why is this failure the structural engineer’s fault?
Because it wasn't a bug in the software. The software worked according to spec. The spec was wrong.
Has this happened? I can't imagine something like this where the software company is not liable. But maybe I'm too naive.
Politicians kill far more people through corruption with 0 consequence though.
Fair point. Maybe us programmers are just a class above professional engineers.

Should've been a politician.

What was the cause of the plane incident you cited?
Can you link the event you're referencing?

I'm unfamiliar.

As part of my undergraduate engineering course work we had more seperate threads and more exams than almost every other degree on campus including law and medicine.

Part of that was civil, part electrical, part electronic, part mechanical, part drawing, part on site saftey, part drawing, etc.

Another key part, critical to passing, was ethics, civil responsibility and a roll call of great engineering screw ups that killed people as case studies of how badly things can go wrong.

If Software Engineering were to become an equivilant then a study of when software goes fatal would be mandatory.

I recall Therac 25.

I didn't hear about that fatal aviation software.

Boeing 737 Max 8
https://www.wisnerbaum.com/aviation-accident/boeing-plane-cr...

I didn't read the whole thing but it doesn't look like software modifications were the main issue.