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.
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).
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.
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.
Quebec's equivalent of PEO (Professional Engineers Ontario) is the OIQ (Ordre des ingénieurs du Québec). People in Ontario and Quebec have gotten nasty letters threatening legal action even for saying they're software engineers on Linkedin. Microsoft fought the law in Quebec and lost.
Alberta, BC, and even New Brunswick have similar laws. Other provinces might too.
Seriously? Are the engineering licensing organizations really scouring linkedin for people calling themselves "engineers, and sending threatening letters to anyone who's not on their list?
The Engineer title is taken seriously in Canada, similar to how you can’t claim to be a medical doctor unless you actually are one.
For some reason it seems like the Internet pisses governments off of all stripes, since a Global, free, meritocracy where everyone can compete on an equal playing field is like giving them the finger. And while governments can keep a tight leash on their own citizens with rules and regulations, they can’t make the rest of the world do whatever crazy nonsense they feel like. In this example, Canada will just be left behind in the 21st Century economy.
I don't see the Internet this way at all. While the above was a dream of Internet pioneers, now it's mostly fraud, mis- and disinformation campaigns, and parties using their power to dominate the marketplace.
> Every one of them arrogantly thinks their way is the superior way to do things (Across all sides of the political spectrum), despite the existence of contradictory governments with perfectly functioning, and sometimes better functioning societies.
That's ironcially similar to the parent comment, and a good example of what is on the Internet. Instead of facts, serious questions and analysis, it relies on trying to create a tide of emotion.
You may wish to examine this concept more closely before thinking it is a completely good idea. Specifically see the book The meritocracy trap by Markovits:
* https://www.themeritocracytrap.com
* https://www.theatlantic.com/magazine/archive/2019/09/meritoc...
* https://www.vox.com/policy-and-politics/2019/10/24/20919030/...
"PEO considers non-licensed use of “Software Engineer” to be a violation of our Act."
https://www.peo.on.ca/public-protection/complaints-and-illeg...