How professional ethics work
siderea.dreamwidth.org
siderea.dreamwidth.org
In my opinion, it is probably still worth refusing to build things that violate your personal ethics. You will sleep better at night, and you will introduce friction to doing unethical things, which may cause your employer to re-evaluate their course of action. Or they might fire you.
Also, I struggle to imagine what a world of regulated software engineers (with an enforceable set of professional ethics) would look like. To use the author's example, giving surgeons a monopoly on surgery is pretty simple: if you cut people up with a scalpel, even with their permission, and you're not certified by your country's board of surgery, then you're committing a crime. What would a world of regulated software engineering look like? Are all employees of a company who are not licensed software engineers now prohibited from using code to solve their problems? Is a business analyst writing SQL allowed? What if they start writing stored procedures in python? Are you allowed to use CLI tools? What about creating bash scripts to automate your CLI workflow?
It works in specific, highly regulated industries (e.g. "only licensed software engineers may contribute to avionics firmware, or the device will not be FAA certifiable"). But for general-purpose business-grade software... I don't think it is possible to come up with a sensible and useful rule that could draw a line between programmers and everyone else. So my bet is that we continue unregulated.
Here's what I imagine it would look like. I don't particularly like it.
All powerful computers operate like iPhones. Normal people are prohibited from executing code outside of a limited sandbox. Licensed software developers have the ability to execute code.
It's already starting to happen, except the "license" is a developer account with individual platform vendors.
"debugger vendors in 2047 distributed numbered copies only, and only to officially licensed and bonded programmers"
I don't think it would happen, because it's too difficult of a global coordination problem. E.g. if you make it too hard to build software in the US, then it will just get built elsewhere, and the US will no longer be dominant or even important in tech.
But if it's say designing a circuit board, or a machined part, there is no generic regulation, and anyone can do it.
There is already "software engineering" as a regulated discipline, and similar rules apply there. I have no idea if there are any situations where you need a stamped software deliverable. But they would have an engineers stamp. I have one (as an electrical engineer) that I haven't used and don't expect to.
All that to say, what matters is the combination of professional licensing and the requirement for a licensed professional. In engineering (applied science), it's actually pretty rare, even though it's a regulated profession.
[0] I'm in Canada, I think the US system is similar
All I'm saying is that it's unlikely that the bulk of activity we currently think of as "software engineering" will someday full under a level of professional regulation comparable to surgeons, pilots, or civil engineers.
To be a licensed engineer in Canada you need the degree and then 4 years' experience working under licensed P.Eng which in software is basically impossible. So most people would have the degree but never apply for licensure.
So professional licensing is required for any provision of advice or services relating to software engineering (etc), including services internal to a company. And a professional engineer is required to stamp any documents containing engineering content that are expected to be relied on by others.
(I'm not disagreeing with you. You don't need to be a professional engineer to have a circuit board made or a part machined. But you might need to stamp your design drawings as part of a certification process, or if others will be relying on them).
Even if this is what the law says, I've never seen it have any impact on the real world. In BC, like everywhere else, people with no license of any kind routinely write software that other people depend on and release it into the world, with no oversight from a licensed engineer at any point in the process.
Minimizing dependencies is going to become increasingly important.
A rectangular fortress formed between by two protected columns and two protected rows.
That's an issue.
LeetCode tests are often formed to bias towards styles and solutions favored by the testers.
For example, a company may want all their engineers to have a particular approach to recursion, so they test for that approach.
The issue with professional testing, is that it can encompass completely inappropriate tests. For example, I took calculus, and have almost never used it, in my work (over 30 years). I think the closest I got was playing with matrix math and B-splines.
But I guarantee that a "professional programmer" test would have calculus, because "Everybody should know it."
Same with btree stuff (again, in thirty+ years, I have never had occasion to use these).
But I do all sorts of async stuff, and a lot of UX stuff. I'll bet they don't get tested. Maybe everybody should know what a ring buffer is.
That said, ethics don't need that kind of stuff, and I'm all for ethics, but I think the managers need it, a hell of a lot more than the engineers.
Sure. That'll happen ...
Isn't there something in the Ts and Cs about that kind of question?
I know. My comment was about that line (and the "libertarian" comment). Note my comment about managers.
I saw your comment about the managers, but it rather misses the point. The idea of professional ethics is that the practitioners need licensure so that they can refuse to perform unethical work demanded by their manager. If programming managers had a professional code of ethics, it wouldn't impact the ability of individual programmers from doing unethical things.
I always took that approach, and worked for a Japanese company, and they ran that way.
Or for artificially limiting new entries into the profession through testing quotas, training program costs/length requirements and so on
The problem with ethics is that there is a vocal group that wants to turn their personal ethics into our professional ethics and impose on software a bunch of judgements that are super subjective (and thus outside the profession).
While I wouldn't be surprised to find professional conduct in other engineering disciples to be getting similarly hijacked these days, I think the only sensible way to professionalize software would be voluntary and technically grounded, not dealing with what you'd put in the realm of personal ethics at all.
This is exactly right, and the word "ethics" pretty much encompasses all of this subjectivity masquerading as objectivity.
If you had a rule about testing aviation firmware a certain way, it would just be a regulation, there would be no need to call it an ethical principle. Anyone who understands the relevant technology could understand why it was in place. The same cannot be said about most statements under the umbrella "ethics".
Everything that comes after that seems just to explain why professional ethics are crucial, but I'm still missing where the opinions of a bunch of people suddenly become a fact.
The author's running example is that of psychotherapy licensing, but the same applies to any medical license, law license, teachers, coroners, etc. The ethics of your profession are standardized across all practitioners, which means that it's hard for an unethical employer to force you to do unethical things, since the threat of license removal is a stronger threat than that of simply being fired; and also since the hypothetical unethical employer will have a hard time finding another licensed practitioner who would undertake the same task.
I really enjoyed the article, I recommend reading the whole thing.
For every licensed profession out there, there's got to be 10s or 100s more that are unlicensed. But the unlicensed professions still can have professional ethics, somethings with formal documents, education, etc. What do you think happens on conferences, in the private conversations, in schools and training and in apprenticeship or mentoring? These are very strong carriers of not just skill and knowledge, but also gossip (big part of learning and deciding ethics!) and moral consideration and responsibility . That doesn't mean they are less useful, but it does mean they are not "law" or official or binding in the way the author suggests.
Maybe it's cultural? I'm from central Europe and the author seems to be American, and the words they are using give me a hint of high pride, high ego, arrogance. Feels a bit like militaristic zeal.
Coming back tothe topic, where I worked, some professions do have ethics boards and people are licensed, while in other professions there are informal groups who recommend certain practices and are treated seriously by some (but definitely not all) professionals.
From what I heard from a few experienced lawyers and managment coaches (as an example of polar opposites in terms of being licensed), the only bad actors who are ever punished for their unethical behavior are fools and criminals, and even that is not as frequent as you'd think.
I suspect 95+% of the morality of a person' bad behavior is invisible to any observers (by design), definitely never gets checked in any structured fashion by anyone (boring, thankless work, gets you in trouble, no material gain, low chance of success), and there's almost always a way to behave badly and justify it or have deniability. The real judges are outside observers, and those care mostly about serious criminal behavior, everything else is called "it's business" or some such general explanation.
Really? I didn't get that sense at all. Can you give an example?
"You are told what the ethics of your profession are. Indeed, they are part of terms of participating in that profession, more on which below." -- wrong and somewhat patronizing. There exist professions which do have (recognized) ethics, but those ethics are optional, definitely not part of becoming a professional (because the field is informal and without licenses and too young to have that), and participation in profession has nothing to do with moral awareness or stance.
"They are a set of ethics that is universal to a population of professionals. They are not an opinion an individual has, they are facts –" -- this is an extreme position, said with high conviction that it's the only one.
"Professional ethics are codified, and because they are codified, they can be enforced. Indeed, professional ethics are codified so that they can be enforced." - this person likes to put a lof ot tough words in bold. Again, this is so myopic I don't even know what to say. So many of the ethical consideration in some professions goes way beyond enforcable issues, or even hints of admonition. A psychoterapist especially should know better. This is where i detect an ego-driven agenda.
"People who program for a living trend hard to the libertarian and want not to be subject to the government." - that's a strong political bias right there,and definitely on the militaristic end. You will do what (y)our country tells you or else! That's high ego, and arrogance, at once. And in the next sentence...
"People who program for a living trend hard to the libertarian and want not to be subject to the government. That's fine. But then you can't have professional ethics." - oh my lord, will you stop :) How many more times will this person highlight that THEY KNOW BETTER and the reader DOES NOT and SHOULD BETTER START CHANGING THEIR MIND :)
If you say "It violates my professional ethics to program the drivers for an orphan blender", your boss can fire you and replace you with some other developer with no such scruples. If a professional engineer says "It violates my (enforced) professional ethics to sign off on the blade design of this orphan blender, and anybody who did would lose their licensing", then their boss could fire them, but they're not going to get their blade signed off.
It’s not cultural, it’s a question of enforcement. The author describes professional licenses that are enforced by a board. You describe a “license” that isn’t enforced. If your legal system doesn’t enforce licenses, that’s not a cultural difference it’s a legal one.
> unlicensed professions can still have professional ethics
This is like saying you can have laws without police to enforce them. If the consequence for violating the ethical norm does not jeopardize one’s license (because there isn’t one) then you don’t have a norm, you have a suggestion.
Why would you redefine something as fundamental as a fact, that's quite different from an opinion, as "the opinion that a group enforces"?
The repercussions if you violate those opinions might have factual consequences for you, but that makes the basis for all this not more factual.
They are facts in the sense that "The Bar believes that it is unethical to lie to the court" is a fact. It is simply factually true that the legal profession holds that ethics belief.
And thus the point, anyone who seeks to join such a profession has to accept their ethics "as if" they were facts. You can't choose other professional ethics in the sense that you can choose to hold a different opinion.
Sure, in the same sense that any law is an opinion of the body that defined it, e.g. "It is the opinion of the legislature that a person who commits the unlawful killing of a human being with malice aforethought shall be guilty of murder."
It's an opinion, but it's an opinion with real-world consequences... just like professional ethics, according to the atricle.
software is something new, it's writing that can write itself, or change itself. it's a bunch or written things which then take other written things and transform them.
this has conceptual consequences for the laws because the technology that the the concept of laws if mounted on top of, has been radically changed by software
hence it's not as simple as relying on 'licensure' which ultimately leans on the notions and constructions emanating from "the written law"
maybe in the future congress is going to have to approve pull-requests to google infrastructure code? heheh
All this under the auspices of "ethics", which as a reminder, is just an arbitrary set of rules which someone is trying to pass off as having a divine origin.
The article advocates a set of laws intended to prevent certain people from writing software, and constraining how a select few do write software. It doesn't talk about how exactly those laws will be decided on. Although it does say they are "facts", it doesn't tell me about a way to observe them for myself, so I guess the author just looked into the mind of God, and I should take his word for it.
They are arbitrary only in the sense that, sans a religion's God laying down ethics from on high, all ethics are arbitrary human creation.
But we care about ethics all the same. Engineers care about ethics because if they do not, they kill people. Civil engineers care because faulty work kills people. Electrical engineers care because faulty work kills people. Mechanical engineers care because faulty work kills people.
And as software engineers, we should care because our careless work kills people.
And if we do not care, the government will force our hand. And they will not listen to pleas for them to be reasonable.
Software engineers abused people's personal data, the EU's GDPR has outlawed using all but the absolute minimum personal data. Meta has been told in court by the CJEU that advertising is not an acceptable use of personal data, even if needed to pay the bills. Ad-tech is a doomed industry.
So it's your choice. Start caring about ethics. Or the government locks our field in so much regulatory gridlock that you will wish they just outlawed it entirely.
I'm glad that there are building inspectors, and safety standards for consumer electronics. I'm also glad that those rules are written clearly in terms of lbs and amp*hours and volts, and not philosophical terms.
If you want rules, say you want rules, but don't try to hide the fact that some of your rules will have not objective justification, and will be based on the personal philosophies of those in charge.
The "objective" safety standards are often a lot more philosophical than you think. There is no "objective" truth for road design, it is a trade-off between how important you deem the safety of pedestrians and cyclists, versus the convenience and throughput of cars.
But also, just look at fields like journalism. Journalistic ethics exist because without them they kill people.
Not ratting out your anonymous sources isn't some technical requirement laid down in the physics of the universe, it's a philosophical belief.
And yes. Choosing to not take people's personal data is a philosophical belief. But the harm isn't philosophical.