The Reasonable Developer

A presentation at Dynabyte Tech Talk in September 2018 in Skarpögatan 4, 115 27 Stockholm, Sweden by Jayne Mast

Slide 1

Slide 1

The Reasonable Developer Paul Verbeek-Mast Senior Software Engineer @ Confrere noti.st/paul

Slide 2

Slide 2

Content warnings Detailed description of sexual assault Image of raw meat Image of Mark Zuckerberg

Slide 3

Slide 3

“I’m just an engineer.

Slide 4

Slide 4

“Once the rockets are up, who cares where they come down? — Tom Lehrer (in ‘Wernher von Braun’)

Slide 5

Slide 5

Slide 6

Slide 6

The Reasonable Developer Paul Verbeek-Mast Senior Software Engineer @ Confrere noti.st/paul

Slide 7

Slide 7

Reasonable having sound judgement; fair and sensible

Slide 8

Slide 8

Normal distribution & standard deviation L’Homme Moyen (The Average Man)

Slide 9

Slide 9

! $ " Menlove Vaughan 😭 🔥 🔥 🔥 🔥 🔥 🔥

Slide 10

Slide 10

Did he behave like an ordinary, reasonable man?

Slide 11

Slide 11

The Legal Village ( ) reasonable hairdresser reasonable officer &' + fair-minded and informed observer reasonable person 🕴 ordinary prudent person of business

Slide 12

Slide 12

The Legal Village ( ) reasonable hairdresser reasonable officer &' + fair-minded and informed observer reasonable person 🕴 ordinary prudent person of business

Slide 13

Slide 13

“Fitbit helped expose woman's false rape claim in Lancaster County. http://www.pennlive.com/news/2016/04/watch_today_segment_on_how_fit.html

Slide 14

Slide 14

https://twitter.com/internetofshit/status/692004889380179968

Slide 15

Slide 15

Slide 16

Slide 16

Slide 17

Slide 17

“ The ugly truth is that we believe in connecting people so deeply that anything that allows us to connect more people more often is de facto good. – Andrew Bosworth, VP @ Facebook https://www.buzzfeed.com/ryanmac/growth-at-any-cost-top-facebook-executive-defended-data

Slide 18

Slide 18

Slide 19

Slide 19

Ethical dilemmas are everywhere

Slide 20

Slide 20

Ethical dilemmas are everywhere • What is your product when it’s “free to use?” • Are we bullying instead of persuading? • What is “safe enough”? • How much effort should we put into preventing misuse? • Are we focussing enough on all our potential users? • How much harm can our product cause? • What are we sharing back to the community?

Slide 21

Slide 21

What is your product when it’s “free to use”?

Slide 22

Slide 22

Paying Candy Crush Saga users (3%) paid on average $150 https://www.psychguides.com/interact/the-psychology-of-freemium/

Slide 23

Slide 23

You pay with your personal information

Slide 24

Slide 24

“50% of mobile data is used to download ads” —Yoav Weiss https://confrere.com/pricing

Slide 25

Slide 25

Slide 26

Slide 26

Slide 27

Slide 27

Are we bullying instead of persuading?

Slide 28

Slide 28

Slide 29

Slide 29

Slide 30

Slide 30

Slide 31

Slide 31

Slide 32

Slide 32

Slide 33

Slide 33

Slide 34

Slide 34

Slide 35

Slide 35

What is “safe enough“?

Slide 36

Slide 36

Slide 37

Slide 37

Slide 38

Slide 38

Slide 39

Slide 39

Slide 40

Slide 40

How much effort should we put into preventing misuse?

Slide 41

Slide 41

Slide 42

Slide 42

Slide 43

Slide 43

Slide 44

Slide 44

Slide 45

Slide 45

Slide 46

Slide 46

Are we focussing enough on all our potential users?

Slide 47

Slide 47

How much harm can our product cause?

Slide 48

Slide 48

37 women who used the app came to Södersjukhuset for an abortion.

Slide 49

Slide 49

What are we sharing back to the community?

