Developpez.com

Le Club des Développeurs et IT Pro

Des programmeurs avouent avoir écrit du code non éthique et parfois illégal

En raison des requêtes de plus en plus contraignantes de leurs employeurs

Le 2016-11-22 02:03:16, par Coriolan, Expert éminent sénior
Avec la multiplication des scandales qui impliquent des programmeurs qui ont agi sans éthique de travail ou hors du champ de la loi, beaucoup commencent à se demander ce qu’il faudrait faire pour changer la donne. Que devraient faire les programmeurs quand on leur demande d’accomplir des tâches non éthiques ou illégales ? Qu’est ce qu’il faudrait faire pour protéger le programmeur dans ces cas ? Et faudrait-il prévoir des formations d’éthique pour éviter des agissements contraires à la loi dans le futur ? Bref, une panoplie de questions qui hantent les programmeurs de tous les coins du globe.

Bill Sourour fait partie de ces programmeurs, la semaine dernière, il avait publié un article nommé “Le code qui me fait encore honte”. Il raconte une terrible histoire qui remonte à ses débuts en tant que programmeur quand il était encore jeune. En développant un site web pour le compte d’une entreprise, on lui avait demandé de contourner les lois de publicité des médicaments afin de persuader les jeunes femmes de prendre un médicament spécifique. Il a découvert plus tard que ce médicament causait une aggravation de la dépression et qu’au moins une jeune femme s’est suicidée après l’avoir pris. Il a même découvert que sa sœur prenait ce même médicament et l’a vite alertée. Des décennies après cet incident, Bill est toujours hanté par l’idée qu’il a été responsable dans cette affaire.

Avant de publier son article, Bill a été inspiré par Robert Martin dans son talk “Le futur de la programmation”. Il clame que les programmeurs devraient chercher comment se réguler eux-mêmes et rapidement. « Et si on se décide sur ce que signifie d’être programmeur » se demande Martin. « La civilisation dépend de nous. La civilisation ne comprend pas encore ce fait ».

En effet, de nos jours, toutes nos actions quotidiennes impliquent des programmeurs, du simple fait de passer un appel sur téléphone au pilotage des avions de ligne. En conséquence, des gens ont été tués dans des accidents de voiture en raison de bogues de logiciels alors que d’autres ont péri dans des crashs d’avions pour la même raison. « Nous sommes en train de tuer des gens », a dit Martin. « Nous ne sommes pas là pour tuer des gens, et les choses continuent à empirer ».


Pour Martin, les développeurs sont appelés à faire face à des enjeux cruciaux dans les années à venir. Il a par ailleurs cité le cas de Michael Horn, PDG de Volkswagen America. Ce dernier a blâmé en premier lieu les programmeurs pour le scandale des émissions truquées du géant allemand durant une séance d'audition au Congrès américain. Il a prétendu qu’ils ont agi à leur gré sans préciser une raison particulière. Plus tard, les enquêteurs américains ont accusé la firme d’avoir pris cette décision du haut de la hiérarchie et d'avoir essayé de camoufler cette tricherie. Mais Martin ne cherche pas pour autant à innocenter les programmeurs. « Ce qui est bizarre, c’est que ce sont les programmeurs qui ont écrit ce code. C’était nous, des programmeurs qui ont triché. Pensez-vous qu’ils avaient su ? Je pense que oui, probablement. »

Avant de terminer son intervention, Martin a tenu à rappeler qu’avec ces pratiques non contrôlées, un programmeur va finir un jour par causer un désastre, tuant au passage des dizaines de milliers de gens. Et ce n’est pas seulement la vie des gens qui est en jeu ici ou la pollution par les émissions de gaz seulement ; les mêmes fourberies ont été déjà utilisées dans Wall Street pour manipuler les prix des actions.

Les programmeurs racontent

L’article viral de Sourour a poussé d’autres programmeurs à partager leur histoire à leur tour sur les solutions et les codes non éthiques et parfois illégaux qu’ils ont dû mettre en place pour leurs employeurs. Un programmeur a dû développer une solution qui enregistrait les gens dans la newsletter de son entreprise même s’ils avaient opté pour ne pas recevoir d’emails (ce qui est une violation de la loi fédérale américaine). Ensuite, d’autres programmeurs ont écrit des scripts pour aider les commerciaux de l’entreprise à traquer ces gens. Quand ce programmeur a rappelé au CTO que cette pratique n’est pas éthique, on lui a demandé de se retirer. Selon lui, les autres programmeurs travaillent aujourd’hui pour des startups qui récoltent de vastes volumes de données sur la localisation des gens.

Un autre programmeur qui a travaillé pour une entreprise moyenne a dû développer un outil pour traquer les horaires de travail des employés. Cet individu raconte que son outil pouvait réduire potentiellement le temps de travail des employés au bénéfice de l’employeur en enlevant 15 minutes à chaque connexion (si vous arriviez à 9:01, le système notait alors que vous aviez commencé à 9:15. Si vous partiez à 5:14, il enregistrait 5:00). Le programmeur dans l’embarras a demandé au manageur du projet si c’était illégal et a même essayé de faire des recherches là-dessus. Le management lui a assuré que c’était tout à fait légal et que ça avait été planifié avec le service des ressources humaines.

