In law school, we were taught that a professional has obligations that go beyond his or her own self interest. Unlike a real estate developer or a widget manufacturer, an attorney has an obligation to do what's right for the client even if that causes the attorney to lose money or imposes a competitive advantage. Attorneys, for example, can't engage in the kinds of advertising speech that would be entirely lawful if done by a car dealership or furniture store.
This traditional definition is hundreds of years older than the bar exam or ABA code of ethics, and older than formal graduate law school (a 20th Century American invention). All of that came later, after lawyers understood themselves differently.
I would encourage people who write code -- software engineers, developers, coders, hackers, however one chooses to describe this work -- to think of themselves as professionals with obligations that go beyond their own self interest.
https://www.nspe.org/resources/licensure/what-pe
Every single design, bridge, etc is certified by a Professional Engineer. Your ass is on the line. I don't mean just being fired from your job - but jail time.
Per the website:
"A century ago, anyone could work as an engineer without proof of competency. In order to protect the public health, safety, and welfare, the first engineering licensure law was enacted in 1907 in Wyoming. Now every state regulates the practice of engineering to ensure public safety by granting only Professional Engineers (PEs) the authority to sign and seal engineering plans and offer their services to the public. "
I suspect, and hope, software used critically have the same. Yes it's more bureaucracy and overhead...but being in software, I know any joe schmoe can walk on and develop code without oversight.
I'm not saying if you're making the next twitter, that you need a PE. Or that every developer needs to have a PE license - but like other industries there is one PE per X amount of non-PE engineers.
Due to the Threac-25 incident (https://en.wikipedia.org/wiki/Therac-25) there are standards for medical software (https://en.wikipedia.org/wiki/IEC_62304).
I'm not in medical so I don't know how widely adopted, or how strict it is adhered to. But it might be IEC 62304 needs to be branched out.
The qualifications of the people developing the code are somewhere down in the process-stack; there are no specific requirements [1].
In general, to follow "Current Good Manufacturing Practices" (a term of art in the FDA design controls regulation), qualifications for the people on the team have to be documented and a paper trail kept up-to-date, to be able to answer questions of the nature "was person <X> qualified to be working in this role? How do you know?" with objective evidence.
It's up to the judgment of the engineering management of the project what they state the requirements of the role to be. If you say that it takes a high-school diploma or better to be able to develop life-safety-critical medical device software, you may pass a process audit since you document and track that requirement, but if there is an "adverse incident" I would think whoever signed off on that decision might be exposed to liability.
[1] My specific knowledge about this is ~5 years out of date so this may have changed, but I doubt it
In part yes in part no. PE's will be held to a MUCH higher legal standard but every engineer is taught to hold themselves to a high ethical standard. That you are not supposed to do something dangerous even if you think you won't get in trouble for it. Even if it isn't directly your responsibility you are supposed to report something that looks dangerous. PE's do the final sign off and their ass is on the line much more than the engineers that actually did all the building and designing. But the code of ethics is supposed to be there all throughout the chain.
So what I'm saying is that in software we are part of that chain. And therefore the ethical obligations should still hold. They should hold at every part of that chain. At no point in the process should anyone say "well it is someone else's ethical obligation or concern". If you touch something, if you see something, then it is part of your ethical obligation. At least as an engineer, but I would argue that it is also if you write software.
I think the biggest problem they had was that despite having the exam, not many states actually issue Professional Engineer licenses in the Software Engineering discipline. Because of this, I don't see why anyone (in those states) would bother taking the exam if they can't actually get a license and use the title "Professional Engineer".
So if you're a doctor you're given exclusive right to perform the economic activity of doctoring. In return you have a steep set of obligations, which include being truthful, ethical, not refusing service, etc.
What you said is a part of these "obligations", which definitely put you at an economic disadvantage, but that's ok, because you have exclusive rights to that activity. A doctor's obligations do impose costs on them, but not compared to other doctors.
The critical bit I'm trying get at is enforceability. If a doctor acts unethically, they can be challenged in front of their board by a patient and if they lose their license they can never practice medicine again. Having your livelihood at stake is a great incentive to act properly.
A software engineer such as myself, OTOH, has no little incentive beyond my own personal ethics. In many cases, being ethical will place you at an economic disadvantage compared to other software engineers. Actually, the whole notion of "ethics" is hand-wavy and ill-defined, because there's no professional organization.
Anyway, we can wish for good things and that'll party work and it's better than being cynical, but it'll only get you so far.
Professional, as in professional engineer. Think civil engineers, for example, who need to be registered with the board of engineers in order to provide engineering services (eg. approving plans for construction, supervising construction).
Other countries also have specific legal statutes that regulate the title of engineer, such as Canada.
1. A person, who is a member of a professional body due to the education qualification and follows the prescribed moeal and prefessional code of conduct.
> PROFESSIONAL MISCONDUCT 'Behavior different from what is prescribed in the moral, ethical and professional code of conduct'
For example only uses definition 1.
So how would software developers/programmers/etc create something equivalent to that? Seems to me some critical mass of that industry would need to lobby state and/or federal government for the creation of a board who then produces a standard and certifies members conform to the standard under penalty that if they do not police their own members that the state can revoke the franchise/monopoly on that certification.
Why does Saul Goodman come to mind.
Are you sure about that? Because I've seen some really sleazy advertising by lawyers. Personal injury lawyers in general, but Jim Adler, the Texas Hammer especially comes to mind.
IANAL but one could certainly imagine 1A challenges to any attempt to enlist the state in the enforcement of a cartel like that of the lawyers or the physicians. In that sense it's no more likely that programming would ever become a profession than e.g. that writing would become a profession.
Attempts to form a set of software standards to be used in a similar way has proven elusive. Software is too malleable, and languages and "state of the art" architectures come and go like clothing styles (often without merit in my opinion). Physics and the human body don't change very often. Software approaches do.
Nonetheless, being an ethical human being is just a good idea.
Search for, "Member grade". The only path for a large portion of all people being called "software engineers" would not even be considered for 6 years.
Those 6 years would probably be the most formative in educating them of their ethics and responsibilities. A service I am not sure IEEE really prioritizes anyways.
Or if I want to pay them to get a certification no one cares about, I can. https://www.nspe.org/resources/education/exam-review-and-pre...
The system in that regard is broken.
If computer programmers or other developers want to refer to themselves as engineers, then it behooves them to also step up their game in the ethical field.
Too often people want the "engineer" title because of its social cachet but don't strive to leave their mediocrity behind.
Being a "professional" legally means that you're given exclusive rights to perform some economic activity and in return for this (usually) lucrative right, you have a great number of obligations - being responsible for your work (ie, facing the possibility of never being able to perform said economic activity legally again), an enforceable code of ethics, an dispute / resolution process etc, steep fees, continuing education, an accreditation exam, etc.
Software engineers by and large do not want the obligations and restrictions of being a real profession, so no, they don't have any special ethics or rules to report or do anything in these cases beyond what a designer or secretary would do.