[HN Gopher] Software Development Ethics
       ___________________________________________________________________
        
       Software Development Ethics
        
       Author : zdw
       Score  : 36 points
       Date   : 2023-05-14 16:32 UTC (1 days ago)
        
 (HTM) web link (theprogrammersparadox.blogspot.com)
 (TXT) w3m dump (theprogrammersparadox.blogspot.com)
        
       | SamuelAdams wrote:
       | (Unpopular opinion): I feel like ethics are made up laws that
       | people try to enforce when they're just jealous someone else did
       | something first.
       | 
       | If something is actually a problem for citizens, ask your
       | legislators to make a law encompassing fair use and other
       | compliance standards. Don't just make up new ethical rules and
       | pretend barriers because you're jealous.
       | 
       | If you thought of and executed ChatGPT, or Tindr, or Facebook,
       | before their creators, would you still have the same "ethical"
       | views that you claim should be followed?
       | 
       | Also reading through the article, some of the author's
       | propositions are insane. For example:
       | 
       | > So, for in-house batch jobs, they are started and stopped by
       | operations personnel
       | 
       | No, the whole point of some of our work is to increase automation
       | and reduce opex costs, so that companies don't need to hire
       | people because people are expensive and risky.
       | 
       | > Second, a computer should never lie or trick the users
       | 
       | This requires users to be informed on what their device is doing.
       | How many people actually read the terms and conditions of the
       | services they use? If they can't even be bothered to read that,
       | what's to say they're going to read another long, boring document
       | that explains what every feature of your app does so they cannot
       | claim they were "tricked"?
       | 
       | Sure dark patterns are not very fantastic - we can absolutely
       | address those. But creating an informed user-base is very
       | challenging.
        
         | rileymat2 wrote:
         | I think that you are missing that laws are much more a sort of
         | minimum bright line black and white standard, where ethics can
         | be much grayer and enforced more subjectively. Life has a lot
         | of gray areas.
         | 
         | Typically it is not someone just making them up out of
         | jealousy, it is an organization that comes to consensus about
         | how they want to be viewed as a group. This is a good thing.
         | 
         | It is important to have both.
        
         | kazinator wrote:
         | > _If you thought of and executed ChatGPT, or Tindr, or
         | Facebook, before their creators, would you still have the same
         | "ethical" views that you claim should be followed?_
         | 
         | Publicly, the purveyors of all of the above purport to have
         | ethics.
         | 
         | OpenAI's models have safeguards in them against discussing some
         | topics and providing certain information.
         | 
         | I suspect it's just a social survival strategy for these
         | companies, nothing more; not an actual commitment to ethics.
        
         | mitt_romney_12 wrote:
         | > How many people actually read the terms and conditions of the
         | services they use?
         | 
         | A big part of the reason no one reads them is because they're a
         | giant legal document. If you want to inform your users you
         | could say something like "Hey this is what kind of data we
         | collect and what kinds of people we share it with" it doesn't
         | cover everything but it gives people a much better idea of what
         | they are actually agreeing to
        
       | commandlinefan wrote:
       | > not make it easy for lies and hate speech
       | 
       | Lawyers have an actual defined code of ethics that they have to
       | follow or they loser their license, defined by people whose job
       | it is to make rules. Even theirs isn't this draconian. I'm pretty
       | sure I don't want to be bound by somebody else's code of ethics
       | and I _know_ I don 't want to be bound by this guy's.
        
       | fwlr wrote:
       | " Basically, it is a commitment that we will not build evil
       | things for evil people. "
       | 
       | What about building evil things for good people? Building good
       | things for evil people? Who gets to write the source code of the
       | `isEvil(foo)` function, and can I fork it if I disagree?
       | 
       | The section on automation seems deeply confused; first it says
       | that automation must always be manually triggered by the people
       | involved, then in the next sentence it provides guidance on
       | scheduling cron jobs, which would seem to be ruled out by the
       | manual triggering rule. Signing up users to an email list
       | automatically and without a way for them to remove themselves is
       | presented as an example of the kind of evil automation this would
       | prevent, and I agree it should be prevented as I don't like that
       | either, but it goes on to demonstrate that the proposed rule also
       | inhibits things I think are okay, like if I authenticate with
       | TouchID I want my Mac to sign in with whatever credentials it has
       | at its disposal.
       | 
       | The second section on never lying to or tricking users is
       | similarly deeply flawed; it is motivated again by a good example
       | of disallowing unreadable EULAs that sign away personal data, but
       | again goes on to demonstrate its own overbroadness - which
       | reaches so far that it absurdly claims that _not solving the
       | cache invalidation problem is a moral violation_.
       | 
       | The third section is somehow worse still; in trying to make a
       | developer ethically liable for anything anyone does with their
       | code, it positions itself at odds with several of the most common
       | and venerable open sources licenses that vast chunks of software
       | have been built on and released under. Aside from the fact that
       | this is simply unworkable on a level even Stallman would balk at,
       | "opposing some of the most common licenses" should have clued in
       | the author that their document does not align with most software
       | developer moral codes.
        
         | 908B64B197 wrote:
         | Ethics is a trend.
         | 
         | It's whatever is trendy to say or think at the moment. A set of
         | arbitrary unenforceable rules to shame practices that is
         | decided by whoever convinced other ethicist to grant him a PhD.
         | 
         | Of course, all that is done without going through the rigor of
         | making these practices illegal. That would have a real impact.
         | And require real work.
         | 
         | > The section on automation seems deeply confused
         | 
         | It makes no sense at all. The author claims to be technical but
         | honestly it reads as something someone who never programmed
         | anything would write. Just knowing the "jargon" and trying to
         | sound like they are more knowledgeable than they are. I noticed
         | "Ethics of X" is generally a great field for those who can't
         | cut it in field X. See the "Ethics of AI crowd as an example",
         | that seems to be mostly made of "tech adjacent" folks. Probably
         | the best example here [0].
         | 
         | > make a developer ethically liable for anything anyone does
         | with their code
         | 
         | That's plain nonsense.
         | 
         | [0] https://syncedreview.com/2020/06/30/yann-lecun-quits-
         | twitter...
        
         | gabereiser wrote:
         | Who gets to define "evil"? What's one man's trash... I'm all
         | for creating a cause but we can do better than "good" vs
         | "evil".
        
         | austin-cheney wrote:
         | Discussions of software and ethics are often painful, because
         | the mere concept of ethics is so utterly foreign and unknown to
         | software as an industry.
         | 
         | Ethics is not about right versus wrong. That is morality. So
         | for this conversation it does not matter if a given software is
         | evil, a given client is evil, or if anybody cares that any of
         | these are evil. Evil is irrelevant and highly subjective.
         | 
         | Ethics is about conformance to rules that govern practice and
         | behavior. In industries that observe ethics the violations of
         | such rules don't just mean you get fired. It means you can
         | never do that job for anybody ever again. The goal is to ensure
         | that people practicing in a given field of work prioritize the
         | quality of work above that of profit or employer demands.
        
           | saghm wrote:
           | That makes sense, but I'd argue that OP opened the door to
           | actual moral questions by characterizing their ethical code
           | as "don't do evil things for evil people". Even if ethical
           | codes are a morality-neutral set of rules, that goes out the
           | window when the rules themselves start adding explicit moral
           | requirements.
           | 
           | Even ignoring the fact that the article itself defines its
           | rules in a moral context, I feel like GP's concerns over the
           | content are equally valid even just as professional rules. I
           | thought the part about cache validation was hyperbole, but
           | no, it's literally right there in the article: "Stale stuff
           | in a cache would be an ethics violation". I don't really see
           | how this would be a remotely reasonable rule for an
           | industrial ethical code that you describe. If we're putting
           | "stale cache results" in the list of rules where breaking
           | them doesn't "just mean you get fired", but that "you can
           | never do that job for anybody ever again", we might as well
           | just all just retire as software developers and take up a new
           | trade; even the best programmers in the world accidentally
           | write buggy code sometimes, so we'd be better off finding
           | some other job on our own terms rather than waiting for
           | inevitably getting "disbarred" (or whatever the equivalent
           | term here would be).
        
           | fwlr wrote:
           | A quick search of morals vs ethics:
           | 
           | First result claims morals are your sense of right and wrong,
           | ethics are the good and evil agreed upon by your community.
           | [1]
           | 
           | Second and third results claim "morals" and "ethics" are used
           | interchangeably. The second says even philosophers of
           | ethicists consider them interchangeable. Both of them then
           | add that if a distinction is to be drawn, they agree with the
           | first. [2][3]
           | 
           | The fourth result says the opposite, that ethics is an
           | "individual assessment" while morality is an "intersubjective
           | community" evaluation.
           | 
           | I don't think the terms are as cleanly separated as your
           | comment suggests. I also firmly disagree with this other
           | claim that the "mere concept of ethics is utterly foreign and
           | unknown" to software as an industry.
           | 
           | 1: https://www.verywellmind.com/morality-vs-ethics-what-s-
           | the-d...
           | 
           | 2: https://www.britannica.com/story/whats-the-difference-
           | betwee...
           | 
           | 3: https://www.diffen.com/difference/Ethics_vs_Morals
           | 
           | 4: https://theconversation.com/amp/you-say-morals-i-say-
           | ethics-...
        
             | eikenberry wrote:
             | You are mistaking pop-ethics for ethics. Ethics has a
             | technical terminology (which the GP presents) that doesn't
             | 100% align with pop-usage, as is very common in many
             | fields. If you want to talk in detail about a subject
             | matter it is usually best to align your thoughts with the
             | specialists to avoid having to re-hash things they have
             | already sorted out. This is in comparison to talking to a
             | general audience where these sorts of details aren't
             | important (and this is reflected in your references) where
             | even the specialists won't differentiate.
        
       | dcow wrote:
       | Considering this was published on 4/20, I have to assume the
       | author was way beyond even unintelligibly high when they wrote
       | this. Ethics in software is a super interesting topic! Sadly,
       | this piece does absolutely nothing to advance the dialog and
       | reads like it's written by someone who spent less than 20 seconds
       | thinking about the topic, who made absolutely no attempt to
       | include prior art, before barfing up the unoriginal and
       | completely passe idea that tool builders should be culpable for
       | how people choose to use their tools, as if anybody actually has
       | the authority or power to restrain downstream use cases of the
       | free expression of ideas (as they pertain to programming
       | machines) in a practical and meaningful way. Oh and BTW software
       | automation is unethical, because, gah whothefuckcares why am I
       | even responding to this piece...
        
       | forshadowing_ wrote:
       | [dead]
        
       | belfalas wrote:
       | I have a hunch that this article is either someone being humorous
       | or incredible naive.
       | 
       | To wit:
       | 
       |  _> First, no matter how many instructions are executed for any
       | type of automation, the code must always be triggered by humans.
       | Not someone, or anyone, but the actual people involved._
       | 
       | The author is against traffic lights?
       | 
       |  _> A big part of this is that the data presented to the users
       | must be correct, at all times. So, it must be named correctly,
       | modeled correctly, stored correctly, cleaned correctly, and
       | presented correctly. Stale stuff in a cache would be an ethics
       | violation. Badly modeled data that is broken is one as well._
       | 
       | The author would in all likelihood have to turn themselves in -
       | and besides, who gets to decide the meaning of words like
       | "correct" or "badly modeled"? Also, how does this work with
       | things like eventual consistency? (Remember, reality itself is
       | eventually consistent!)
       | 
       |  _> The third part is to not enable chaos, strife, and discord.
       | This is the hardest of the three._
       | 
       | This is indeed hard. However, consider how far-reaching this
       | statement is. Chaos, strife, and discord are caused by human
       | actors with intent -- we should now include telegram (the old
       | kind), telephone communication, physical letters, etc.
       | 
       | I would be curious to hear the author's opinion on mass
       | surveillance to enforce all these rules, as that would seem to be
       | necessary if you were really going to to do this.
       | 
       | That said, these concerns are not new. When someone creates
       | technology, it is almost guaranteed to be abused, even if that
       | was not the creators intent.
        
       | booleandilemma wrote:
       | It's just wishful thinking. The way the industry is, if you won't
       | do the job, your boss will just find someone else who will. And
       | they'll probably be paid lower too.
        
         | BurningFrog wrote:
         | I'm not aware of any industry where doing the job you're hired
         | for is optional.
        
           | KirillPanov wrote:
           | CPAs, Lawyers, Civil Engineers, ...
           | 
           | Basically every job that is called a "profession" is
           | _explicitly_ expected to refuse their paymaster 's demands
           | when they are unethical.
        
             | kazinator wrote:
             | Yes, and there would be clear areas where programmers
             | should do the same thing. Say you are are employed by some
             | firm that does programming for banks, and you're told to
             | put in some hack to take salami slices out of transactions.
             | You're being asked to break the law; if you participate,
             | you could go to jail.
             | 
             | There can exist code whose only purpose, only effect is to
             | perpetrate some harm or break the law.
             | 
             | This article is saying that even if you hear that some
             | innocent code of yours is being used in an evil program,
             | you are obligated to do something.
             | 
             | I mean, that even goes against free software. If I put out
             | some innocent GPL or BSD licensed thing, and someone uses
             | it for evil, and then I try to use my copyright holder
             | position to wrangle the use out of their hands, it is no
             | longer free software.
             | 
             | Oh, and don't forget that non-free, closed-source software
             | is what is unethical in some circles.
        
             | spacemadness wrote:
             | Or regulated areas like medical device design/firmware. You
             | may end up in court and needing to defend yourself if you
             | go along with business leaders who think ethics are just a
             | blockade to profits.
        
         | edrxty wrote:
         | I think the goal is to make sure that there isn't a ton of
         | available talent for evil projects. Obviously there are
         | assholes who will happily build slaughter bots for a comfy
         | lifestyle but if we minimize that pool, the economy as a whole
         | will have a hard time getting enough people to build every evil
         | project that anyone comes up with.
        
           | kazinator wrote:
           | > _make sure that there isn 't a ton of available talent for
           | evil projects_
           | 
           | AI will address that. Smaller talent can write more via
           | prompt-drive code generation and refactoring; it just has to
           | check that it's not garbage.
           | 
           | > _assholes who will happily build slaughter bots_
           | 
           | Chances are you live in a country that owns fleets of
           | machines which fit that description, out of the taxes that
           | you pay, under the direction of the government you elected.
        
       | slindsey wrote:
       | ACM code of ethics and a discussion about it below. Otherwise a
       | good general article. We (developer related jobs) need to be able
       | to push back. But then again, some people just don't care, as
       | long as they get paid. I still think a guild, union, or some
       | similar organization is necessary.
       | 
       | https://ethics.acm.org/code-of-ethics/software-engineering-c...
       | 
       | https://news.ycombinator.com/item?id=32783007
        
       | trunnell wrote:
       | Look past the flaws of this particular code of ethics.
       | 
       | The better question: Is it time for us to adopt _some_ code of
       | ethics?
       | 
       | Many other professions have important ethical standards.
       | Medicine, law, civil engineering, and many other fields. These
       | standards are broadly respected by the public.
       | 
       | Surely by this point we can all see that software is often just
       | as critical as bridges, medicine, justice, and other public
       | goods. Should we not hold ourselves to some standard?
        
       | byteCoder wrote:
       | My son just graduated from Northeastern University's Khoury
       | College of Computer Sciences.
       | 
       | At his Khoury College graduation celebration a week ago, this is
       | the first time that the following oath was recited by the
       | graduating class:
       | 
       | KHOURY COLLEGE OATH FOR COMPUTING
       | 
       | Today, I join the ranks of computer scientists worldwide.
       | 
       | I will remember that I remain a member of society, with special
       | obligations to all my fellow human beings.
       | 
       | I will design and build computing systems that enhance the
       | quality of daily life for individuals and for society.
       | 
       | I will protect the dignity of users and others affected by
       | computing systems, respecting the diversity of all cultures, and
       | safeguarding against threats to health and safety.
       | 
       | I will respect the privacy and rights of all people and recognize
       | the special role I have in judiciously collecting, storing and
       | using their information, and creating systems that aim to shape
       | their behavior.
       | 
       | I will work for fair wages; honorably guarding my reputation and
       | my colleagues in our work practices, while respecting the
       | intellectual contributions of others.
       | 
       | I will improve the public understanding of computing and its
       | consequences.
       | 
       | May I always act to preserve the finest traditions of my field,
       | and may I long experience the joy of inventing the future through
       | my endeavors.
        
         | byteCoder wrote:
         | Here's a link to it:
         | https://www.khoury.northeastern.edu/about/dean-elizabeth-
         | myn....
        
         | spaced-out wrote:
         | >I will work for fair wages; honorably guarding my reputation
         | and my colleagues in our work practices, while respecting the
         | intellectual contributions of others.
         | 
         | What does this mean? What's an example of an unfair wage?
        
           | loa_in_ wrote:
           | You can work for $1000 and it might be fair.
           | 
           | But if you see your colleague doing as much as you do and
           | more for $600 then neither of you is working for a fair wage.
        
       | kodah wrote:
       | I don't normally comment on articles that I don't like, but this
       | is just awful. It diverges so far away from ethics that it's
       | practically someones moral musings. For instance:
       | 
       | > So, for in-house batch jobs, they are started and stopped by
       | operations personnel. Someone also has to explicitly schedule
       | them to run at a frequency. Those people are the ones that
       | 'operate' the software and provide it as a service for the users.
       | They are on the hook for it, so they need to be able to control
       | it.
       | 
       | I used to be one of these folks. I now write operational software
       | that _operates_ other software, but I was the guy pushing the
       | button. For one, if you 're the button pusher you probably know
       | very little about what the code actually does. You're often more
       | familiar with how it behaves on a system, some high level KTLO
       | metrics, and some basic runbooks. To shove all of the
       | responsibility for software outcomes on them is _problematic_ to
       | say the least. Historically, Ops folks are also some of the least
       | paid people in tech, aside from analysts and the position is
       | largely outsourced these days.
       | 
       | People like this should not write or participate in ethical
       | codes. Ethical codes are high level frameworks that involve
       | processes for reporting violations, not some rigid structure on
       | how "everything needs to be done this way". They'll provide
       | criteria to abide by that helps readers ensure they are following
       | the system.
       | 
       | I work in a lot of highly regulated industries that involve
       | governments; the code for how to treat government workers and
       | adjacency is _just that_ and _necessarily that_. The reason is
       | that corruption is not black and white, you can 't just name off
       | familial relationships and hope you've covered everything.
       | Instead you have to refer to things like undue influence. You
       | also can't just name off "gifts"; for instance, if the company
       | comps something due to a bad experience is that a "gift"? Of
       | course not, but a sufficiently rigorous ethical code would make a
       | world where refunds were controversial. All of these things also
       | come with a responsibility to document your tracks and operate in
       | the clear. The minute you stop operating in the clear you might
       | not be charged with a crime, depending on what a reviewing
       | committee can uncover, but you'll certainly be out of a job.
       | 
       | For this, I think something like the IEEE should be building a
       | code of ethics for software. They have the acumen and are
       | industry-aware enough to sort through various contexts and make
       | sure the code is verbose yet light enough to stand the test of
       | time without incurring prohibition style statements like, "let's
       | bring back operators".
        
       | thesuperbigfrog wrote:
       | "It is unethical unless your library is in opposition to some
       | other oppression."
       | 
       | One person's 'freedom fighter' is another person's terrorist.
       | 
       | These ethics guidelines strike me as well-intentioned, but naive.
       | 
       | "If you write something innocent and later find out that it is
       | being used for evil, you are now obligated to do something about
       | that. You can't ignore it or say you didn't know. You are now
       | stuck and have to do your best to make that situation better."
       | 
       | If you create a library and a state-sponsored hacking group uses
       | it, what are you expected to do? Call them out? It is not like
       | other users of your library would associate you with the hacking
       | group. Anytime a general purpose tool is released a devious
       | creative mind might find a way to use it that the original
       | creator did not think of.
        
       | kazinator wrote:
       | > _So we, as software developers, need an ethical code._
       | 
       | We do? Says who?
       | 
       | Why don't people who make hunting rifles or kitchen knives need
       | this ethical code?
       | 
       | Cars can run over people on purpose; why do auto makers not need
       | an ethical code about that, only about safety?
       | 
       | OK, let's step away from the strawman and discuss only software
       | whose only conceivable use is killing people. Is that
       | automatically evil, though? Say that your country is at war and
       | your government orders you to write such a thing. If you don't
       | you could be tried as a traitor.
        
         | dcow wrote:
         | Under this complete nonsense of an attempt at spitting out
         | words remotely related to ethics, if the author's argument were
         | to be applied to other industries, then car manufacturers would
         | be culpable for people running a car into a street parade, and
         | thus shouldn't build cars.
        
           | rileymat2 wrote:
           | The professional engineers that produce many part of the car
           | do have ethics. https://www.nspe.org/resources/ethics/code-
           | ethics
        
       ___________________________________________________________________
       (page generated 2023-05-15 23:01 UTC)