Slide 1

Slide 1 text

@xgouchet @xgouchet Being an Ethical Developer CodeMobile UK 2019 - Chester

Slide 2

Slide 2 text

@xgouchet @xgouchet About me… Xavier F. Gouchet Android developer since the Cupcake years Lead Android Engineer at WorkWell @xgouchet on every social network you can think of… 2

Slide 3

Slide 3 text

@xgouchet @xgouchet Let’s make this happen 3

Slide 4

Slide 4 text

@xgouchet @xgouchet Introduction 4

Slide 5

Slide 5 text

@xgouchet @xgouchet Why this talk ? 5

Slide 6

Slide 6 text

@xgouchet @xgouchet 6 StackOverflow Survey 2018

Slide 7

Slide 7 text

@xgouchet @xgouchet 7 Spoiler Alert I will mostly ask questions… … answer a few of them… … but will give a few pointers

Slide 8

Slide 8 text

@xgouchet @xgouchet What does ethical mean ? ethics /ˈɛθɪks/ n. moral principles that govern a person's behaviour or the conducting of an activity moral /ˈmɒr(ə)l/ adj. concerned with the principles of right and wrong behaviour. extralegal /ˌɛkstrəˈliːɡ(ə)l/ adj. (of an action or situation) beyond the province of the law. 8

Slide 9

Slide 9 text

@xgouchet “ @xgouchet Ethics and morals are subjective. For the first time, the answer is not true || false 9

Slide 10

Slide 10 text

@xgouchet @xgouchet 10 … with your users

Slide 11

Slide 11 text

@xgouchet @xgouchet Give a f*** about what your users think? Would your users be happy if they were in the meeting room ? Would you make the same choices ? Are your users also your clients ? 11

Slide 12

Slide 12 text

@xgouchet @xgouchet App Store / Play Store reviews ★★★★★ The UI doesn’t scroll smoothly ★☆☆☆☆ Best 12

Slide 13

Slide 13 text

@xgouchet @xgouchet Tip Give a name to your users Alice, Bob, Charlie, … Aragorn, Bilbo, Celeborn, … 13

Slide 14

Slide 14 text

@xgouchet @xgouchet Who will be impacted by the code you write ? How will your users be impacted, directly or indirectly ? Social Networks ? Online Presence ? Device ? 14

Slide 15

Slide 15 text

@xgouchet “ @xgouchet Our computers are thousands of times more powerful than the ones that brought man to the moon. Yet every other webpage struggles to maintain a smooth 60fps scroll on the latest top-of-the-line MacBook Pro. — Nikita Prokopov 15

Slide 16

Slide 16 text

@xgouchet @xgouchet Is this UI / UX relevant? Ask anyone using a dedicated piece of software: Is the UI / UX sensible for them? Is the UI / UX accessible? 16

Slide 17

Slide 17 text

@xgouchet @xgouchet 17 Ask questions ? Does the feature make sense ? Is the design appropriate ?

Slide 18

Slide 18 text

@xgouchet @xgouchet … with your code 18

Slide 19

Slide 19 text

@xgouchet @xgouchet Should we ship a Minimum Viable Product ? Should we fix every single bug ? 19 To ship or not to ship ?

Slide 20

Slide 20 text

@xgouchet @xgouchet Maintaining your app? Which bug to fix ? To fix first ? Which OS version to support ? Keep maintaining old versions for 1% of the user base ? 20

Slide 21

Slide 21 text

@xgouchet @xgouchet Tip Take ownership of the codebase If you see an issue in someone else’s code, it becomes your responsibility too. 21

Slide 22

Slide 22 text

@xgouchet @xgouchet 22 Do not trust your instincts… Credit : John Manoogian III

Slide 23

Slide 23 text

@xgouchet “ @xgouchet Your scientists were so preoccupied with whether they could, they didn't stop to think if they should. — Ian Malcolm (Jurassic Park) 23

Slide 24

Slide 24 text

@xgouchet @xgouchet 24 Subscriptions and Billing

Slide 25

Slide 25 text

@xgouchet @xgouchet Say no ! Not so long ago, in a bank website open space… 25

Slide 26

Slide 26 text

@xgouchet @xgouchet 26 Anticipate misuse How can the code be misused ? Hacked ?

Slide 27

Slide 27 text

@xgouchet @xgouchet 27 Apple Web Camera Shutter Credit : @SwissMacUser

Slide 28

Slide 28 text

@xgouchet @xgouchet 28 Microsoft Hololens

