Knowledge-base
  • Home
  • Samman Technical Coaching
  • Software craftsmanship
    • Practices
      • Pair Programming
      • Code Review
      • Co-designs
      • Design sessions
      • Interview Domain Experts
      • Dev ethics
    • The Software Craftsman
    • Egoless Crafting
    • Technical debt workshop
    • Functional Programming made easy in C# with Language-ext
    • F# for OO programmers
    • Domain Modeling Made Functional
    • Testing
      • Clean Tests
      • Improve the design and testing of your micro-services through CDC Tests
        • CDC testing made simple with Pact
        • Pact broker : the missing piece of your Consumer-Driven Contract approach
      • Improve your test quality with Mutation testing
      • How to name our Unit Tests
      • How to write better assertions
    • Katas
      • TDD
        • Stack kata
        • Fizzbuzz
        • Outside-in TDD (London Style)
      • Improve your software quality with Property-Based Testing
        • A journey to Property-Based Testing
      • Clean Code
      • Clean Architecture
      • Write S.O.L.I.D code
      • Mocking
      • Gilded Rose (Approval Testing)
      • Mikado method
        • Mikado kata
      • Pure functions
      • Theatrical players refactoring Kata
        • Let's refactor (OOP style)
        • Let's refactor (FP style)
      • Functional Programming made easy in Java & C#
      • Refactoring journey
      • Refactoring du Bouchonnois
        • 1) Se faire une idée du code
        • 2) "Treat warnings as errors"
        • 3) Let's kill some mutants
        • 4) Améliorer la lisibilité des tests
        • 5) "Approve Everything"
        • 6) Définir des propriétés
        • 7) Tests d'architecture
        • 8) Use Cases
        • 9) Tell Don't Ask
        • 10) "Avoid Primitives" - Commands
        • 11) "Avoid Exceptions"
        • 12) "Event Sourcing"
    • Software Design X-Rays
      • Workshop
    • The Programmer's Brain
      • How to read code better
  • Software Architecture
    • Fundamentals of Software Architecture
    • Aligning Product & Software Design
    • DDD re-distilled
    • Test your architecture with Archunit
    • NoSQL
  • Agile coaching
    • How to run a Community of Practices (COP)
    • The developers — the forgotten of agility
      • The secrets to re-on-board the devs in agility
    • Coaching toolbox
      • Echelle
      • Learning expedition
    • How to improve Team Decision making ?
      • Decision Making Principles and Practices
    • Learning 3.0
    • Retrospectives
      • Back to the Future
      • Mission Impossible
      • Movie themes
      • Rétro dont vous êtes le héros
      • Sad/Mad/Glad
      • Speed boat
      • Star wars theme
      • Story cubes
    • Technical Agile Coaching with the Samman Method
    • Xanpan - a team centric agile method story
    • XTREM WATCH — Découvrez la puissance de la veille collective
    • Become a better speaker through peer feedback
    • Project-to-Product Principles
  • Leadership
    • Bref. J'ai pris une tarte dans la gueule (et ça fait extrêmement de bien)
    • Forward Summit 2020
    • Learn leadership from the Navy SEALs
    • Learn to lead and help your team(s) to be successful
    • Towards a learning organization and beyond
    • Leadership is language
  • Serious games
    • My serious games
    • Libérez vos entretiens d’embauche avec la gamification
    • How to create a game
    • How to debrief a game ?
    • Lego Serious Play (LSP)
      • LSP in your job interviews
  • Xtrem Reading
    • Cultivate Team Learning with Xtrem Reading
    • My Book Infographics
    • How to make book infographics
    • En route vers l’apprenance avec Xtrem Reading
    • Resources
      • Book notes
        • Agile People: A Radical Approach for HR & Managers
        • Agile testing : A Practical Guide for Testers and Agile Teams
        • Boite à outils de l'intelligence émotionnelle
        • Building a better business using Lego Serious Play method
        • Building evolutionary architectures
        • Code that fits in your head
        • Culture Agile
        • Culture is everything
        • Domain-Driven Design: The First 15 Years
        • Dynamic Reteaming - The Art and Wisdom of Changing Teams
        • How to avoid a Climate Disaster
        • La liberté du commandement
        • Réaliser ses rêves, ça s'apprend
        • Refactoring at Scale
        • Succeeding with OKRs in Agile
        • Team Topologies
        • The Good Life
        • Tu fais quoi dans la vie
        • Who Does What By How Much?
  • My Activity
    • Retour sur mon année 2020
Powered by GitBook
On this page
  • Connection - 10'
  • Concepts - 10'
  • What do they have in common ?
  • Hippocratic Oath
  • Why should we take ethics into consideration ?
  • What is software at the end ?
  • Software can hurt
  • Where are we as an industry ?
  • Devs as the last Bastion ?
  • What is our future ?
  • Concrete Practice - Create your own oath - 30'
  • Conclusion - Existing Oaths - 10'
  • ACM code of ethics
  • The Programmer's Oath
  • Existing principles
  • Limitations

