This right here is the major difference between software and actual engineering. I studied and got a 4 year accredited engineering degree and I have been working in civil engineering for 7 years, but, I am not YET an engineer. I don't yet have my license to independently verify and stamp designs. I've passed most of the tests required to do so, but I've got another one to do. In most jurisdictions in the US, there is a 4 year minimum training period AFTER school, where you must train and apprentice under an engineer before you can apply to take the tests. They go through that application with a fine toothed comb. To get authorization for that last test, I had to send in sealed recommendations from 4 different licensed engineers familiar with my work where any one of them has the opportunity to basically say "no, this guy isn't ready" without my knowledge.
What is lacking is an understanding of the ethics, duty and responsibility to the public that is hammered into the conventional engineers on day one. It starts with subtle things... In school, we had very strict standards for report formats. If you screwed up something (like putting a figure title above a figure instead of below, or vice versa for a table) you got ZERO credit for that report, regardless of how much of your grade it counted for. If you misreported the significant figures on a result? Zero credit. Didn't do an appropriate error analysis? Zero credit.
This isn't just anal retentive BS though. It teaches from the very beginning that failure to adhere to the code has serious ramifications. It teaches you that when you, as an engineer with a duty to the public, report a figure as a result of your calculation, you had damn well better be right. If you get it wrong, people can and do die.
In the real world, if I inappropriately call myself a "Professional Engineer" or a "Structural Engineer", that's straight up illegal. I can lose the right to future licensure for something like that. If as a P.E., you make a mistake, or perform work outside of your scope of knowledge, the licensing board WILL sanction you ruthlessly. For minor things, they may just require you to re-mentor under an engineer and get all of your work reviewed before you stamp it. For more serious things, you will lose your right to sign off on work at all.
This is true for fields where there are such sanctioning bodies. Some fields like software engineering do not have such bodies and it's wrong to attribute to software engineering rules that are used for some other fields.
Fields where this is used are highly regulated with usually law mandated sanctioning process that is designed to reduce direct risk to humans.
Do fields where there is no such risk have this type of sanctioning? For example mechanical (machine) engineers or chemical engineers.
Being an engineer doesn't mean you need to be sanctioned by some body. If you get sanctioned, you might be Chartered Engineer or something similar. Interestingly, UK has Chartered IT Professional.
Right... My point though is that I think software engineering would benefit from such a regulatory body. Not for everything mind you, but I would expect some things to require a "software engineer's" stamp. Any system that will be used to handle sensitive or classified data, life and death situations (like automotive or aircraft), etc. ought to require a stamp. Frankly, it those cases it probably does, but it is the electrical or mechanical engineer that ends up signing off on it.
That exists already. There are certification programs, and having certified people is often a requirement to get some contracts.
For example, if your company wants to build a computer system for the government, the contract usually requires certain certifications for the people that will build it.
There are also some jobs that require certain certifications for the candidates. It's not too uncommon I'd say. It all depends on the stakes.
What is lacking is an understanding of the ethics, duty and responsibility to the public that is hammered into the conventional engineers on day one. It starts with subtle things... In school, we had very strict standards for report formats. If you screwed up something (like putting a figure title above a figure instead of below, or vice versa for a table) you got ZERO credit for that report, regardless of how much of your grade it counted for. If you misreported the significant figures on a result? Zero credit. Didn't do an appropriate error analysis? Zero credit.
This isn't just anal retentive BS though. It teaches from the very beginning that failure to adhere to the code has serious ramifications. It teaches you that when you, as an engineer with a duty to the public, report a figure as a result of your calculation, you had damn well better be right. If you get it wrong, people can and do die.
In the real world, if I inappropriately call myself a "Professional Engineer" or a "Structural Engineer", that's straight up illegal. I can lose the right to future licensure for something like that. If as a P.E., you make a mistake, or perform work outside of your scope of knowledge, the licensing board WILL sanction you ruthlessly. For minor things, they may just require you to re-mentor under an engineer and get all of your work reviewed before you stamp it. For more serious things, you will lose your right to sign off on work at all.