Slide 1

Slide 1 text

So you can sleep at night… ethics in software development Jonathan Rothwell @jorodev (he/him) © Zuhlke Engineering Ltd. 2017-2019 #SleepAtNight

Slide 2

Slide 2 text

#SleepAtNight @jorodev © Zuhlke 2019 3dman_eu / pixabay.com

Slide 3

Slide 3 text

#SleepAtNight @jorodev © Zuhlke 2019 3dman_eu / pixabay.com

Slide 4

Slide 4 text

#SleepAtNight @jorodev © Zuhlke 2019 3dman_eu / pixabay.com

Slide 5

Slide 5 text

#SleepAtNight @jorodev © Zuhlke 2019 3dman_eu / pixabay.com

Slide 6

Slide 6 text

#SleepAtNight @jorodev © Zuhlke 2019 3dman_eu / pixabay.com

Slide 7

Slide 7 text

#SleepAtNight @jorodev © Zuhlke 2019 3dman_eu / pixabay.com

Slide 8

Slide 8 text

#SleepAtNight @jorodev © Zuhlke 2019 Photo © European Parliament

Slide 9

Slide 9 text

#SleepAtNight @jorodev © Zuhlke 2019 –Greta Thunberg Adults keep saying: “We owe it to the young people to give them hope.” But I don’t want your hope. I don’t want you to be hopeful. I want you to panic. I want you to feel the fear I feel every day. I want you to act. I want you to act as you would in a crisis. I want you to act as if the house is on fire, because it is. Photo © European Parliament

Slide 10

Slide 10 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 11

Slide 11 text

CONTAINS: SCARY STORIES, SPECULATIONS FREE FROM: CONCLUSIONS PRODUCED IN A FACILITY CONTAINING NUTS ⚠

Slide 12

Slide 12 text

#SleepAtNight @jorodev © Zuhlke 2019 –Maciej Cegłowski, Build a Better Monster April 2017 http://idlewords.com/talks/build_a_better_monster.htm This year especially there’s an uncomfortable feeling in the tech industry that we did something wrong, that in following our credo of “move fast and break things”, some of what we knocked down were the load-bearing walls of our democracy.

Slide 13

Slide 13 text

#SleepAtNight @jorodev © Zuhlke 2019 “I’m just an engineer,” he said.

Slide 14

Slide 14 text

#SleepAtNight @jorodev © Zuhlke 2019 “I’m just an engineer,” he said.

Slide 15

Slide 15 text

#SleepAtNight @jorodev © Zuhlke 2019 No software exists in a vacuum. Software has context.

Slide 16

Slide 16 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 17

Slide 17 text

#SleepAtNight @jorodev © Zuhlke 2019 ACM Code of Ethics and Professional Conduct Affi rming our obligation to use our skills to benefi t society Code Code Code The Code • General Ethical Principles • Professional Responsibilities • Professional Leadership Principles • Compliance with the Code • Case Studies • Using the Code c1_ACM_Code0830.indd 1 8/30/18 10:44 AM We do have codes of conduct…

Slide 18

Slide 18 text

#SleepAtNight @jorodev © Zuhlke 2019 It’s impossible to get struck off 
 as a software developer.

Slide 19

Slide 19 text

#SleepAtNight @jorodev © Zuhlke 2019 Buddhism’s “Three Poisons” Ignorance Attachment Hatred CC https://en.wikipedia.org/wiki/File:Bhavacakra_Thikse.jpg

Slide 20

Slide 20 text

#SleepAtNight @jorodev © Zuhlke 2019 གཏི་muག Ignorance

Slide 21

Slide 21 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 22

Slide 22 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 23

Slide 23 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 24

Slide 24 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 25

Slide 25 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 26

Slide 26 text

#SleepAtNight @jorodev © Zuhlke 2019 “computer algorithm failure”

Slide 27

Slide 27 text

#SleepAtNight @jorodev © Zuhlke 2019 Bad software ruins people’s lives.

Slide 28

Slide 28 text

#SleepAtNight @jorodev © Zuhlke 2019 འདོད་ཆགས་ Attachment

Slide 29

Slide 29 text

#SleepAtNight @jorodev © Zuhlke 2019 Wouldn’t it be cool if…

Slide 30

Slide 30 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 31

Slide 31 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 32

Slide 32 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 33

Slide 33 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 34

Slide 34 text

#SleepAtNight @jorodev © Zuhlke 2019 “Oh, but that’s not us.
 We’re just doing …”

Slide 35

Slide 35 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 36

Slide 36 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 37

Slide 37 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 38

Slide 38 text

#SleepAtNight @jorodev © Zuhlke 2019 Censored!

Slide 39

Slide 39 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 40

Slide 40 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 41

Slide 41 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 42

Slide 42 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 43

Slide 43 text

