> For the complete documentation index, see [llms.txt](https://yoan-thirion.gitbook.io/knowledge-base/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yoan-thirion.gitbook.io/knowledge-base/software-craftsmanship/practices/dev-ethics.md).

# Dev ethics

## Connection - 10'

Imagine you are working for the ***most ethic company on earth*** :

* You just delivered a new revolutionary product
* You and your teammates are on the front page of every TV channel
* You are recognized and praised on all sides

![](/files/-MTA-bGvQVNjYwuYTIre)

#### Draw this breaking news (in groups)

* Cover – states the spectacular success accomplished by the company
* Headers – reveal what the story is about
* Sidebars – include parts of the report
* Quotes – testimonials about the accomplishment from anyone imaginable
* Images – pictures that support the cover story
* Brainstorm – used for writing down ideas before starting the activity

## Concepts - 10'

![Ethics definition](/files/-MTA0bLa_kyUroiT21A-)

### What do they have in common ?

![](/files/-MTA0wdCgDHSsxW02HTY)

{% hint style="info" %}
Almost any professional whose work impacts the public must abide by some sort of &#x65;***thical code of conduct***.
{% endhint %}

### Hippocratic Oath

![](/files/-MTA1Kya8zQTE19mQrhx)

Hippocrates, the “Father of Medicine,” around 500 B.C. has written the famous oath which has guided the practice of medicine.

**No Dev's Oath ?**

### W**hy** should we take ethics into consideration ?

Software is eating the world

![](/files/-MTA1pzm2OIewgI87B4F)

Imagine a life without software : zombies ?

* Phones don’t ring
* Cars don’t start
* Planes don’t fly
* Bombs don’t explode
* Money doesn’t change hands
* Electricity doesn’t get generated

#### Software is everywhere

In our society, virtually nothing happens without the involvement of some kind of computer program.

### What is software at the end ?

Software is a set of rules if we think about it

* Our civilization doesn’t quite realize how dependent it has become on software
* ***How many hours do you spend on your computers, smartphones, cars each day ?***

![](/files/-MTA29upnLqz-mUGaZ5a)

### Software can hurt

* **2015** : independent tests revealed that Volkswagen engineers programmed cars to cheat emissions standards
* **2016** : U.S. presidential election - Facebook/Twitter Epidemic of fake news, and now is inextricably linked to
* **2018** : Boeing 737 Max crashes because of software problems
* **2018** : Cambridge Analytica’s : weaponization of personal user information

{% hint style="info" %}
***Social exclusion, various environmental impacts, ....***
{% endhint %}

### Where are we as an industry ?

* Will things get better or worse?
* Most of developers don’t ultimately feel it’s their responsibility if unethical products go live.
  * Are they right?
  * [Milgram experiment](https://en.wikipedia.org/wiki/Milgram_experiment)

#### Who is responsible ?

![](/files/-MTA2o19J3g0OuxOgQbK)

Code doesn't kill people, who does it ?

* Product managers do ?
* Shareholders ?
* CEOs ?
* Developers ?

Do we all need to be informed and responsible?

### Devs as the last Bastion ?

![](/files/-MTA33RMhcVgjX9IgwpT)

1st time in human being history that ethics, philosophy and technics are intimately bounds

![](/files/-MTA3WDNqV90QdUrletz)

### What is our future ?

![](/files/-MTA3oR6r9H2svIhxSKq)

**AI**

* At a faster rate than employment policy can adjust to how this impacts on our economies and on individual livelihoods
* AI are displacing jobs
* Black box algorithms that replicate systemic discrimination have also been raised

{% hint style="info" %}
Business and startups can play a huge role in designing technology that supports human society by designing software ethically.
{% endhint %}

#### Some brilliant in are raising warnings

![](/files/-MTA4ELVcOZ22fKANktj)

"*Nous devons être conscients des dangers, les identifier, et employer les meilleures pratiques et cadres pour nous préparer à ses conséquences bien en avance, avait-il déclaré lors d’une conférence. La montée de l’IA pourrait être la pire ou la meilleure chose qui soit jamais arrivée à l’humanité.*" - **Stephen Hawking**

## Concrete Practice - Create your own oath - 30'

Based on the breaking news : ***create an oath*** to design ethical software

1. Think about your current and last projects
   * Did they respect environment, human beings ?
   * Did your clients respect your own ethic ?
2. On which kind of projects you like to work on ?
   * For who you want to work ?
   * Which kind of environments ?
   * With whom ?
3. What do you enjoy in your work ?

Maybe different levels : Developer / Product / Client / Society

* 10’ en pair
* 5’ en groupe
* 5’ all together
* 10’ Finalization

## Conclusion - Existing Oaths - 10'

### [ACM code of ethics](https://www.acm.org/code-of-ethics)

* **Contribute to society and human well-being**.&#x20;
  * Programmers should work to develop computer systems that can reduce negative consequences to society, such as threats to safety and health, and that can make everyday activities and work easier.&#x20;
  * It is “an obligation to develop to high standards”
* **Avoid harm to others**.&#x20;
  * Computer systems have an indirect impact on third parties.&#x20;
  * They can cause loss of information and resources that might result severely harmful for users, the general public, or employers.&#x20;
  * Therefore, software developers should minimize the risk of harming others due to [coding errors](https://en.wikipedia.org/wiki/Error_code), or security issues, by following standards to design and test systems
* **Be honest and trustworthy**.&#x20;
  * This principle encourages programmers to be honest and aware of their limitations in knowledge and education when writing computer systems.&#x20;
  * Also, if a programmer knows there is something wrong with a computer system, he or she should report it immediately to avoid undesirable consequences

### [The Programmer's Oath](https://blog.cleancoder.com/uncle-bob/2015/11/18/TheProgrammersOath.html)

![](/files/-MTA8xQzSs3lNQtKZ34G)

Watch [his video](https://youtu.be/36NgPu9OyRM?list=PLWKjhJtqVAbno-B4RmJHCDO0ZUKC2tpUQ) :

![](/files/-MTA9uFtdWPumR1SRCdW)

### Existing principles

* [5 principles of software ethics](https://thenewstack.io/five-principles-software-ethics/) – Steven Wilmott
* [Association for Computing Machinery (ACM) code of ethics](https://en.wikipedia.org/wiki/Programming_ethics)
* [The programmer’s Oath ](https://blog.cleancoder.com/uncle-bob/2015/11/18/TheProgrammersOath.html)– Uncle Bob
* [A Code of Ethics for (Agile) Software Developers ](https://medium.com/the-liberators/a-code-of-ethics-for-agile-software-developers-430b9a879be6)? - Christiaan Verwijs

### Limitations

![](/files/-MTAAbPYRBAeOEREfwHf)

{% hint style="danger" %}
Ethical codes only work when they are embraced by the majority of developers and become a part of educational training.
{% endhint %}

#### Everything is not dark

![](/files/-MTAArb0mUyZm3uagwso)

[7 principles of AI by Google](https://www.blog.google/technology/ai/ai-principles/)

![](/files/-MTAB4LA4yYGpJuPm6SK)

![](/files/-MTAB8Yl0bD--MnSjKS1)
