1. The ethical decisions that happen in the industry aren't made by the software engineers.
2. The boundaries around those decision are very grey. Can I create a feature that breaches user's privacy? What if I don't build the feature but just write documentation for it? What if I do pure research but then my research is used for a morally questionable purpose by the company? What if my company does a bunch of shady things but not my department? What if my company respects its users but mistreats its employees? What if my company treats employess and users fairly but it's in a questionable industry like gambling for example? Or what if I make a game that's perfectly fine for most players but a small number of them get addicted to the point that it ruins their lives? And so on, these questions go on forever and it's not as straightforward as "do no harm".
Right now decision makers tell you to build the thing, and you speak up saying that seems sketchy, but you both don’t know what the people who don’t speak up think. You are told to conform or leave.
With a code of ethics, they tell you to build the thing and you say it’s against your industry’s code of ethics, and you both know that applies to everyone. They can’t tell you to change your profession’s code of ethics, so you have a stronger position.
It is most loudly a case for a union.
But if you don't like that word, how about an AMA-like or state bar like association to which you pay dues, are subject to ethical review, and where sanction impacts your right to work? Doctors and lawyers self-regulate in this way to our great collective benefit.
How can you make an oath when "copying might be fraud, but maybe not" it's a thing?
More pertinently, most of the time: What if I think that feature would be a net-positive for everyone? There obviously cases where a product literally couldn't exist without collecting user data, and so long as they're up-front about it, I'm fine with that. It's sneaky data collection that's the problem.
Subtract all the companies that you can't work for due to ethical reasons and you might be surprised by how bad the job market in your country looks like.
Effectively true, but your reasons are wrong:
> The ethical decisions that happen in the industry aren't made by the software engineers.
Software engineers decide whether to participate in or enable them, just like other professionals with codes of ethics that work in supporting or advisory roles for employers/clients. Other professions that do this have real codes of ethics, so this reason is BS.
> The boundaries around those decision are very grey.
And they aren't in law? Medicine? Again, that doesn't prevent a real code of ethics.
What does prevent such a thing from meaningfully existing for software engineering is the fact that it's not a regulated profession with a professional licensing and enforcement body.
You're mixing up the Hippocratic oath with actual standards and regulation on practitioners. The Hippocratic Oath is only a tradition. It just happens to overlap to some extent with the actual enforceable laws for medical malpractice.
While they have a slightly different goal, the content could be a very useful reference for actual guideline.
I am a strong proponent of software ethics being taught in schools, but I don't think an Hippocratic type oath makes any sense in our profession.
So we reach the age-old question of, "Who decides?"
Another potential problem is the mention of promoting "equitable relationships". While this may be confusion due to translation, "equitable" has recently been taken to mean equal in outcome, which I will never actively encourage.
I am an Engineer. In my profession, I take deep pride. To it, I owe solemn obligations.
As an engineer, I pledge to practice integrity and fair dealing, tolerance and respect, and to uphold devotion to the standards and dignity of my profession. I will always be conscious that my skill carries with it the obligation to serve humanity by making the best use of the Earth's precious wealth.
As an engineer, I shall participate in none but honest enterprises. When needed, my skill and knowledge shall be given, without reservation, for the public good. In the performance of duty, and in fidelity to my profession, I shall give my utmost.
Sometimes the simplest is the best. There'll always be differences in everyone's moral fiber, but generally speaking, be professionial, be efficient, come up with a plan to build every project that comes your way, ybe willing to say "No" when everyone else wants you to say "Yes" when put in a position in opposition to the interests of the Public.
It'll change from country to country, but the essence of it is universal to the field of endeavor, and legalism should have nothing to do with it.
Note discretion is nowhere included in that except maybe implied in professional. That's intended; as Engineers, we all must be on guard for those building things harmful to the public, and be willing, if Fate deems it necessary to inform other Engineers of the danger, and educate the non-Engineer enough that they can come to a reasonable conclusion on the matter, even if they don't end up swinging the way we think they should.
For ours is a postion of systemic guardianship and stewardship of the Will, made manifest through artifice, of humanity. Every nut and bolt fastened, every line of code written, compiled, interpreted, and executed; every transmission, transaction, every automated task, and task left unautomated is another fold in the delicate structure of the societies in whose service we ply our trade.
- Don't create software you don't want to work.
"I shall not attempt to manipulate user behaviour in order to increase revenue or metrics. The usage of my product shall be driven entirely by the user's conscious and deliberate desire to engage with it."
Yeah, I know — it's vague and completely unrealistic. Still... a man can dream.
On the point of advertising though, if advertising focused entirely on factual information around features and benefits, I'd consider that a win. Kind of like how it used to be before Edward Bernays and similar thinkers came along.
I find it sad that advertising implies manipulation outright.
1. Most developed countries allow for some freedom of expression which rules out banning advertising outright.
2. Advertising is generally effective in the sense that it increases sales to some extent.
So as soon as just one player in a market starts advertising (which can't be prevented), everyone else has to do it too just to keep up.
Do not make computer programs that force humans into repetitive tasks. Computers are made for automating tasks, not enslaving humans.
Do not pass onto users a responsibility that is on the program side.
When the user has a responsibility, make it clear. The computer program must warn users when their input could cause a valid output for which they would be held responsible.
Programs must never silently fail.
Once users have used a computer program, you must not remove it from them, render it useless or make it available at a price higher than agreed beforehand. Once users have used a feature of a computer program, you must not remove it, hide it from them or make it available at a price higher than agreed beforehand.
Programs must not override users inputs solely based on a probability of them being wrong.
Users can always override program outputs that are based on probability or incomplete information.
You must document all the features of the computer program accurately and make the documentation available to all users. Documentation is written in good faith.
Documentation must at a minimum describe the program inputs and the valid program outputs. If the output is based on probability, the documentation must explicit the probability for the program giving a valid output, and the probabilities of giving whatever invalid output.
When the program performance varies between users, any user can obtain the program performance in his/her particular case.
Every citizen is a user of a computer program used for law enforcement. Every citizen is a user of a computer program operating in the public space. Every citizen is a user of a program collecting its inputs.
No program shall force a human into repetitive tasks. "Computers are made for automating tasks, not enslaving humans."
A program must not require inputs from a user, that have no effect on the output. "No deceptive programs."
A program must warn the user when its inputs are ignored. "Split of responsibility."
A Program must never silently fail.
A program is provided to a user at a predetermined price. It cannot subsequently be removed from the user without its consent, made to produce invalid outputs, rendered useless or less valuable. "Programs do not wear and cannot be used to extort money from users."
Programs must not ignore users inputs solely based on a probability of them being wrong. "Unusual input is not necessarily invalid"
Users can always override program outputs that are based on probability or incomplete information. "In autonomous vehicles, justice, profiling"
Documentation for the program must be provided to the user. It is written in good faith, describes all the features, the program inputs, and the valid outputs.
If the program output is based on probabilities, the documentation must explicit the probability for the program to give a valid output.
When program performance varies between users, a user can know the probability of a valid output in its case.
A human providing inputs to a program, voluntarily or involuntarily, is a user of said program. "And as such has access to documentation".
https://tools.ietf.org/html/rfc8890
i like very much that the hypocratic oath starts with a long section on freely teaching & sharing. i believe both in teaching, but also taking great lengths to insure the machines we build are understandable, learnable, visible. any system closed off remote & far away from us is untrustworthy, almost certain to bring about surprising costs & damage to us, over time. the only responsible softwares & systems are ones that everyone can investigate & assess, can evaluate, to look for embedded elements of harm. and learn from, take the knowledge of- as all natural sciences grant!!- & learn from.
the oath goes on to say that those who don't uphold the oath should be denied the teachings & learnings. trust only those who will act for good & virtue.
the oath says we should act in a pure way, doing only the good we purport to bring, taking no other actions (ex, seducing someone in the house). again it is utmost to retain trust, to act only virtuously, for the end user, for the stated recipient.
things that happen between practitioner & their, i dunno, practitioner, are to be held in confidence, not shared, not spied on or surveilled for other use/misuse.
violators of the oath are to live short disrespected lives.
Product engineers are, in average, the most unethical of the bunch: the ones that will release broken software and charge the customer as if it was finished, the ones that will wait for the customer to find bugs before fixing them, the ones that will market their software as safe and fill their page with words like "secure, safe" and security related imagery like lock icons without actually backing it up with good practices... etc.
And the fact that changing jobs -- in case you have an ethical disagreement with your employer -- is awful abs hugely taxing on both your physical and mental health. And yes, that goes to programmers as well. It ain't all sunshine and rainbows as many claim.
In short: having an ethical code is irrelevant. It will be overridden by the business anyway so why waste your time composing it?
https://en.wikipedia.org/wiki/Hippocratic_Oath
--
TL;DR:
Respect and look after my mentors.
Teach my art for free to those following this oath; but not to others.
Do the best job I can according to my ability and judgement.
Always work in an ethical way; do no evil.
Respect privacy.
--
I swear by Apollo Healer, by Asclepius, by Hygieia, by Panacea, and by all the gods and goddesses, making them my witnesses, that I will carry out, according to my ability and judgment, this oath and this indenture.
To hold my teacher in this art equal to my own parents; to make him partner in my livelihood; when he is in need of money to share mine with him; to consider his family as my own brothers, and to teach them this art, if they want to learn it, without fee or indenture; to impart precept, oral instruction, and all other instruction to my own sons, the sons of my teacher, and to indentured pupils who have taken the Healer’s oath, but to nobody else.
I will use those dietary regimens which will benefit my patients according to my greatest ability and judgment, and I will do no harm or injustice to them.[7] Neither will I administer a poison to anybody when asked to do so, nor will I suggest such a course. Similarly I will not give to a woman a pessary to cause abortion. But I will keep pure and holy both my life and my art. I will not use the knife, not even, verily, on sufferers from stone, but I will give place to such as are craftsmen therein.
Into whatsoever houses I enter, I will enter to help the sick, and I will abstain from all intentional wrong-doing and harm, especially from abusing the bodies of man or woman, bond or free. And whatsoever I shall see or hear in the course of my profession, as well as outside my profession in my intercourse with men, if it be what should not be published abroad, I will never divulge, holding such things to be holy secrets.
Now if I carry out this oath, and break it not, may I gain for ever reputation among all men for my life and for my art; but if I break it and forswear myself, may the opposite befall me.[6] – Translation by W.H.S. Jones.
Do not create hidden/activated functions.(Think of VW diesel scandal, or other triggered back doors).
Respect peoples privacy.
You'd want other aspects for software freedom (see: GPL?) and ingrained limits in AI (see: all Isaac Asimov).
I shall forego code of conduct for the users of my code and let them behave freely.
Engineering oppression through biometrics, addiction, intruding privacy, etc.
Forget it. The idea is sort of well meaning but completely divorced from reality.