#SleepAtNight @jorodev © Zuhlke 2019 only works if you are ✅ white ✅ cisgender

Slide 44

Slide 44 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 45

Slide 45 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 46

Slide 46 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 47

Slide 47 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 48

Slide 48 text

#SleepAtNight @jorodev © Zuhlke 2019 algorithm
 n. a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.

Slide 49

Slide 49 text

#SleepAtNight @jorodev © Zuhlke 2019 “the ALGORITHM”

Slide 50

Slide 50 text

#SleepAtNight @jorodev © Zuhlke 2019 “the ALGORITHM” NEUTRAL or Not Neutral ?

Slide 51

Slide 51 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 52

Slide 52 text

#SleepAtNight @jorodev © Zuhlke 2019 ALGORITHM FOR VALIDATING NAME INPUT IF name longer than 20 characters THEN name is not valid ELSE name is valid

Slide 53

Slide 53 text

#SleepAtNight @jorodev © Zuhlke 2019 ALGORITHM FOR VALIDATING NAME INPUT IF name longer than 20 characters THEN name is not valid ELSE name is valid NEUTRAL or Not Neutral ?

Slide 54

Slide 54 text

#SleepAtNight @jorodev © Zuhlke 2019 ALGORITHM FOR VALIDATING NAME INPUT IF name longer than 20 characters THEN name is not valid ELSE name is valid NEUTRAL or Not Neutral ?

Slide 55

Slide 55 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 56

Slide 56 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 57

Slide 57 text

#SleepAtNight @jorodev © Zuhlke 2019 ALGORITHM FOR DETECTING FACES AT PASSPORT GATES IF camera detects a beige/brown oval // maybe a face? THEN compare fleshy oval vs.
 passport biometrics

Slide 58

Slide 58 text

#SleepAtNight @jorodev © Zuhlke 2019 ALGORITHM FOR DETECTING FACES AT PASSPORT GATES IF camera detects a beige/brown oval // maybe a face? THEN compare fleshy oval vs.
 passport biometrics NEUTRAL or Not Neutral ?

Slide 59

Slide 59 text

#SleepAtNight @jorodev © Zuhlke 2019 ALGORITHM FOR DETECTING FACES AT PASSPORT GATES IF camera detects a beige/brown oval // maybe a face? THEN compare fleshy oval vs.
 passport biometrics NEUTRAL or Not Neutral ?

Slide 60

Slide 60 text

#SleepAtNight @jorodev © Zuhlke 2019 Photo credit: Emma Obanye @eobanye

Slide 61

Slide 61 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 62

Slide 62 text

#SleepAtNight @jorodev © Zuhlke 2019 ALGORITHM FOR DETERMINING IF A WOMAN IS A WITCH Dunk woman into a lake IF woman survives THEN declare her a witch AND execute her by hanging

Slide 63

Slide 63 text

#SleepAtNight @jorodev © Zuhlke 2019 ALGORITHM FOR DETERMINING IF A WOMAN IS A WITCH Dunk woman into a lake IF woman survives THEN declare her a witch AND execute her by hanging NEUTRAL or Not Neutral ?

Slide 64

Slide 64 text

#SleepAtNight @jorodev © Zuhlke 2019 ALGORITHM FOR DETERMINING IF A WOMAN IS A WITCH Dunk woman into a lake IF woman survives THEN declare her a witch AND execute her by hanging NEUTRAL or Not Neutral ?

Slide 65

Slide 65 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 66

Slide 66 text

#SleepAtNight @jorodev © Zuhlke 2019 “the ALGORITHM”

Slide 67

Slide 67 text

#SleepAtNight @jorodev © Zuhlke 2019 “the ALGORITHM”

Slide 68

Slide 68 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 69

Slide 69 text

#SleepAtNight @jorodev © Zuhlke 2019 Garbage in, garbage out

Slide 70

Slide 70 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 71

Slide 71 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 72

Slide 72 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 73

Slide 73 text

#SleepAtNight @jorodev © Zuhlke 2019 Why did we make technology that will live for 18 months, die, and never rot?

Slide 74

Slide 74 text

#SleepAtNight @jorodev © Zuhlke 2019 Image: Marlenenapoli / Wikimedia Commons

Slide 75

Slide 75 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 76

Slide 76 text

#SleepAtNight @jorodev © Zuhlke 2019 – Maciej Cegłowski, The Moral Economy of Tech Approaching the world as a software problem is a category error that has led us into some terrible habits of mind.

Slide 77

Slide 77 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 78

Slide 78 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 79

Slide 79 text

#SleepAtNight @jorodev © Zuhlke 2019 ཞེ་sdང Hatred

Slide 80

Slide 80 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 81

Slide 81 text

#SleepAtNight @jorodev © Zuhlke 2019 Some people do 
 consciously bad things.