Was this helpful?

  1. Software craftsmanship
  2. Practices

Dev ethics

In this session we will think about our responsibility as Software Developers regarding larger communities and we will initiate our own Oaths that we will be able to apply in our day to day.

PreviousInterview Domain ExpertsNextThe Software Craftsman

Last updated 4 years ago

Was this helpful?

Connection - 10'

Imagine you are working for the most ethic company on earth :

  • You just delivered a new revolutionary product

  • You and your teammates are on the front page of every TV channel

  • You are recognized and praised on all sides

Draw this breaking news (in groups)

  • Cover – states the spectacular success accomplished by the company

  • Headers – reveal what the story is about

  • Sidebars – include parts of the report

  • Quotes – testimonials about the accomplishment from anyone imaginable

  • Images – pictures that support the cover story

  • Brainstorm – used for writing down ideas before starting the activity

Concepts - 10'

What do they have in common ?

Almost any professional whose work impacts the public must abide by some sort of ethical code of conduct.

Hippocratic Oath

Hippocrates, the “Father of Medicine,” around 500 B.C. has written the famous oath which has guided the practice of medicine.

No Dev's Oath ?

Why should we take ethics into consideration ?

Software is eating the world

Imagine a life without software : zombies ?

  • Phones don’t ring

  • Cars don’t start

  • Planes don’t fly

  • Bombs don’t explode

  • Money doesn’t change hands

  • Electricity doesn’t get generated

Software is everywhere

In our society, virtually nothing happens without the involvement of some kind of computer program.

What is software at the end ?

Software is a set of rules if we think about it

  • Our civilization doesn’t quite realize how dependent it has become on software

  • How many hours do you spend on your computers, smartphones, cars each day ?

Software can hurt

  • 2015 : independent tests revealed that Volkswagen engineers programmed cars to cheat emissions standards

  • 2016 : U.S. presidential election - Facebook/Twitter Epidemic of fake news, and now is inextricably linked to

  • 2018 : Boeing 737 Max crashes because of software problems

  • 2018 : Cambridge Analytica’s : weaponization of personal user information

Social exclusion, various environmental impacts, ....

Where are we as an industry ?

  • Will things get better or worse?

  • Most of developers don’t ultimately feel it’s their responsibility if unethical products go live.

    • Are they right?

Who is responsible ?

Code doesn't kill people, who does it ?

  • Product managers do ?

  • Shareholders ?

  • CEOs ?

  • Developers ?

Do we all need to be informed and responsible?

Devs as the last Bastion ?

1st time in human being history that ethics, philosophy and technics are intimately bounds

What is our future ?

AI

  • At a faster rate than employment policy can adjust to how this impacts on our economies and on individual livelihoods

  • AI are displacing jobs

  • Black box algorithms that replicate systemic discrimination have also been raised

Business and startups can play a huge role in designing technology that supports human society by designing software ethically.

Some brilliant in are raising warnings

"Nous devons être conscients des dangers, les identifier, et employer les meilleures pratiques et cadres pour nous préparer à ses conséquences bien en avance, avait-il déclaré lors d’une conférence. La montée de l’IA pourrait être la pire ou la meilleure chose qui soit jamais arrivée à l’humanité." - Stephen Hawking

Concrete Practice - Create your own oath - 30'

Based on the breaking news : create an oath to design ethical software

  1. Think about your current and last projects

    • Did they respect environment, human beings ?

    • Did your clients respect your own ethic ?

  2. On which kind of projects you like to work on ?

    • For who you want to work ?

    • Which kind of environments ?

    • With whom ?

  3. What do you enjoy in your work ?

Maybe different levels : Developer / Product / Client / Society

  • 10’ en pair

  • 5’ en groupe

  • 5’ all together

  • 10’ Finalization

Conclusion - Existing Oaths - 10'

  • Contribute to society and human well-being.

    • Programmers should work to develop computer systems that can reduce negative consequences to society, such as threats to safety and health, and that can make everyday activities and work easier.

    • It is “an obligation to develop to high standards”

  • Avoid harm to others.

    • Computer systems have an indirect impact on third parties.

    • They can cause loss of information and resources that might result severely harmful for users, the general public, or employers.

  • Be honest and trustworthy.

    • This principle encourages programmers to be honest and aware of their limitations in knowledge and education when writing computer systems.

    • Also, if a programmer knows there is something wrong with a computer system, he or she should report it immediately to avoid undesirable consequences

Existing principles

Limitations

Ethical codes only work when they are embraced by the majority of developers and become a part of educational training.

Everything is not dark

Therefore, software developers should minimize the risk of harming others due to , or security issues, by following standards to design and test systems

Watch :

– Steven Wilmott

– Uncle Bob

? - Christiaan Verwijs

Milgram experiment
ACM code of ethics
coding errors
The Programmer's Oath
his video
5 principles of software ethics
Association for Computing Machinery (ACM) code of ethics
The programmer’s Oath
A Code of Ethics for (Agile) Software Developers
7 principles of AI by Google
Ethics definition