Hacker News new | ask | show | jobs
by Towaway69 37 days ago
I wonder what the relationship is between the word engineering in the sense used here and software engineering?

I am amazed how bad software engineering has become with constant updates of software because of “improvements” or because there has to be constant release cycle else the software is unmaintained or bad.

While this kind of engineering is designed to be untouched for the next 15 to 30 years. Minimal maintenance is needed and certainly the concrete doesn’t need updating every second week because concrete has suddenly “improved” or there was a bug in it.

It’s become the norm to release bad software and fix it later, I hope this norm does not make it to real engineering.

5 comments

Do you have a source for how little maintenance this will need? I imagine there will be teams of people continually employed for regular maintenance and operations. Concrete does develop “bugs” in the form of cracks, chips, or other damage that needs to be repaired.

While software engineering certainly deals with different constraints, I don’t think this is a fair comparison. When stakes are low (as they are for most software engineering), different precautions are appropriate. The aerospace or financial software engineering worlds might be more comparable here, and the engineering for those systems looks quite different as a result.

See also: https://www.jerf.org/iri/post/2026/programming_is_engineerin...

> Do you have a source for how little maintenance this will need?

In Germany, twice a year inspection is mandatory for infrastructure [1] but this is only a visual inspection. Once every 6 years you got a large inspection [2] that includes a full go over everything including functionality checks plus a review of documentation (if it is still up to code) and of accident documentation, as well as a "knock test" on every m² of surface [3]. Fire safety systems are checked every quarter [4].

And out of these reports then you get action items. Depending on the severity of findings, it can be anything from "someone needs to do this until the next major inspection" to "holy cow stop ALL traffic NOW".

[1] https://www.stbapa.bayern.de/service/medien/meldungen/2023/2...

[2] https://www.fba.bund.de/DE/Meldungen/20230201_Tunneluntersuc...

[3] https://www.merkur.de/lokales/muenchen/baustellen-besuch-sta...

[4] https://www.autobahn.de/aktuelles/aktuell/tunnelwartung-im-b...

Sometimes the inspections aren't worth much -- or aren't acted on -- and you end up with a bridge collapse, even in Germany:

https://en.wikipedia.org/wiki/Carola_Bridge

The problem is, it was known that the bridge was structurally unsound thanks to its age, but the elements that corroded and actually caused the damage could not be inspected at all. The report [1] is quite fascinating, the meat is on page 53/54:

> Auf Grundlage der gewonnenen Erkenntnisse und der positiven Berechnungsergebnisse wurde in der Gesamtbetrachtung weder ein akuter Handlungsbedarf festgestellt noch eine Verstärkung als erforderlich erachtet

> (Based on observation results and positive simulations no need to act was derived, nor was an increase in observation deemed to be necessary)

The root cause is deemed to be errors made all the way back during construction, most probably too long exposure of the steel cables to the environment (see page 108).

Only thanks to this desaster the actual failure mode and how to spot it got known in the first place. The report suggests (page 110) that bridges of a similar construction type (and thus, the same weakness) be retrofitted with acoustic monitoring to detect snapping cables.

[1] https://www.dresden.de/media/pdf/Strassenbau/Gutachten-Carol...

Definitely I am making a broad assumption with many specifies where one can say "but what about X,Y,Z". Certainly, there are buildings that fall down and bridges collapse but what is the trend? Is software engineering getting better or worse?

From the linked article:

> And I would say that the success of AI coding agents has proved once and for all that we had successfully built an engineering discipline so strong that we are also the first discipline that has been able to successfully run AI at large scale within our discipline.

Yet we have no real clue how AI works or how to debug it, it's a brute force solution to everyday problems. Daily there are new examples of AI "escaping" its enforced cage. Why? Why doesn't AI "just work"? Because we don't truly understand AI.

I think AI is exactly the opposite to "true" engineering where one understands the system and can reproduce it. After all, retraining the AI will probably give you a completely different AI even if the training data was the same.

> Certainly, there are buildings that fall down and bridges collapse but what is the trend?

The trend is that they don’t because there’s a continuous maintenance happening on all of those. There’s an army of people doing checks and repairs all the time. Even then, it happens, like in Genoa.

The relationship is that software developers co-opted the term because it has excellent reputation and trust. In real life there is almost zero overlap in the how engineers and software developers work and develop their methods.
Is real, physical engineering that much better?

Take the new sf bay bridge span. It leaked, and had to be fixed to prevent critical parts from corroding. https://www.sfgate.com/bayarea/article/Caltrans-was-warned-o...

Projects are consistently over budget, late, and shoddily done in the physical world too.

Software is super complex and cheap to update. Engineering like this, however difficult, is not that complex and it's very expensive and difficult to update.

We take advantage of the situation. If we invented some way of e.g. "growing" structures that turned out to be much cheaper we'd probably adapt our attitude to changing them.

When you say Engineering is not that complex, have you taken into account corrosive sea water, pressure, currents, what it means to make repairs and maintainance down there etc? It is difficult, because it deals with a very complex world full of physics, chemistry and even biology in a way that does not allow errors.
Engineering doesn't seem complex because there are centuries of learnings behind it. Those learnings become rules and suddenly it appears "simple" because no one debates whether to use wood or concrete when building an undersea tunnel!
....however that really is a kind of simplicity. Your training is relevant throughout your career. In software that is much less so. I think Comsci is a worthwhile degree but mine was really only a starting point.
I think a engineering degree is pretty much the same, though. You won't let someone fresh out of university design a new bridge.
Software does allow errors hence, IMO, we overload the complexity and "underload" the proof of correctness. We're not really that afraid of failures most of the time.

Vibe code a bridge! Arf. I am sure someone will.

Software isn't inherently complex, it becomes complex. Because it is iterative. Because we keep making demands of it that weren't planned.

Imagining building a bridge and then in the middle someone comes along and says it should also be a tunnel. I think therein lies a main difference to engineering and software engineering: planning and sticking to a plan.

Another thing are incentives: real engineering has real incentives to do it right, else you will get sued - by the families of those that died. Software engineering does not have this incentive to get it right.

Imagining building a bridge and then in the middle someone comes along and says it should also be a tunnel

While converting a bridge to tunnel mid-construction doesn't happen, what does often happen is that design assumes a particular construction technique can be used, construction starts with that technique, and midway through it's determined that an entirely different technique is required. This results in a bunch of redesign, remobilization, etc. Just like with software, construction often does not survive first contact with reality.

I will keep recommending Hillel Wayne's crossover project whenever this "Software engineering vs 'real' engineering" discussion pops up.

https://www.hillelwayne.com/tags/crossover-project/

I'm disappointed and jaded by the state of our craft like you. But I'm also very suspicious of claims that other disciplines are somehow these much more earnest, pristine, derived-from-first-principles things. It just doesn't fit my view of human nature.