Slide 82

Slide 82 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 83

Slide 83 text

#SleepAtNight @jorodev © Zuhlke 2019 But... Most people don’t believe they’re ‘bad people.’

Slide 84

Slide 84 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 85

Slide 85 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 86

Slide 86 text

#SleepAtNight @jorodev © Zuhlke 2019 “The company defended itself by explaining that “people have to expressly agree to use” the opt-in feature for importing their contacts on Messenger or Facebook Lite to allow Facebook to collect the cell phone data, but Sunday’s statement is the first time the social media company actually spelled out that practice in clear terms for users.”

Slide 87

Slide 87 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 88

Slide 88 text

#SleepAtNight @jorodev © Zuhlke 2019 What about people who 
 aren’t our users and customers, 
 but are still affected by our software? “As an , I want , so that ”

Slide 89

Slide 89 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 90

Slide 90 text

#SleepAtNight @jorodev © Zuhlke 2019 –Jacob Bronowski, The Ascent of Man, BBC “This is where people were turned into numbers. Into this pond were flushed the ashes of some four million people. And that was not done by gas. It was done by arrogance, it was done by dogma, it was done by ignorance.”

Slide 91

Slide 91 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 92

Slide 92 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 93

Slide 93 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 94

Slide 94 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 95

Slide 95 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 96

Slide 96 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 97

Slide 97 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 98

Slide 98 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 99

Slide 99 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 100

Slide 100 text

#SleepAtNight @jorodev © Zuhlke 2019 –Jacob Bronowski, The Ascent of Man, BBC “This is where people were turned into numbers. Into this pond were flushed the ashes of some four million people. And that was not done by gas. It was done by arrogance, it was done by dogma, it was done by ignorance.”

Slide 101

Slide 101 text

No content

Slide 102

Slide 102 text

#SleepAtNight @jorodev © Zuhlke 2019 What can we do?

Slide 103

Slide 103 text

#SleepAtNight @jorodev © Zuhlke 2019 Buddhism’s “Three Poisons” Ignorance Attachment Hatred CC https://en.wikipedia.org/wiki/File:Bhavacakra_Thikse.jpg

Slide 104

Slide 104 text

#SleepAtNight @jorodev © Zuhlke 2019 གཏི་muག་མེད་པ། Non-Delusion

Slide 105

Slide 105 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 106

Slide 106 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 107

Slide 107 text

#SleepAtNight @jorodev © Zuhlke 2019 We could all do with examining how the system unfairly benefits us personally… An uncomfortable truth dawned on me as I lugged my bike up and down flights of stairs in commuter-town train stations […] no ramps, no lifts. Before I’d had my own wheels to carry, I’d never noticed this problem. -Reni Eddo-Lodge Why I’m No Longer Talking To White People About Race

Slide 108

Slide 108 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 109

Slide 109 text

#SleepAtNight @jorodev © Zuhlke 2019 By UKBlackTech - https://ukblacktech.com/stockphotos/

Slide 110

Slide 110 text

#SleepAtNight @jorodev © Zuhlke 2019 hire a diverse team By UKBlackTech - https://ukblacktech.com/stockphotos/

Slide 111

Slide 111 text

#SleepAtNight @jorodev © Zuhlke 2019 hire a diverse team AND
 foster an inclusive environment By UKBlackTech - https://ukblacktech.com/stockphotos/

Slide 112

Slide 112 text

#SleepAtNight @jorodev © Zuhlke 2019 hire a diverse team AND
 foster an inclusive environment AND
 check your privilege By UKBlackTech - https://ukblacktech.com/stockphotos/

Slide 113

Slide 113 text

#SleepAtNight @jorodev © Zuhlke 2019 hire a diverse team AND
 foster an inclusive environment AND
 check your privilege AND
 use it to elevate marginalised voices By UKBlackTech - https://ukblacktech.com/stockphotos/

Slide 114

Slide 114 text

#SleepAtNight @jorodev © Zuhlke 2019 མ་ཆགས་པ། Non-Attachment

Slide 115

Slide 115 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 116

Slide 116 text

#SleepAtNight @jorodev © Zuhlke 2019 shiny

Slide 117

Slide 117 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 118

Slide 118 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 119

Slide 119 text

#SleepAtNight @jorodev © Zuhlke 2019 When things in real life that sound like satire start to happen, it's way past the time where we need to start reflecting on how we are fostering a society built on hate [...] We cannot let people advance tech for their own selfish reasons while they pretend that they're doing it for everyone. — Jenn Schiffer

Slide 120

Slide 120 text

#SleepAtNight @jorodev © Zuhlke 2019 Just because you can, it doesn’t mean you should

Slide 121

Slide 121 text

#SleepAtNight @jorodev © Zuhlke 2019 ཞེས་sdང་མེད་པ། Non-Hatred

