The Reasonable Developer

A presentation at Isle of Ruby 2018 in April 2018 in Exeter, UK by Jayne Mast

Slide 1

Slide 1

The Reasonable Developer Paul Verbeek-Mast Front-end Developer @ Werkspot

Slide 2

Slide 2

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

Slide 3

Slide 3

Slide 4

Slide 4

Slide 5

Slide 5

“I’m just an engineer.”

Slide 6

Slide 6

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

Slide 7

Slide 7

Slide 8

Slide 8

The Reasonable Developer Paul Verbeek-Mast Front-end Developer @ Werkspot

Slide 9

Slide 9

Reasonable having sound judgement; fair and sensible

Slide 10

Slide 10

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

Slide 11

Slide 11

! "

$ Menlove Vaughan % % % % % %

Slide 12

Slide 12

Slide 13

Slide 13

did he behave like an ordinary, reasonable man?

Slide 14

Slide 14

The Legal Village & ' ( ) * + reasonable person reasonable o ! cer ordinary prudent man of business reasonable hairdresser fair-minded and informed observer

Slide 15

Slide 15

“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 16

Slide 16

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

Slide 17

Slide 17

Slide 18

Slide 18

Slide 19

Slide 19

“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 . It is perhaps the only area where the metrics do tell the true story as far as we are concerned” – Andrew Bosworth, VP @ Facebook https://www.buzzfeed.com/ryanmac/growth-at-any-cost-top-facebook-executive-defended-data

Slide 20

Slide 20

Slide 21

Slide 21

Ethical dilemmas
are everywhere

Slide 22

Slide 22

What is your product when it’s “free”

to use?

Slide 23

Slide 23

Slide 24

Slide 24

Slide 25

Slide 25

What is “safe enough” ?

Slide 26

Slide 26

Slide 27

Slide 27

Slide 28

Slide 28

How much effort should we put into preventing misuse ?

Slide 29

Slide 29

Slide 30

Slide 30

Slide 31

Slide 31

Should I fix this bug?

Slide 32

Slide 32

How much harm can
this bug cause?

Slide 33

Slide 33

What are we sharing back to the community?

Slide 34

Slide 34

Slide 35

Slide 35

Slide 36

Slide 36

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

Slide 37

Slide 37

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

Slide 38

Slide 38

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

Slide 39

Slide 39

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

Slide 40

Slide 40

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 41

Slide 41

Code of Ethics

Slide 42

Slide 42

ACM Code of Ethics and Professional Conduct 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. “An ACM member should”

Slide 43

Slide 43

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. ACM Software Engineering Code “A software engineer should”

Slide 44

Slide 44

ACM Code of Ethics and Professional Conduct https://www.acm.org/about-acm/acm-code-of-ethics-and- professional-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 45

Slide 45

What if you encounter ethical problems?

Slide 46

Slide 46

What is the problem exactly?

Slide 47

Slide 47

Who is affected?

Slide 48

Slide 48

What are the internal procedures?

Slide 49

Slide 49

What are the alternative actions?

Slide 50

Slide 50

ICAEW framework for resolving ethical problems https://www.icaew.com/technical/ethics/framework-for- resolving-ethical-problems

Santa Clara University framework for ethical decision making https://www.scu.edu/ethics/ethics-resources/ethical-decision- making/a-framework-for-ethical-decision-making/

Slide 51

Slide 51

Ethics is an integral part of software development

Slide 52

Slide 52

Don’t just act reasonable. Act responsible.

Slide 53

Slide 53

Create your own code of ethics, and live by it

Slide 54

Slide 54

You are not
“just an engineer”

Slide 55

Slide 55

Thank you

Slide 56

Slide 56

Paul Verbeek-Mast @paul_v_m Front-end developer @ Werkspot