Can you imagine if governments regulated something like if your code touches important data, it must either be written in a verified safe language like Rust? How would people feel about that?
Regular engineering is a lot easier to regulate because there are a lot of agreeable rules like “fire escape stairs need to be x cm wide with a step depth of z cm. And there is no situational context that needs to be taken in to account.
While all programming best practices are vague helpers that should be discarded as soon as they aren’t helping.
Considering the history of memory-not-safe bugs and exploits and the efforts to rewrite critical things in rust due to memory safety I imagine this could be a real debate.
In the “real world” we have requirements for materials and tools and practices because some are less safe. Imagine if a building was welded with a technique that could fail? We’d legislate away from that technique. Even when people say “there are ways to make unsafe welding ‘safe enough’”.
Software could maybe use some rigor even if it means “go slow and don’t break things”.
If these laws came out 20 years ago I'd imagine we'd still all be using Java with UML diagrams legally required.
For example, there could be coverage requirements. Want to work on software that determines if a bridge will be safe or not? Then you need 100% branch coverage.
You gave as an example something from a building code. That's just a test case. There's no reason why for common types of software (CAD, fluid simulators) we could not have repositories of test cases that you must pass to within some tolerance. You could even make it adverserial and let people suggest new test cases.
Or we could decide on some reference implementation that you must either match, or exceed. So if you design CAD software, on any input that both your CAD software can handle that this reference implementation can too, you must match. That's more of a programmatic open ended test case.
If we're worried about discrimination, there's no reason why the the government couldn't publish a set of typical profiles (fake names, locations, credit scores, etc.) that your algorithm must treat equally to within some tolerance.
etc.
We can totally regulate software like we do other engineering disciplines. If we wanted to and thought that the resulting increase in cost and slowdown in development is important enough.
To use your example of CAD software, certainly the system used to design a bridge should be built differently than the one used to make inputs to a consumer level 3D printer.
There’s no such thing as a “casual” bridge or a “good enough” pacemaker, but that analogy holds in the software industry.
Software’s infinite flexibility means that it should be regulated within its context of use.
You are making a strawman.
Having a professional body that people could be ejected from makes a lot of sense in case of egregious misconduct and malice.
In events like Boeing 747 MAX, the car emission defeat device, backdoors & spyware, engineers should have safe channels to report wrongdoing, and get legal protection, but also face expulsion if they say nothing and.
I've seen proposals for regulating software engineers. They've all been transparent and embarrassing land-grabs. One (thankfully) failed effort in California was basically a series of electrical engineering requirements with a little bit of firmware focus, and some idiotic-even-at-the-time development methodology; absolutely useless for the stated purpose.
Is that based on some expertise? Many, many other professions - almost all, I think - have professional licensing bodies and they function well. I think we can figure it out too.
By and large they are either worthless or actively harmful.
Here's a great summary:
https://cs.stanford.edu/people/eroberts/cs181/projects/2010-...
The observations about the program in Texas mirror what I've seen in similar proposals in California. Namely, tests that concentrate on EE and hardware, with the occasional toss-in of some lifecycle garbage that is not state-of-the-art, nor uncontested in value. The IEEE was behind at least one effort to bring software engineering under its umbrella, which would explain why the state thinks software engineers need to know stuff like Kirchhoff's law and impedance matching. You can go your whole software engineering career without needing that.
The proponents don't seem to actually care about what's in the tests, just that they license people, get the fees, and make room for further power grabs. It's pretty unlikely that any improvement in software is going to spring from that kind of arrangement.
Licensing is just more "Keep beating the engineers until things improve" with a taste of "Nice career you have here, be a shame if something happened to it, right?" thrown in. We already get that in industry, why invite the government, too?
It's similar to housing. Training engineers to build a house correctly doesn't matter if the punishment for the house not meeting code is a slap on the wrist for their employer. Because their employer will just tell them to build fast and ignore the right way to build something.
Where do you see this happening?
99.99% of software engineers don’t touch safety critical code. There is no reason to regulate them. It’s much better to regulate the safety critical products.
To get a PEng or PE you have to take courses in, and pass an exam that covers, topics like power systems. This is a good idea for say a civil or mechanical engineer, since whatever they design will physically interface with all sorts of systems. They need that breadth otherwise accidents will happen.
But software engineering is different. The problems with crappy software that lead to deaths, unfairness, etc. have nothing to do with software engineers not understanding power systems. Having people pass such exams contributes nothing to safety.
Licensing organizations refuse to change. So they're simply not relevant to software. And as software grows, they're losing their grip on what is already the leading engineering discipline by far. There are more CS graduates (65k) every year than electrical (17k), chemical (8k), mechanical (20k), and civil engineers (15k) combined. Soon there will be more CS grads every year (65k) than all engineers combined (83k).
This is sensationalism. Systems involving safety usually have an associated ISO standard. If it's not being followed, there's more at fault than just the SW engineer.
In many (all?) states, designing and building something that has safety implications requires a PE license by law - it doesn't matter if it's mostly a SW product or not. The individual engineers don't need the license, but someone in the chain does, and he/she is required to review the work, and it is his/her ass on the line if something goes wrong.