As of now anyone and their dog can practice software development and I'm not sure what a nebulous "ethical code" would imply for them.
As of now anyone and their dog can practice software development and I'm not sure what a nebulous "ethical code" would imply for them.
"To become licensed, engineers must complete a four-year college degree, work under a Professional Engineer for at least four years, pass two intensive competency exams and earn a license from their state's licensure board. Then, to retain their licenses, PEs must continually maintain and improve their skills throughout their careers."
Most PEs that I have worked with are very diligent. You don't get yahoos going that far. Generally, they are top-notch engineers. Think '10X' engineers, but for oil wells and churches. I mean, look at any large structure on Wikipedia, most of the time you'll find the engineer's name in the side placard, not just the firm's name. PEs are serious, dedicated, and smart people. I mean, their stamp is on those documents and they go to jail when the bridge fails.
So, for software, if you have an exam of the PE's caliber, you essentially guarantee '10X' engineers. The workforce is more highly paid, yes, but it is of a much higher quality. Bugs get solved faster, stand-ups don't last 30 minutes, the wiki is updated by everyone, etc. Employers know that their candidates really are good stuff, less whiteboards or take-homes are needed. Also, possibly when something messes up, the engineer is the one responsible, not the company. So offloading the insurance to the employees is not the worst thing for a company.
Honestly, it would not be a bad system and I think would be a much calmer and better one.
https://ncees.org/engineering/pe/software/
i'm seeing some sources that say it was discontinued after 2019 due to lack of interest, and the main "PE" page no longer links to the software PE exam.
It's a bit shocking for me to know a mechanical, electrical, or civil design in, say, a power plant may require a Professional Engineer to officially stamp it but any ol' software engineer can write code on that system and fire it up. My understanding is that NCEES lists a controls systems license but I have yet to meet a single person with it or hear of a project that required it.
To a certain extent, I wonder if software development rigor/oversight is in an adolescence similar to what it must have been like for mechanical systems during the early parts of the industrial revolution.
1) programming is more like an art than a science, and so should not be regulated like engineering
2) the capital/labor requirements for programming are minimal - basically anyone could do it - so we should not worry about trying to license something that people could (and do) do at home.
3) there's no agreement about what would be required to get a license.
4) free software would die
Of course, some of these really do not hold up to close inspection. It's true that there is an "art" to programming, but not much more than there is in architecture for example, and there's no reason you couldn't require a license for cases where you do work for others rather than yourself. Since the 90s, it's become a _little_ more clear what the components of a s/w dev license might be, but perhaps still not enough to really pin it down. And yes, it would probably kill the free software world.
For example, as long as a certain percentage of principal engineers are licensed, others within the company don’t have to be. Similar with working under a licensed lead or specific article industry exemptions.
It would also give some power to the developers over management in key decisions. I’ve seen managers try to back engineers into a corner and when the engineer ultimately said they wouldn’t sign off on a design, management backed down because they didn’t have an equivalent to “just ship it now” and get it stamped later.
I understand the fear of it, but sometimes it seems like the sw development is run like the Wild West.
I feel like a “formalised ethical code” would result in more clever approaches of avoiding it. We don’t need to look far to find the examples (looking at ya ad tech)
I.e., contractually require someone licensed (where the license carries an ethic standard) or legally require it in areas that are 'in the public interest'
We need increased awareness of ethics but we don't need more government involvement or any other form of coercion. Governments are already far less ethical then pretty much any other organisation or institution.
Morals and ethics are about people. Laws and regulation are about how those morals and ethics are reduced to practice.
Government created laws and regulation are just threats. They tell you nothing about what is right or ethical. They only tell you how a particular group of people want you to behave and what they will try to do to you if you refuse to obey. Anyone with enough capacity for violence and willingness to use it can create a law but no amount of force can change what is right or wrong.