Widdershin / programmers-oath

An oath for programmers, comparable to the Hippocratic Oath
Creative Commons Zero v1.0 Universal
723 stars 138 forks source link

Mentions of not discriminating and the environment #110

Open pimmen opened 6 years ago

pimmen commented 6 years ago

I recently looked at the Archimedean Oath and I think we miss tenets about not disenfranchising people because of their religion, ethnicity, gender or such and respecting the environment.

Examples of the first one is the field I work in, machine learning. As decisions are made more and more often by ML models I think engineers have a moral responsibility to make sure the decisions don't make an impact for one group at the expense of another through bias. At least, I think they should be mindful of the bias in their data when they make models.

An example of the second would be the defeat device of Volkswagen, I think a moral programmer should turn down building software who's sole purpose is to trick environmental regulators and keep hurting the planet.

I suggest changing tenet 8 to address the issue of discrimination.

I will consider the possible consequences of my code and actions. I will not write software that hurts people based on religion, nationality, race, sex, wealth and politics.

And creating a new tenet for the environment.

I will practise respect for the environment.

manuel-uberti commented 6 years ago

I agree on both accounts, although I am not sure I like the phrasing for the new tenet you propose. Maybe something like:

I will not build software that can be used to harm the environment

Not sure, to be honest, but I find it better to focus on the code and its consequences, like the other tenet you mentioned.

pimmen commented 6 years ago

To be honest, algorithms are just tools and can have all kinds of applications so I don't think we should promise to not build anything that can harm the environment but rather to you shouldn't build stuff that will hurt the environment.

So, maybe compromising it to I will not write software to harm the environment to shift the focus to your actions rather than the actions of future adopters of your code.

But I kind of like my formulation too, I think practising respect conveys a lot, albeit it is a bit vague.

manuel-uberti commented 6 years ago

Definitely better than my alternative! :+1:

pachunka commented 6 years ago

It seems to me that harming the environment harms people, so I see this as being covered by tenet no.1. But, on some level, I agree with the compulsion to mention it overtly, so I'm in two minds.

A mention of the environment in no.1 mightn't go astray. I wouldn't go for a whole separate tenet, though - it belongs squarely with the tone of no.1, if it belongs.

On the other hand altogether, and I guess I'm repeating myself here, it still seems like preventing 'environmental harm' is an obvious extension of preventing human harm. The two don't exist separately. It's hard not to consider the addition redundant.

Same would be true for harm based on discrimination, as mentioned in the opening post - people are people; do no harm.

pimmen commented 6 years ago

The things is though that we need to make short term harms to patches of the environmrnt to live, agriculture is one example. Avoiding needless harm of the environment and building sustainable tech is to choose future generations of humans over the interests of the current population. I think that is significant enough because saying ”do no harm to humans” raises the question ”am I really harming humans when I’m ruining the environment for future generations, when the current population won’t notice much? I mean, the future generations don’t really exist yet and can I harm something that doesn’t exist?”

pachunka commented 6 years ago

I like your summary question.

”am I really harming humans when I’m ruining the environment for future generations"

Probably. I mean, you never know, ruin might be the prompt we all need to get our extra-solar colonies in gear, but let's round off to "Yes, it's harmful" for sanity's sake.

"future generations don’t really exist yet and can I harm something that doesn’t exist?"

It's definitely possible to cause good or harm for a future that hasn't come yet - albeit with mixed results. Luckily, in the context of the oath, future generations are guaranteed to exist: as long as 'humans' are the subject of tenet no.1, the oath expires with its species. ;)

So, yes, I'd say "do no harm to humans" easily covers future generations.

I was gonna stop there, and this might be off-topic, but I'll go for it:

This discussion made me realise - the oath has two requirements - one is technical accuracy, and one is inspiration. Maybe it's worth name-dropping future generations of humanity somewhere in the oath, just to remind people what we're working towards.

I hope this isn't just me, but "The Environment" evokes, for me, a picture of this planet. "Future Generations" evokes it too, but also the moon, Mars, other stars, and who-knows-where-else... I'm a big Earth fan, but there's a decent chance there's more in our future, so if something to the effect of 'environment', 'future generations' etc. is to show up in the oath, I'd rather see it be as broad as it can be.

pimmen commented 6 years ago

The problem is that value of future humans vs. present humans is not something everyone agrees on, if we did there would be no debate around abortion for example. I would thus say that even though you think the environment is easily covered by the first tenet I can definitely see another engineer take the oath, harm the environment for the good of the people on this planet here and now and be shocked that we're judging him or her for it.

I don't know if I think it should be as broad as it can be because that leaves too much up to interpretation. It's the same thing with discrimination really, it's not really about "don't do any harm" because if we would apply that super broadly you can't stop people from hurting others, thus most people will interpret it as not stopping a violent person is more harmful than subduing the offender. Same thing with discrimination, people could easily view it as they were protecting their tribe from the other tribe and they harmed everyone from the enemy tribe just to be sure. I think we have to explicitly state that discrimination is bad and in what shapes it comes very briefly just to make sure that engineers won't think they were allowed to because they had some beef with a tribe.

ghost commented 6 years ago

I think that we should reword the discrimination thing to simply: I will not discriminate among my fellow humans based on our differences. Using specific traits is likely to get outdated with social progress and new moral ideas.

pimmen commented 6 years ago

I like that idea too, I just hopes the message comes across; that you can't judge people for something they haven't done themselves simply because they share some trait with an offender. Judging individuals for their actions is ok, judging them based on their origins and identity is not.

pimmen commented 6 years ago

Do you have any opinions @Widdershin ?

Widdershin commented 6 years ago

Strongly in favour of having a tenet that condemns discrimination and one for taking care of the world around us. There's some great suggestions in this thread that I intend to turn into changes to the oath.