Slide 29

Slide 29 text

@xgouchet @xgouchet 29 Deep Learning, Armless right ? Credit : http://thispersondoesnotexist.com

Slide 30

Slide 30 text

@xgouchet @xgouchet 30 Deep Learning, Armless right ?

Slide 31

Slide 31 text

@xgouchet “ @xgouchet When you invent a new technology, you also invent the accident of that technology. — Elan Mastain (All our Wrongs Today) 31

Slide 32

Slide 32 text

@xgouchet @xgouchet Open Source Licenses Do you check what license is used on libraries you depend on ? Do you check what it means for your code ? 32

Slide 33

Slide 33 text

@xgouchet @xgouchet Intellectual Property Do you credit third party libraries in your app ? Do you credit the code snippet you copied/pasted from StackOverflow ? Do you credit the authors of content in your app ? Do you make money off of them ? 33

Slide 34

Slide 34 text

@xgouchet @xgouchet Ethics and Deontology 34

Slide 35

Slide 35 text

@xgouchet @xgouchet 35 Utilitarianism (J. Bentham) Credit : “The Good Place” by Michael Schur / Netflix

Slide 36

Slide 36 text

@xgouchet @xgouchet 36 Good Will (E. Kant) Credit : “The Good Place” by Michael Schur / Netflix

Slide 37

Slide 37 text

@xgouchet @xgouchet 37 Wait for lawmakers to deal with the issue

Slide 38

Slide 38 text

@xgouchet @xgouchet Existing thoughts 38

Slide 39

Slide 39 text

@xgouchet @xgouchet Universal Declaration of Human Rights ● United Nations ● 1948 39

Slide 40

Slide 40 text

@xgouchet @xgouchet Universal Declaration of Human Rights Article 12. No one shall be subjected to arbitrary interference with his privacy, family, home or correspondence, nor to attacks upon his honour and reputation. Everyone has the right to the protection of the law against such interference or attacks. 40

Slide 41

Slide 41 text

@xgouchet @xgouchet Universal Declaration of Human Rights Article 19. Everyone has the right to freedom of opinion and expression; this right includes freedom to hold opinions without interference and to seek, receive and impart information and ideas through any media and regardless of frontiers. 41

Slide 42

Slide 42 text

@xgouchet @xgouchet The Software Engineering Code of Ethics and Professional Practice ● IEEE/CS & ACM ● 1997 ● Version 5.2 (1999) ● https://ethics.acm.org/code-of-ethics/software-engineering-code 42

Slide 43

Slide 43 text

@xgouchet @xgouchet The SE Code of Ethics and Professional Practice 1. Software engineers shall act consistently with the public interest. 1.01. Accept full responsibility for their own work. […] 1.06. Be fair and avoid deception in all statements, particularly public ones, concerning software or related documents, methods and tools. 43

Slide 44

Slide 44 text

@xgouchet @xgouchet The SE Code of Ethics and Professional Practice 4. Software engineers shall maintain integrity and independence in their professional judgment. 4.01. Temper all technical judgments by the need to support and maintain human values. […] 44

Slide 45

Slide 45 text

@xgouchet @xgouchet Programmer's Oath ● ‘Uncle’ Bob Martin ● 2015 ● Equivalent to the Hippocratic Oath ● https://blog.cleancoder.com/uncle-bob/2015/11/18/TheProgrammersOath.html 45

Slide 46

Slide 46 text

@xgouchet @xgouchet Programmer's Oath I Promise that, to the best of my ability and judgement I will not produce harmful code. The code that I produce will always be my best work. […] I will never stop learning and improving my craft. 46

Slide 47

Slide 47 text

@xgouchet @xgouchet 47 Conclusion

Slide 48

Slide 48 text

@xgouchet @xgouchet An ethical mindset ✘ “Primum non nocere” ✘ Don’t take anything for granted ✘ Think before you code anything ✘ Take ownership 48

Slide 49

Slide 49 text

@xgouchet @xgouchet Going Further ✘ Dark Patterns : https://darkpatterns.org/ @darkpatterns ✘ “Responsibly Smashing Pandora’s Box” by Yanqing Cheng ✘ Just World License / https://github.com/raisely/NoHarm ✘ Cognitive Biases ✘ Human Rights / SE Code of Ethics / Programmer’s Oath 49

Slide 50

Slide 50 text

@xgouchet @xgouchet thanks! Any questions? 50 Presentation template by SlidesCarnival