We have plenty of laws and standards regarding handling private information, payment systems, independent pen testing and so on. So it's incorrect to say we have "no standards" at all. Where it matters, we do.
But to try and standardize a process that's evolving faster than a standard can spread is pointless.
This doesn't make software engineering any less engineering. Engineering isn't about standards. It's about the design, construction and use of systems.
Compare this to when we build a new city hall. A massive project involving almost 500 smaller local contractors, in a business that actually moves forward pretty fast. Some of the materials they ended up using weren’t even invented when they began. The project was finished a head of schedule and under budget.
I know construction isn’t always like this. We’ve had our share of catastrophic projects, one elder-care center in particular, but compared to buying software it’s almost child’s play, even when things go wrong.
So I think it’s perfectly fair to say that software engineering isn’t engineering. If you can even build a simple webpage, without two suppliers disagreeing so much on the “standards” that it takes 6 months of governance to achieve compliance, then there is just so far for the industry to go before it’s anything that even resembles engineering.
A better solution would be standardize a backend apis and setup standards around how data is queried and stored. Next standardize how that data is presented to the user and how the user can manipulate that data. None of this requires a specific technology and sounds like decisions were made by people that don’t understand the problem they’re trying to solve or are being influenced by others with something to gain (like your big Drupal house).
We have actually attempted to do this on a national scale in Denmark because it was silly to have 98 municipalities handle organisational data (and other things) in 98 different ways. So we created something called rammearkitekturen (framework architecture) which specifies what an “employee” is and how you’re supposed to transfer them between systems. The suppliers hired to build this, and these are companies like IBM, Systematic and Netcompany somehow still manage to build things in such a manner that the next company needs to spend a whole year beyond their estimate to get things running after a public procurement process that saw an ownership change. Some of these are complicated, bur most of them aren’t. Or at least they aren’t supposed to be. Now, either IBM is completely devoid of talent, or maybe software “engineering” just isn’t “engineering” at all. At least not on a level that is in any way acceptable to us as enterprise customers.
I’m still not sure why we tolerate year long delays on software projects. It’s not like building a new hospital never gets delayed, but the consequences of those delays are typically bosses losing their jobs and companies paying delay fines (or whatever you call that in English), where as with software the consequences are just a few shrugs and a joke about that pesky IT.
I actually don’t disagree with you as such. My point is simply that when you hire two talented engineers from the same background to build the exact same thing. Then they will both rather easily understand what the other did and how he/she did it, unless it was software.
The experts need to continue to audit, refine, and integrate on the standards. Locking in a specific technology is shortsighted and will cost a lot later.
In construction a standard isn't "use this make of hammer". It's "achieve this effect".
We have somewhat similar standards in software development. Like, “build this type of API here, capable of handling this type of data model”.
The issue comes when I can buy that API from IBM and then can’t transfer it to Netcompany next year because they don’t agree on how to implement a REST API or how to handle the data model beyond the API. I don’t have that issue on construction. I can have a supplier hired to hand the electric installations on 300 buildings at a hospital, who go bankrupt half way through, and then I can painless hire a new contractor to finish up.
As long as software doesn’t have anything that comes near to this, it’s “just” art. I’m not saying this as a negative thing, but when two “engineers” who have gone through the same education and follow the same international “best practices” build the same thing, so differently that they can’t understand what the other build, then it’s just not worthy of the engineering description.
You can hire different people to work on code too. There's no one person per repo rule.
That's not true in the context of medical and car software. See
In medical, automotive, aerospace, military applications, the software that goes into the device is kind of considered part of the object. It needs this validation for obvious reasons, such as the long lifecycle and critical nature of these products.
But in cellphone handsets, PC software and firmware such as in IoT home devices, and even IT infrastructure like SoHo routers especially but also other devices, there is no agreed upon standards that I am aware of. Even in payment applications, there isn't much there. Large institutions and banks get by often by using "legacy" infrastructure like mainframes to keep the COBOL stuff running, as it has been vetted over decades.
Going further, the architecture of infrastructure, firmware and software should be examined more closely. Recently, IT architecture has been exploited over and over (Kaseya, SolarWinds, MTA) having quite asymmetric effects. In the past it was worms and drive-by malware from janky websites, today it is extremely costly disasters that make the news but roll on bye until the next turd is flipped over.
The problem space is very difficult to define, since "software" and "architecture" are such general terms encompassing basically anything. I rate the difficulty in analyzing these problems for sufficient solutions as very high. When I consider neural-net AI applications, it seems to get even more murky.
Is anybody aware of other software and infrastructure standards that exist or are in research which could apply to more general fields, or to corporate/business IT infrastructure, or to home devices, etc?
You don’t though. This is just an artefact of the structure of your industry, being limited as it is by physical, geographic, and capital constraints. Software has none of those (capital used to be an issue but is no longer - this is perhaps why things are more flexible than 30yrs ago as you note).
You think you need these things because you see your role as an integrator - but software engineers already perform that function at a different level, via libraries and protocols.
Software Development by contrast has no standards. You can hire two different enterprise sized companies with this and that certification in the exact same technologies, who claim to adhere to the exact same principles for best practices and what not. They mean it too, often they’ve even gone through the same sort or internal re-education processes with the same consultant companies at the same time, yet they still manage to build software projects so different that transferring ownership from one to the other, or setting up a multiple supplier open source project, is sooooo much work you wouldn’t believe it.
If computer science wants to be engineering, I need to be capable of hiring an architect who makes plans that can be implemented by any supplier, and I need to be able to switch supplier/contractor 2-3 times during the process without issues because the plans can only be implemented one way. We’re probably a lot further away from that world today than we were 30 years ago. The only company that seems to have smelled the music on this stuff is Microsoft and their cloud.