Dans la plupart de ces histoires, si le programmeur s’oppose aux requêtes de l’employeur, l’entreprise peut toujours recourir aux services d’une autre personne. Mais Martin rappelle que ça reste encore un pouvoir qui donne une marge de manœuvre aux programmeurs et leur permet de s’imposer puisque ce sont eux qui ont le pouvoir aujourd’hui. La solution à ce dilemme est de donner des cours d’éthique, une chose qui est déjà en vigueur dans les formations formelles. Mais malheureusement, la plupart des programmeurs aujourd’hui ont suivi le chemin de l’autoformation. Selon Sorour, cette voie inclut rarement une formation solide sur les pratiques de l’éthique. L’essentiel aujourd’hui est de former le plus de gens possible à écrire du code pour répondre aux besoins grandissants du marché du travail.

Martin et Sorour croient tous les deux que les programmeurs ont besoin d’une organisation pour réguler leur profession comme les autres industries. Actuellement, elle n’existe pas malgré quelques efforts de l’Association for Computer Machinery et l’IEEE qui ont publié des documents d’éthique et proposent quelques fois des formations.

Source : Business Insider

Et vous ?

Qu'en pensez-vous ?
  Discussion forum
88 commentaires
  • Marco46
    Expert éminent sénior
    Envoyé par NSKis
    Parler de "programmer du code non-éthique et parfois illégal" n'a simplement aucun sens!!!

    Le code, c'est du code, ni plus, ni moins... C'est le destinataire du programme qui a ou n'a pas un comportement "non-éthique et parfois illégal"!!!
    C'est absurde.

    Quand tu codes un programme qui se trompe volontairement sur le temps de travail effectué tu implémentes une violation du droit. L'utilisateur de l'application n'a pas le choix de violer ou non la loi. C'est toute la différence avec ton exemple de la pelle. Tu es donc co-responsable avec celui qui utilise le programme puisque le but du programme est de violer la loi.

    C'est un peu comme si tu disais qu'un faussaire n'est pas responsable de l'usage qui est fait de la fausse monnaie.
  • Aurelien Plazzotta
    Membre extrêmement actif
    Créer une organisation qui régule une profession qui ne détient aucun pouvoir décisionnel... ou comment nous transformer en siège éjectable en déchargeant concommitament de toute responsabilité les fauteurs de troubles.

    Cet article traduit un voeux pieux qui se trompe d'ennemi, ce sont les chefs de projet et responsables Produit qu'il faut pouvoir sanctionner.
    Pourquoi ne pas pondre une loi qui oblige les donneurs d'ordre (cités dans ma phrase précédente) à voir leur identité incluse dans les crédits du logiciel une fois celui-ci commercialisé ?

    S'il s'avère que le produit viole la morale et/ou la loi, on sait désormais contre qui se retourner en action collective.

    Vouloir fouetter l'exécutant ne fait que protéger les décideurs malfaisants et contraint les programmeurs à un dilemne injuste : agir hors-la-loi ou perdre son contrat de travail.
  • Matthieu Vergne
    Expert éminent
    De mon point de vue, je vois deux cas :
    - le programme est par inadvertance non éthique
    - le programme est intentionnellement non-éthique

    Le premier, ma foi, ça arrive. On ne peut pas être devin, on fait des erreurs, ça rentre dans le cadre de l'expérience. Quand on s'en rend compte, on corrige, ou on signale si on n'a plus la main. Fin de l'histoire. Enfin pas tout à fait. Si on a encore la main, et que pour une raison ou un autre on ne corrige pas l'erreur, là on entre dans la seconde catégorie.

    Cette seconde catégorie, c'est là qu'on se dit que si le programmeur n'était pas obligé de suivre les ordres, et bien il irait voir ailleurs, ou il signalerait publiquement les agissements de son patron quitte à perdre son job (et donc il irait potentiellement voir ailleurs quand même). Sauf que ça, pour le faire, il faut être prêt à perdre son job, et ça c'est rarement le cas. À ce niveau, le problème ne vient pas de l'éthique du programmeur, qui doit bouclé ses fins de mois. Le problème vient du pouvoir que le chef a sur son employé. Certains pourront clamer qu'on peut faire des lois pour protéger les lanceurs d'alerte, mais ce n'est pas ça qui garantira que tu garderas "ton job". Même si on les protège contre le licenciement, il n'en reste pas moins qu'ils auront été contre l'entreprise, et ça, ça peut grandement affecter les relations au boulot. Et il devient alors de toute façon plus intéressant d'aller voir ailleurs pour changer d'air.

    En résumé, pour favoriser des comportements plus éthiques, il faut favoriser l'indépendance de l'employé sur son employeur. Certains m'auront vu venir de loin avec le revenu de base. Je relance pas la discussion, y'en a déjà eu plein, mais encore une fois voilà un argument qui me semble être en faveur de telles mesures, comme bien d'autres.
  • JavaBean
    Membre habitué
    Envoyé par stephane-leroy
    c'est le donneur d'ordre qui est responsable, point barre.
    Autrement dit, personne n'est responsable, dès lors que tout le monde reçoit un ordre, et que le PDG obéit au conseil d'administration, qui obéit aux actionnaires... Trop facile. C'était aussi la stratégie de la défense au procès de Nuremberg.
  • vttman
    Membre émérite
    Ethique ... Hum !?

    Quand on écrit un bout de code en tant que prestataire, développeur, pour une banque, une assurance, etc.
    ... bout de code qui positionne des indicateurs par exemple
    et qui plus tard (probablement) va/peut entrainer telle ou telle action et provoquer indirectement crises de nerf ou drames ...
    ... on peut y penser et puis vite oublier ... car le programme suivant se profile ...

    Evidemment, on ne cherche pas en permanence à évaluer toutes les conséquences des mises en place de ces algorithmes, et la première
    de nos préoccupations (et celle du donneur d'ordre) est sans doute que le programme tourne vite et sans bugs ...
    Ainsi tranquillement et droit dans ses pompes cirées, on adhère (un peu, beaucoup, passionnément, etc.) à une certaine forme de violence
    pour toucher notre chèque de fin de mois ...
    Quoi tu craches dans la soupe !? Non non chacun sa conscience ...
  • Guntha
    Membre expérimenté
    Même en faisant des efforts d'éthique, c'est difficile en tant que développeur de faire entendre sa voix quand on n'a pas de pouvoir de décision. Même quand on essaie d'amener le sujet en faisant passer l'intérêt de l'entreprise en premier. Par exemple, dans une appli où on peut faire un achat physique, on me pousse à moins informer l'utilisateur sur ce qu'il va acheter (parce que ça surcharge l'interface, parce que ça peut faire peur à l'utilisateur et l'empêcher de vouloir acheter... Bref, toujours des raisons bidons)... J'essaie de dire "Oui mais si après son achat l'utilisateur se plaint qu'on l'a mal informé et nous fait un procès ".

    La meilleure solution, ça reste de trouver un employeur qui a lui-même le sens de l'éthique. C'est bien sûr plus facile à dire qu'à faire, mais on a la chance d'être dans un secteur où il est plus facile (moins difficile?) de retrouver du boulot qu'ailleurs.
  • Matthieu Vergne
    Expert éminent
    La question n'est pas centrée sur le code, mais sur l'être humain qui le produit en connaissance de cause. Le code, je pense que tout le monde sera d'accord, c'est qu'un artefact passif qui n'a rien demandé et n'est responsable de rien. Le responsable reste celui qui l'utilise. Cela dit, celui qui le produit n'est pas une machine dépourvue de morale, et en tant que tel est capable de juger son propre code. C'est sur le paradoxe entre ce jugement et le comportement de l'individu que se pose le problème : quand tu estimes que le code que tu t'apprêtes à faire est prévu pour un usage que tu estimes non-éthique, quel comportement adopter ? C'est avant tout la perspective du développeur qui compte ici.
  • dissert
    Membre averti
    Envoyé par stephanerain
    le codeur fait ce qu'on lui demande, je vois pas pourquoi se prendre la tête avec ça.
    Comme je disais dans mon post précédent, Papon aussi ne faisait que ce qu'on lui demandait. Je vois pas pourquoi le tribunal de La Haye lui a pris la tête avec ça.
  • 4sStylZ
    Membre éprouvé
    «Le code, c'est du code, ni plus, ni moins... C'est le destinataire du programme qui a ou n'a pas un comportement "non-éthique et parfois illégal"!!!» – @NSKis

    Je ne suis pas du tout d’accord. À t’entendre il serait normal qu’un employé d’un mafieux, sous couvert qu’il aie une fiche de paie en règle et un contrat de travail pratique la torture sans état d’âme. Parce qu’après tout il ne fait que suivre les ordres.

    Ok. L’exemple est certes extrême mais même appliqué à une autre échelle de valeur / de moralité le principe est le même pour moi : On est des êtres humains, pas des machines exécutante à qui l’on donne des ordre et qui n’ont pas de libre-arbitre.
    Si on te demande de faire quelque chose d’illégale et que tu le fait tu en devient complice, voilà tout… Attention, j’insinue pas qu’on est d’accord avec le projet illégale.

    Pour ma part, j’ai fait du code qui est illégal dans mon pays mais qui est simplement immoral dans d’autres.
    J’ai fait comme on me demandait de faire pour garder mon emploi. Cependant le code est prévu pour passer très rapidement dans un mode éthique ce qui est le mieux que je pouvais faire…
  • mrqs2crbs
    Membre averti
    Envoyé par NSKis
    Parler de "programmer du code non-éthique et parfois illégal" n'a simplement aucun sens!!!

    Le code, c'est du code, ni plus, ni moins... C'est le destinataire du programme qui a ou n'a pas un comportement "non-éthique et parfois illégal"!!!
    non, tu réponds au cahier des charges tu sais précisément à quoi va servir ton code.