Slide 122

Slide 122 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 123

Slide 123 text

#SleepAtNight @jorodev © Zuhlke 2019 Try to be nice… Always be kind.

Slide 124

Slide 124 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 125

Slide 125 text

#SleepAtNight @jorodev © Zuhlke 2019

Slide 126

Slide 126 text

#SleepAtNight @jorodev © Zuhlke 2019 The one effective lever we have against tech companies is employee pressure […] Unfortunately, the enemy is complacency. […] A workplace free of 'politics' is just one of the many perks the tech industry offers its pampered employees. – Maciej Cegłowski

Slide 127

Slide 127 text

#SleepAtNight @jorodev © Zuhlke 2019 Should we use our position to • resist handing control to a few dominant players? • break down, rather than entrench, social barriers and injustice?

Slide 128

Slide 128 text

#SleepAtNight @jorodev © Zuhlke 2019 But… who do we think we are to make this call?

Slide 129

Slide 129 text

#SleepAtNight @jorodev © Zuhlke 2019 But… who else is there?

Slide 130

Slide 130 text

#SleepAtNight @jorodev © Zuhlke 2019 Single In a Relationship Engaged Married In a civil partnership In an open relationship ✓It’s complicated Separated Divorced Widowed

Slide 131

Slide 131 text

#SleepAtNight @jorodev © Zuhlke 2019 Non-Delusion •Be humble. It’s OK to be wrong •Think about your concerns. Put them in writing.
 Make a conscious decision to do things •Have a life outside tech

Slide 132

Slide 132 text

#SleepAtNight @jorodev © Zuhlke 2019 Non-Attachment •Try not to be seduced by that framework, buzzword etc. •Think about hostile users, not just attackers •Be brave—make a conscious decision not to do things

Slide 133

Slide 133 text

#SleepAtNight @jorodev © Zuhlke 2019 Non-Hatred •Have a visible ethical charter—and back it up •Say no, or leave •Try to be nice—but always be kind to people

Slide 134

Slide 134 text

#SleepAtNight @jorodev © Zuhlke 2019 Be humble. Be brave. Be kind.

Slide 135

Slide 135 text

So you can sleep at night written and presented by Jonathan Rothwell @jorodev co-written with Steve Freeman @sf105 © Zuhlke Engineering Ltd. 2017-2019 #SleepAtNight

Slide 136

Slide 136 text

#SleepAtNight @jorodev © Zuhlke 2019 Responsibly Smashing Pandora’s Box by Yanqing Cheng @YanqingCheng https://www.infoq.com/ presentations/philosophy- personal-role Consequences of an Insightful Algorithm by Carina C. Zona @cczona https://www.youtube.com/ watch?v=YRI40A4tyWU Jenn Schiffer @jennschiffer at XOXO
 https://www.youtube.com/ watch?v=DrCD1wmK9oM Meeting Resistance and Moving Forward by Linda Rising @RisingLinda https://www.youtube.com/ watch?v=DrCD1wmK9oM

Slide 137

Slide 137 text

#SleepAtNight @jorodev © Zuhlke 2019 Links •http://idlewords.com/talks/notes_from_an_emergency.htm •http://idlewords.com/talks/sase_panel.htm •http://idlewords.com/talks/build_a_better_monster.htm •https://www.schneier.com/blog/archives/2013/10/the_battle_for_1.html •https://www.theguardian.com/technology/2017/may/07/the-great-british-brexit-robbery- hijacked-democracy •http://www-formal.stanford.edu/jmc/little/little.html •https://medium.com/s/story/data-violence-and-how-bad-engineering-choices-can-damage- society-39e44150e1d4

Slide 138

Slide 138 text

#SleepAtNight @jorodev © Zuhlke 2019 •Better - A Surgeon’s Notes On Performance
 written by Atul Gawande •IBM and the Holocaust: The Strategic Alliance between Nazi Germany and America's Most Powerful Corporation
 written by Edwin Black •Why I’m No Longer Talking To White People About Race
 written by Reni Eddo-Lodge Recommended Reading

Slide 139

Slide 139 text

#SleepAtNight @jorodev © Zuhlke 2019 With thanks to: • Dr Sal Freudenburg • Emma Obanye • Katherine Kirk • Kate Gray • Sebastiaan Peters • James Thomson • Ruth Yakubu for their help and encouragement • J. Rosenbaum • Dan Hon • Ivan Moore • Asad Razvi • Adrian Kosmaczewski • Paul Hudson • Friends and colleagues at Zuhlke

Slide 140

Slide 140 text

So you can sleep at night written and presented by Jonathan Rothwell @jorodev co-written with Steve Freeman @sf105 Thank you for coming ✨ © Zuhlke Engineering Ltd. 2017-2019 #SleepAtNight