Slide 50

Slide 50

Slide 51

Slide 51

• What is your product when it’s “free to use?” • Are we bullying instead of persuading? • What is “safe enough”? • How much effort should we put into preventing misuse? • Are we focussing enough on all our potential users? • How much harm can our product cause? • What are we sharing back to the community?

Slide 52

Slide 52

Slide 53

Slide 53

Would you write code that’s clearly unethical? No Depends on what it is Yes 58.5% 36.6% 4.8% https://insights.stackoverflow.com/survey/2018/#ethics

Slide 54

Slide 54

Would you report unethical code? Depends on what it is 46.6% Yes, but only within the company 35.7% Yes, and publicly 13.1% No 4.6% https://insights.stackoverflow.com/survey/2018/#ethics

Slide 55

Slide 55

Who is ultimately most responsible? Upper management 57.5% The person who came up with the idea 22.8% The developer who wrote it 19.7% https://insights.stackoverflow.com/survey/2018/#ethics

Slide 56

Slide 56

Do developers have an obligation to consider the ethical implications of their code? Yes Unsure / I don’t know No 79.6% 14.3% 6.1% https://insights.stackoverflow.com/survey/2018/#ethics

Slide 57

Slide 57

A Reasonable Developer 1. Does not write code that’s clearly unethical; 2. Reports any unethical code; 3. Holds upper management responsible for accomplishing something unethical; 4. Is obligated to consider ethical implications of their code.

Slide 58

Slide 58

How to deal with ethical dilemmas.

Slide 59

Slide 59

Think about the ethical implications, before and during development.

Slide 60

Slide 60

The Tarot Cards of Tech by Artefact https://www.artefactgroup.com/the-tarot-cards-of-tech/

Slide 61

Slide 61

https://www.artefactgroup.com/the-tarot-cards-of-tech/

Slide 62

Slide 62

https://www.artefactgroup.com/the-tarot-cards-of-tech/

Slide 63

Slide 63

Create an internal code of ethics

Slide 64

Slide 64

Create an internal code of ethics

Slide 65

Slide 65

ACM Code of Ethics and Professional Conduct “An ACM member should” 1. Avoid harm; 2. Contribute to society and to human well-being, acknowledging that all people are stakeholders in computing; 3. Be fair and take action not to discriminate; 4. Design and implement systems that are robustly and usably secure.

Slide 66

Slide 66

ACM Software Engineering Code “A software engineer should” 1. Accept full responsibility for their own work; 2. Be careful to use only accurate data derived by ethical and lawful means, and use it only in ways properly authorized; 3. Avoid associations with businesses and organizations which are in conflict with this code.

Slide 67

Slide 67

ACM Code of Ethics and Professional Conduct https://www.acm.org/about-acm/acm-code-of-ethics-andprofessional-conduct ACM Software Engineering Code (with IEEE) https://ethics.acm.org/code-of-ethics/software-engineering-code/ IEEE Code of Ethics https://www.ieee.org/about/corporate/governance/p7-8.html

Slide 68

Slide 68

What if you encounter ethical problems?

Slide 69

Slide 69

What is the problem exactly?

Slide 70

Slide 70

Who is affected?

Slide 71

Slide 71

What are the internal procedures?

Slide 72

Slide 72

What are the alternative actions?

Slide 73

Slide 73

ICAEW framework for resolving ethical problems https://www.icaew.com/technical/ethics/framework-forresolving-ethical-problems Santa Clara University framework for ethical decision making https://www.scu.edu/ethics/ethics-resources/ethicaldecision-making/a-framework-for-ethical-decision-making/

Slide 74

Slide 74

Ethics are an integral part of software development.

Slide 75

Slide 75

Don’t just act reasonable. Act responsible.

Slide 76

Slide 76

Create you own code of ethics. And live by it.

Slide 77

Slide 77

You are not “just an engineer.”

Slide 78

Slide 78

Thank you! Paul Verbeek-Mast Senior Software Engineer confrere.com @paul_v_m | noti.st/paul