Software developers should sign a code of ethics, like other professions do and then cite it when asked to do unscrupulous things. This would work for activities that aren't illegal but still unethical, like defaulting user privacy choices to open/public. Citing professional organizations like ACM or IEEE would deter retaliation.
No. I oppose any formal requirement to practice software development. And this isn't because I disagree about the requirement to be ethical, but because it would draw a moat of "professionalisation" around software development, excluding new entrants. It's a fashionable trend across many disciplines: it starts innocuously with informal groups and seminars. Then someone starts one or more professional bodies which devise some sort of qualification. Then they start charging a yearly or triennial renewal fee for that qualification. Then they try to make it impossible to get work without their qualification. The profession comes under the thumb of people who spend their time getting on to the committees which control these professional bodies.
That can be reasonable for something like medicine or structural engineering. But is it appropriate for a developer cranking out Javascript or Excel macros? This is pulling up the drawbridge behind you, excluding anyone who comes to the profession through informal means - and in my generation, that meant almost everyone. It also means that you will need to determine how much of your time you dedicate to politics.
Those are all fair points, but the Internet and smartphones happened. Software is a necessity for existing in society these days. Yeah it sucks that we'd be pulling up the drawbridge. Donate some of your software developer salary to non-profits to make testing accessible to whichever groups you see as the younger version of you to assuage your guilt. Crowdstrike shouldn't have been possible. Mulitple airlines going down for days because they botched an upgrade because it wasn't properly resourced. Someone cranking out some silly shit on the weekend doesn't need licensing, but having unprotected S3 buckets full of drivers license photos of your users in this day and age should be criminally liable.
There you are discussing ability and responsibility. Those are entirely different matters from a professional association requiring you to sign up to a code of ethics.
They are not. That's the point of a professional association, to connect ability with responsibility. It defines what competence looks like and how to enforce it when it fails. Without that link, you just have people claiming skill with no mechanism for accountability. Most of software already looks like that which is the entire problem!
Yes, the Hippocratic Oath works quite well even if it has no legal underpinnings, so why not use the same idea for developers? Indeed ACM and IEEE could draft one.
It only works because doctors have a self-governing body of other doctors as an oversight, usually called a chamber, board, Kammer, etc. This chamber is responsible for licensing doctors to perform medicine and has the power to withdraw that license upon violations of the Hippocratic Oath, other ethical violations and other professional misconduct or malpractice.
Unless you want this kind of arrangement for developers, the oath isn't any good.
Also, the Hippocratic Oath has tons of variants, nobody uses the original one anymore because there are things in there that went out of fashion over the last 2000 years. E.g. operating on people suffering from kidney stones used to be prohibited: "I will not use the knife, not even, verily, on sufferers from stone[...]" (https://en.wikipedia.org/wiki/Hippocratic_Oath ). Similar prohibitions exist nowadays for abortions or euthanasia, but only in some places. In others, doctors are free to or even required to perform those. In software development, I would imagine even more variety in the allowed/prohibited-list.
Our board would be packed with Scrum lords smacking down on missing field entries in Jira tickets.
I would like more 'philosophy' in CS education. Just that people are aware of the methods used against them helps alot. It is hard and takes time to discover stuff on your own. It took me like 5-10 years of working before I realized how the sausage is made.
not only, in most countries operating as a physician requires a license to operate. It can be revoked if the professional violates the terms of the license.
If software had such a thing, it would be possible to achieve something similar. It is not the oath per se that keeps doctors on the righteous path, it is just as much the treath of not loosing your job - but having your professional status revoked (i.e. permamently loosing the ability to work).
On the other hand, reviewing code every now and then, it would be good if you could revoke programming privileges for ever for certain individuals.
I absolutely want this arrangement for developers. We need to grow up as a profession, and take responsibility for the consequences of our actions.
This isn't the 90s anymore. Today there's practically nothing you can do in the modern world without interacting with software. Buying food, going to the hospital, travelling, communicating, voting, going to school, using anything electrical, anywhere. Our society is completely dependent on software at this point. The fact that there's no professional ethics code with the appropriate oversight for the development and maintenance of software is utterly insane.
The points you bring up about the Hippocratic Oath are important problems to solve, rather than reasons not to try.
Not taking away from your point, but just a PSA: For some reason "First, do no harm" is synonymous with "Hippocratic Oath" in pop-culture. Just a reminder that this is apocryphal: https://en.wikipedia.org/wiki/Hippocratic_Oath
Surgeons, in fact, often begin with harm. To replace a hip joint, they necessarily must begin by causing great trauma to the body by cutting it open and removing bone.
That's far too literal an interpretation of harm. The point isn't to never do any kind of "physical harm". It's about doing the least amount of harm possible/necessary in any situation, where doing nothing can also be seen as causing harm.
I had a burst appendix as a teenager, leading to peritonitis. To treat this, surgeons were going to operate laparoscopically to remove the appendix and fix remove any contamination in the peritoneum. Obviously this required damaging my skin, removing an organ etc. which in the strictest sense is harm. But doing nothing at all would obviously lead to sepsis and death, so this was still the least harmful intervention. During the surgery, it turned out that the laparoscopic method was hard to carry out due to obesity and other factors. The attending made the decision to convert to a laporotomy, doing even more harm to my skin and leaving me with a 30 cm scar on my stomach. But it was the right call because it maximised the chances of accomplishing the goal of the procedure(preventing imminent death), minimising the risk of serious complications.
And here I am almost 20 years later. I have a scar, I have some adhesions that occasionally cause moderate abdominal pain if I don't eat enough fibre, and perhaps my lymphatic system and gut flora are very minorly compromised in some nebulous way due to the lack of an appendix. On the other hand, I'm alive. So yes, they "did harm", but they also minimised harm. And they didn't do any unnecessary harm, to the best of their ability. And that's the point of the ethical principle.
Why do you believe it works? I don't particularly get the sense it has any effect whatsoever, particularly in cases where doctors are pressured to do harm. (There's also a lot of ambiguity left in what constitutes "harm")
Casual of research shows that the ACM's Code of Ethics can be traced back to its Guidelines for Professional Conduct in Information Processing dating back to 1966 (https://www.acm.org/code-of-ethics/1966-acm-code) and the IEEE's Code of Ethics can be traced back to a precursor organization's Code of Professional Conduct dating to 1912.
Yeah some people choose to wear rosy glasses when it comes to the medical profession. They can see corruption around them but they can't imagine it exists in every walks of life. Kind of gell-man amnesia.
I remember reading that no med schools in the U.S. use the actual Hippocratic Oath anymore, although it seens that most schools have sone form of oath.
No, it's just a bunch of counter-intuitive rules that if followed make life better for both the developers and their customers/bosses. (On most circumstances, not all.)
If the customers/bosses do not even allow those to be followed, what chance do you think some pro-social rules with actual costs have?
We are using the term 'software engineer' in two different ways:
1. The way most people here on HN, and most people in the US, understand it.
2. The way the laws in most of Canada (but not Alberta) define the term.
AIUI someone can design and develop software for pay in Canada without declaring themselves to be a 'software engineer' and without signing a code of ethics.
It's unclear and barely enforced in Canada. Ontario has a two-step test for defining "software engineering":
* The development of the software required the application of engineering principles (ie. "a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software")
* The software concerns the public interest (ie. there is a reasonable expectation that failure or inappropriate functioning of the system would result in harm to life, health, property, economic interests, the public welfare or the environment).
In practice, LinkedIn is full of "software engineers" and anyone with a P. Eng uses it as a suffix.
The code of ethics would need to be absolute, enforceable, unambiguous (without lawyers to interpret), and universal to really eliminate these activities.
Software engineering could become a real profession with licensing like mechanical, electrical, chemical, civil, and other engineering professions. If you do something unethical, you could be sued for malpractice and lose your license to practice.
The code of ethics for Professional Engineers works even though it isn’t any of the things you say are necessary.
Licensed professions only serve to increase the scarcity of licensed professionals, drive up the price and thereby form an economic cartel. Neither does it prevent any of the aforementioned disasters, nor are the responsible professionals held liable.
"Licensed professionals" is one of those myths in software engineering cycles that won't die. A license won't make anyone competent. It will, however, provide them with an excuse to charge more, do less and ascribe any fuckups to "must be something else wrong, I did everything to board standards"...
That's a weird set of anecdotes you've chosen. The first half of those incidents are in fact the opposite of what you seem to be complaining about: finding the Professional Engineers that signed off on the mistakes in the project is hard to do because they happened in countries that failed to regulate Professional Engineering licenses.
The Chernobyl disaster is an operation mistake, which a Professional Engineer may have signed the process for operation, but an operational failure to follow process is not the Professional Engineer's fault. Sure, a professional will try to narrow processes to be as fool-proof as possible, but you can't entirely blame a professional that the planet is capable of generating far more fools than you can plan for.
The Fukushima disaster actually shows Professional Engineering consequences with multiple engineering groups doing analysis and investigations of what went wrong and whether or not to indict Professional Engineers involved in the construction. None of those moved to such indictments, but it was investigated at length. Three of the executives of the company were indicted as a part of those investigations (and then were judged "not guilty" in a Japanese court of law).
"Licensed professionals" is not a myth. A license isn't about making anyone competent, it is about applying consequence when they aren't. It's also about having your back when you are worried about possible consequences. "I can't do that because I would lose my license" is a threat companies have to take seriously. If your company wants to force you to pursue it anyway, you can take the issue to the Ethics Committee at your licensing board/professional organization and they can help you examine the legal, ethical, and moral implications in a way that could result in consequences to your company. If all of that is documented and the company still does it anyway it is easier to get legal consequences applied to company executives, such as real, deserved jail time.
In the Brumadinho case, five engineers were arrested and charged and jailed. They are out of jail and a criminal case is ongoing.
In the Bhopal disaster, seven engineers and executives were convicted of causing death by negligence and give the maximum penalty (which was pretty weak).
The Chernobyl incident led to Anatoly Dyatlov to be jailed and getting a 10-year sentence.
For Fukushima, some people were charged with professional negligence causing death but they beat the charges in court.
Licensing will not make anybody competent. But it can help keep incompetent people out of our field. When Engineers screw up, their malpractice insurance may get too expensive for them to continue to work in the field. When management asks for something unethical, it gives a pretty good reason for pushing back.
Can you imagine how much worse it would be without that? Because how do you show the negative? There have definitely been cases where professionally licensed engineers have said no, or refused to sign off on something, or walked off the job, or otherwise have changed the course of human history for the better because of that code of ethics. That there have been failures in the system doesn't indight the concept as a whole. Software runs the world these days, it's time to grow up.
Which is why I think the ACM's code of ethics is good for someone looking to be introspective about right and wrong but would be terrible as the basis for a legal code of ethics.
The scope would necessarily be narrower and "permit" more unethical behavior but for violations to be enforced by peers it has to survive the eventual "oh you're making a big fuss over nothing, you won't lose your license" problem.
You can never make these kinds of things unambiguous. People are really creative about inventing interpretations to make things ambiguous in their favor, and rule systems are really complex.
More to the point is trying to be an ethical island in an unethical society, You'd have to deal with constant attacks from the "anti-woke" crowd.
If you are to be found in violation by DAO jury vote, you will be blocked from all private torrent trackers and usenet groups (we just have to make sure all of them mods are onboard mkay), with threat of ban for repeat offenders.
You may also find your support tickets everywhere languishing and x months of CAPTCHA-hell on every website.
I wonder how would that work when you are working for companies like Lockheed Martin, knowing your code will be used in weapon that may kill innocent people.
Presumably similar to how it works for the professional Mechanical Engineers and Electrical Engineers they already employ. Ethics are subjective and nuanced. Ethics are also different from morals. Some people can live with the moral quandary that their work may do harm to innocent people and still have the ethical belief that they are doing the right thing generally and that their work does more good than harm. (I'm not one of those people myself with regards to the military-industrial complex, but I respect my friends that are have sat with their morals and weighed them into the ethical frameworks of how they do their jobs and what they feel about doing their jobs ethically.)
It's easy, you just tell yourself that all of them are the enemy. As long as you outsource your morality and thinking to the Department of State, you can sleep easy.
For a little bit I worried about that, wondered whether I would be morally comfortable working on that technology. Then Russia invaded Ukraine and I snapped back to reality. The consequences of even vaguely good actors not having missiles are worse than the consequences of those actors having missiles. Because you better believe Putin and his ilk are going to have them.