News for hackers. Stuff that matters.
Re:Is Software Engineering Real Engineering? by _fat_santa on Thursday October 05, 2023 @09:57AM (#37778679)
In many ways SWE is like real engineering but with some major differences. I could use the classic example "we aren't building bridges" but that's too simplistic. I think the biggest difference between us and the rest of engineering is the "method of delivery" and how that affects the other processes.

What I mean is imagine if a car company found a defect with their cars, they would have to issue a recall and update their vehicles, a long an expensive process. The key difference is with SWE, we can just push an update and have the thing fixed, there are many possible scenarios here but overall even if you had to push a patch to customers that are running in an air-gapped env, even that would be easier than a traditional recall in engineering. For me this single fact changes the entire dynamic of SWE compared to traditional engineering.

In traditional engineering you can't simply put up a bridge that would support 500 cars and say "oh we'll update it to support 5000 cars down the road", but you can totally do that with SWE application that can only support X number of users at the start but plans to scale up to support more. This thinking of "we can address this down the road" affects practically every decision in SWE compared to traditional engineering outside of specific cases.

Every engineer deals with constraints and finds ways around those constraints. SWE has a set of constrains that is very very different from virtually all other engineering disciplines, and for that reason you get the constant question of whether SWE is even real engineering.

Re:Is Software Engineering Real Engineering? by velcrovan on Thursday October 05, 2023 @10:29AM (#37779068)
What makes “real engineering” the correct paradigm (and legal framework) for a profession isn’t the method of delivery, it’s the failure mode and how that aligns with cultural values.

In the simplest example: if you ship a car with a bug in its RTOS, people could die. It doesn't matter how easy it is to update. As a culture we’re generally opposed to preventable deaths. In other professions we have set up a regime of legal liability and professional licensing as guardrails and incentives to prevent that failure mode. We should treat software engineering the same, at a minimum in applications where lives are at stake.

Other non-lethal failure modes should also be considered (Experian, anyone?). We may have culturally decided by default or accident that data leaks are no big deal. If we actually did think they were important, it would make sense to have licensing and liability frameworks to reflect that.

The fact that software has fewer practical constraints than building structures is an excuse masquerading as a reason for not having even the most basic controls in place.

Re:Is Software Engineering Real Engineering? by davedx on Thursday October 05, 2023 @10:33AM (#37779109)
That doesn’t make sense to me. If a software bug can cause a death, like in a car, then the failure modes and legal consequences are the same as traditional engineering. What’s the difference?
Re:Is Software Engineering Real Engineering? by velcrovan on Thursday October 05, 2023 @10:37AM (#37779165)
> then the failure modes and legal consequences are the same as traditional engineering

Exactly my point! Because the failure mode is the same we should have the same guardrails in place for both.

The design and construction of a bridge is independently inspected and verified. The design and implementation of software in a car is not independently inspected and verified. I argue that because the failure modes are the same, we should change the latter to match the former.

The design of a bridge must carry the signature of an individual licensed engineer who is personally liable. The design of software in a car is functionally anonymous. I argue that because the failure modes are the same, we should change the latter to match the former.

Re:Is Software Engineering Real Engineering? by AlotOfReading on Thursday October 05, 2023 @11:01AM (#37779498)
The design of software in a car is held to similar standards as the hardware in a car, as one of the people who sign off on it (and not a PE). The software often is independently inspected and verified as part of homologation.

Adding a scapegoat engineer wouldn't do anything meaningful except ruin one dude's career when something happens because

1) automotive manufacturers don't fall under engineering firm regulations

2) one person cannot have meaningful technical oversight over the scope of a vehicle, and

3) there is no software PE accreditation process in the US.

Re:Is Software Engineering Real Engineering? by velcrovan on Thursday October 05, 2023 @11:50AM (#37780169)
You are begging the question. The three statements in your list are indeed true. I am saying that they should not be true.
Re:Is Software Engineering Real Engineering? by AlotOfReading on Thursday October 05, 2023 @12:47PM (#37780896)
They've been true for over a century at this point though. Since I assume you aren't complaining about every vehicle ever produced not being signed by PEs, what is it about software that you think it should require a PE stamp when hardware should not?
Re:Is Software Engineering Real Engineering? by velcrovan on Thursday October 05, 2023 @04:49PM (#37784124)
> They've been true for over a century at this point though.

The duration of the status quo doesn’t feel at all relevant to my argument.

> what is it about software that you think it should require a PE stamp when hardware should not?

Any profession of system design whose failure mode is “people die” would better serve a culture that abhors preventable deaths if governed by the same licensure, liability, professional ethics and independent verification used by electrical and structural engineering. I don’t make any distinction between hardware and software, but this article happens to be about software, so that’s what we’re discussing.

Re:Is Software Engineering Real Engineering? by zeroonetwothree on Thursday October 05, 2023 @11:02AM (#37779508)
Is the design and implementation of the hardware in a car independently inspected and verified?
Re:Is Software Engineering Real Engineering? by velcrovan on Thursday October 05, 2023 @04:50PM (#37784134)
I hope and assume it is to some extent. If not, it should be. Regardless, the source code to the software should be as well.
Re:Is Software Engineering Real Engineering? by phone8675309 on Thursday October 05, 2023 @02:04PM (#37781873)
> If a software bug can cause a death, like in a car, then the failure modes and legal consequences are the same as traditional engineering.

They are not even remotely. A business may have to pay out a settlement, and failure may attract the interest of regulators (say, the NTSB if it is a car or airplane or the FDA if it's a medical device), but nobody is going to lose their license to practice "software engineering" nor face professional sanction even if there is professional malpractice.

The fact that nobody has gone to jail or had their ability to work in software revoked as a consequence of the 737 Max incident is proof that they are not even remotely similar. Had an aerospace engineer certified a physical part the same way that the software engineers certified that software they most certainly would have been on the hook individually for massive damages and would never work in industry again - both because they'd have been named and shamed in the investigation and because likely their license to practice engineering would have been revoked.

Re:Is Software Engineering Real Engineering? by Enginerrrd on Thursday October 05, 2023 @05:41PM (#37784637)
>What’s the difference?

The difference is that as a civil engineer, when I put my stamp on something and become Engineer of Record, I am personally liable for defects in my engineering, in perpetuity, no matter who I go on to work for later.

I can lose my personal wealth, freedom, license and livelihood if it's particularly egregious.

Re:Is Software Engineering Real Engineering? by lelima on Thursday October 05, 2023 @10:28AM (#37779055)
>>you can't simply put up a bridge that would support 500 cars and say "oh we'll update it to support 5000 cars down the road"

In that case the requirement changed, it might require some extra support or upgrades to the bridge, if not we have to build the bridge all over again.

Similar in SWE, the requirement can change, if you planned a small MYSQL database to hold 2 Stores transactions and then "oh well we will need to support 2000 Stores Transactions" you might try upgrade the server or start from zero on a AWS cloud instance that keep up.

In SWE you still have the big decisions than can impact people and budget, a bridge can collapse, so the autopilot software can make the car crash

Re:Is Software Engineering Real Engineering? by mikecx on Thursday October 05, 2023 @10:24AM (#37779001)
As a counter to your first example, I once had software deployed in some U.S. embassies in some not so great parts of the world. The machines the software lived on were air-gapped and on computers built specifically not to allow external connections (different keyboard/mouse connectors, no USB, no CD).

To deploy an update required a human, some long flights, and replacement parts. While it's not common, I think it would still break that definition of what is/isn't an engineer.

For me, it comes down to the level of rigor required. I think developing avionics software is probably engineering whereas building an phone app to view/share pictures of cats likely isn't.

Re:Is Software Engineering Real Engineering? by lelima on Thursday October 05, 2023 @10:38AM (#37779168)
What about day-to-day items, like well engineered wallet or water bottle, it's still engineering but the rigor still can be low, right?

I think even if rigor required it's low you can think of a good solution for a problem, feature or product

Re:Is Software Engineering Real Engineering? by tiznow on Thursday October 05, 2023 @12:43PM (#37780847)
I think that there's probably a difference between "attacking a problem to achieve progress in the utility of something" and just slapping together an app that brings literally nothing new to the table.

Making a birdhouse isn't engineering, creating a new type of dwelling for birds might be.

Re:Is Software Engineering Real Engineering? by AndrewKemendo on Thursday October 05, 2023 @10:08AM (#37778823)
Isn't every company doing all they can to force their other engineering into software delivery paradigm?

The whole "seat warmers as a service" pops to mind

That's the whole idea of "Digital Engineering"

The former Acquisitions Chief for the US Air Force just announced that they got a contract to CERTIFY a plane for airworthiness before ever actually building one in real life [1].

So yeah, it's happening

[1]https://www.istaridigital.com/press-releases/air-force-award...

Re:Is Software Engineering Real Engineering? by _glass on Thursday October 05, 2023 @10:53AM (#37779374)
Yeah, incidentally recall campaigns for some companies are the same for software as for hardware, think medical device. But the software is constructed in the same Agile way as anywhere else in fortune500 world.