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 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
  2. @xgouchet @xgouchet 7 Spoiler Alert I will mostly ask questions…

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

    first time, the answer is not true || false 9
  5. @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
  6. @xgouchet @xgouchet App Store / Play Store reviews ★★★★★ The

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

    Bob, Charlie, … Aragorn, Bilbo, Celeborn, … 13
  8. @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
  9. @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
  10. @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
  11. @xgouchet @xgouchet Should we ship a Minimum Viable Product ?

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

    see an issue in someone else’s code, it becomes your responsibility too. 21
  14. @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
  15. @xgouchet @xgouchet Say no ! Not so long ago, in

    a bank website open space… 25
  16. @xgouchet “ @xgouchet When you invent a new technology, you

    also invent the accident of that technology. — Elan Mastain (All our Wrongs Today) 31
  17. @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
  18. @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
  19. @xgouchet @xgouchet 36 Good Will (E. Kant) Credit : “The

    Good Place” by Michael Schur / Netflix
  20. @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
  21. @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
  22. @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
  23. @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
  24. @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
  25. @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
  26. @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
  27. @xgouchet @xgouchet An ethical mindset ✘ “Primum non nocere” ✘

    Don’t take anything for granted ✘ Think before you code anything ✘ Take ownership 48
  28. @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