Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Being an Ethical Developer

Being an Ethical Developer

Xavier Gouchet

April 02, 2019

More Decks by Xavier Gouchet

Other Decks in Programming


  1. @xgouchet @xgouchet Being an Ethical Developer CodeMobile UK 2019 -

  2. @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
  3. @xgouchet @xgouchet Let’s make this happen 3

  4. @xgouchet @xgouchet Introduction 4

  5. @xgouchet @xgouchet Why this talk ? 5

  6. @xgouchet @xgouchet 6 StackOverflow Survey 2018

  7. @xgouchet @xgouchet 7 Spoiler Alert I will mostly ask questions…

    … answer a few of them… … but will give a few pointers
  8. @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
  9. @xgouchet “ @xgouchet Ethics and morals are subjective. For the

    first time, the answer is not true || false 9
  10. @xgouchet @xgouchet 10 … with your users

  11. @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
  12. @xgouchet @xgouchet App Store / Play Store reviews ★★★★★ The

    UI doesn’t scroll smoothly ★☆☆☆☆ Best 12
  13. @xgouchet @xgouchet Tip Give a name to your users Alice,

    Bob, Charlie, … Aragorn, Bilbo, Celeborn, … 13
  14. @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
  15. @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
  16. @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
  17. @xgouchet @xgouchet 17 Ask questions ? Does the feature make

    sense ? Is the design appropriate ?
  18. @xgouchet @xgouchet … with your code 18

  19. @xgouchet @xgouchet Should we ship a Minimum Viable Product ?

    Should we fix every single bug ? 19 To ship or not to ship ?
  20. @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
  21. @xgouchet @xgouchet Tip Take ownership of the codebase If you

    see an issue in someone else’s code, it becomes your responsibility too. 21
  22. @xgouchet @xgouchet 22 Do not trust your instincts… Credit :

    John Manoogian III
  23. @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
  24. @xgouchet @xgouchet 24 Subscriptions and Billing

  25. @xgouchet @xgouchet Say no ! Not so long ago, in

    a bank website open space… 25
  26. @xgouchet @xgouchet 26 Anticipate misuse How can the code be

    misused ? Hacked ?
  27. @xgouchet @xgouchet 27 Apple Web Camera Shutter Credit : @SwissMacUser

  28. @xgouchet @xgouchet 28 Microsoft Hololens

  29. @xgouchet @xgouchet 29 Deep Learning, Armless right ? Credit :

  30. @xgouchet @xgouchet 30 Deep Learning, Armless right ?

  31. @xgouchet “ @xgouchet When you invent a new technology, you

    also invent the accident of that technology. — Elan Mastain (All our Wrongs Today) 31
  32. @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
  33. @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
  34. @xgouchet @xgouchet Ethics and Deontology 34

  35. @xgouchet @xgouchet 35 Utilitarianism (J. Bentham) Credit : “The Good

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

    Good Place” by Michael Schur / Netflix
  37. @xgouchet @xgouchet 37 Wait for lawmakers to deal with the

  38. @xgouchet @xgouchet Existing thoughts 38

  39. @xgouchet @xgouchet Universal Declaration of Human Rights • United Nations

    • 1948 39
  40. @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
  41. @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
  42. @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
  43. @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
  44. @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
  45. @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
  46. @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
  47. @xgouchet @xgouchet 47 Conclusion

  48. @xgouchet @xgouchet An ethical mindset ✘ “Primum non nocere” ✘

    Don’t take anything for granted ✘ Think before you code anything ✘ Take ownership 48
  49. @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
  50. @xgouchet @xgouchet thanks! Any questions? 50 Presentation template by SlidesCarnival