12 dilemmes éthiques qui pèsent sur les développeurs aujourd'hui

Le monde de la technologie a toujours été long sur le pouvoir et à court de réflexion sur les ramifications de ce pouvoir. S'il peut être construit, il y aura toujours quelqu'un qui le construira sans envisager une manière plus sûre et plus saine de le faire, et encore moins si la technologie doit même être construite en premier lieu. Le logiciel s'écrit. Qui se soucie où et comment il est utilisé? C'est une tâche pour quelqu'un dans un bureau du coin.

Plus troublant: alors que les cours d'éthique sont devenus un élément de base des diplômes d'ingénierie du monde physique, ils restent une anomalie à contrecœur dans la pédagogie de l'informatique. Pourtant, à mesure que les logiciels prennent le dessus sur notre vie, les ramifications éthiques des décisions prises par les programmeurs ne font que s'accroître. Maintenant que notre code se trouve dans les réfrigérateurs, les thermostats, les détecteurs de fumée et plus encore, les mauvais mouvements, un manque de prévoyance ou une prise de décision tout à fait douteuse peuvent hanter l'humanité partout où elle va.

[Ce qui est dans et ce qui sort dans le développement d'applications: 15 tendances de programmation à chaud - et 15 à froid. | Montrez tout ce que vous savez vraiment sur le développement en participant à notre test de QI de programmation, troisième tour et à notre quiz sur les langages de programmation «Bonjour le monde». | Travaillez plus intelligemment, pas plus dur - téléchargez le guide de survie des développeurs à partir de pour obtenir tous les conseils et tendances que les programmeurs doivent connaître. | Tenez-vous au courant des dernières actualités des développeurs grâce à la newsletter Developer World. ]

Voici quelques-uns des dilemmes éthiques auxquels sont confrontés les développeurs chaque jour, qu'ils le sachent ou non. Il n'y a pas de réponses faciles, dans une certaine mesure parce que la nature même du travail est si abstraite. Pour aggraver les choses, les affaires sont devenues si inextricablement liées à la technologie informatique qu'il est difficile d'équilibrer les besoins et les motivations de toutes les parties investies en essayant d'empêcher la fonctionnalité d'analyse de rentabilisation d'aujourd'hui de devenir le cauchemar orwellien de demain.

L'astuce est de penser au-delà du zeitgeist actuel et d'anticiper chaque utilisation future de ce que vous construisez. Assez simple, hein? Considérez cela moins comme un guide pour prendre vos décisions et plus comme un point de départ pour le genre de réflexion éthique que nous devrions faire dans le cadre de notre travail quotidien.

Dilemme éthique n ° 1: les fichiers journaux - que sauvegarder et comment les gérer

Les programmeurs sont comme des rats de meute. Ils conservent des enregistrements de tout, souvent parce que c'est le seul moyen de déboguer un système. Mais les fichiers journaux suivent également tout ce que font les utilisateurs et, entre de mauvaises mains, ils peuvent exposer des faits que les utilisateurs veulent garder secrets.

De nombreuses entreprises reposent sur une protection active des fichiers journaux. Certains services de sauvegarde à distance promettent même de conserver des copies supplémentaires dans des emplacements géographiques disparates. Toutes les entreprises n'aspirent pas à une telle diligence. Snapchat, par exemple, a bâti sa marque sur un très mauvais travail de sauvegarde des données, mais ses utilisateurs sont attirés par la liberté du système oublieux.

La simple existence de fichiers journaux soulève plusieurs questions éthiques. Sont-ils correctement protégés? Qui a accès? Lorsque nous disons que nous détruisons les fichiers, sont-ils vraiment détruits?

L'essentiel est de déterminer quelles informations valent la peine d'être conservées, compte tenu des risques de le faire, éthiques ou autres. Ici, l'avenir complique l'équation. Dans les années 1960, le tabagisme était largement adopté. Personne n'aurait réfléchi à deux fois avant de suivre les habitudes tabagiques des gens. Aujourd'hui, cependant, la connaissance de l'activité tabagique d'une personne peut être utilisée pour augmenter les taux d'assurance maladie ou même refuser la couverture.

Affaires futures; les futures réglementations gouvernementales; un besoin imprévu et désespéré de nouvelles sources de revenus - il peut être impossible de prédire quel fichier journal apparemment innocent deviendra problématique à l'avenir, mais il est essentiel de prendre en compte l'éthique de la façon dont vous gérez les journaux en cours de route.

Dilemme éthique n ° 2: savoir si - et comment - transformer les utilisateurs en produits

C'est un adage très répandu de l'ère des startups: si vous ne payez pas pour un service, vous n'êtes pas un client; vous êtes le produit.

Sur Internet, les services «gratuits» abondent. En fait, la question de savoir d'où proviendra l'argent est souvent remise à plus tard, décourageante. Nous construisons simplement l'incroyable, gardons un œil sur les métriques d'adoption et pensons que quelqu'un d'autre s'occupera du sale boulot de garder les lumières du serveur allumées. Dans le pire des cas, il y a toujours des publicités.

Les développeurs doivent savoir clairement qui soutiendra leur travail et d'où proviendra l'argent. Tout changement doit être communiqué aux utilisateurs de manière claire et opportune pour éviter les chocs et les retours de flamme. Transformer les gens en produits est un changement éthique à ne pas prendre à la légère. Offres publicitaires louches, réseaux publicitaires louches - nous devons faire attention à la manière dont nous gérons la confiance implicite des premiers utilisateurs.

Dilemme éthique n ° 3: Dans quelle mesure le contenu veut-il vraiment être gratuit?

Un certain nombre d'entreprises dépendent de la diffusion de contenu sans payer ceux qui le créent. Certains se retournent et vendent des publicités ou même facturent l'accès. Ces entreprises ne pouvaient souvent pas survivre et ne pouvaient pas évaluer leur matériel de manière aussi attrayante si elles devaient assumer leur juste part des coûts de développement. Ils développent des rationalisations élaborées sur le «partage» ou «l'utilisation équitable» pour dissimuler une décision éthiquement fragile.

Les développeurs doivent se demander comment leur code soutiendra tout le monde dans la chaîne alimentaire, des créateurs aux consommateurs. Les personnes qui créent le contenu souhaitent-elles que leur travail soit distribué de cette manière? Sont-ils heureux de travailler uniquement pour l'exposition ou l'attention? Ont-ils une part équitable des revenus?

Ne pas considérer ces questions revient à fermer les yeux sur le piratage. Après tout, toutes les informations ne «veulent pas être gratuites».

Dilemme éthique n ° 4: quelle protection est suffisante

Certains disent que tout devrait être crypté avec deux algorithmes différents et verrouillé sur un disque dur conservé dans un coffre-fort. Hélas, la surcharge ralentit le système à une analyse et rend le développement 10 fois plus onéreux. Pour aggraver les choses, si un bit est retourné ou si une partie de l'algorithme est erronée, les données sont toutes perdues car le cryptage ne peut pas être annulé.

D'autres ne veulent pas lever le petit doigt pour protéger les données. L'équipe suivante peut ajouter un cryptage spécial plus tard si cela est nécessaire, pourraient dire les développeurs. Ou ils pourraient prétendre qu'il n'y a rien de sensible à ce sujet. Les équipes qui ignorent ces responsabilités sont généralement capables de générer de nombreux autres codes et de créer des tas de fonctionnalités merveilleuses dont les gens ont besoin. Qui se soucie de leur sécurité?

Il n'y a pas de réponse simple au niveau de protection à appliquer. Il n'y a que des suppositions. Plus c'est toujours mieux - jusqu'à ce que les données soient perdues ou que le produit ne soit pas expédié.

Dilemme éthique n ° 5: corriger ou ne pas corriger les bogues?

Il est déjà assez difficile de négocier les bas-fonds éthiques lorsqu'ils impliquent des décisions actives, mais c'est encore plus difficile lorsque le problème peut être mis de côté et étiqueté comme un bogue qui sera finalement corrigé. À quel point devrions-nous travailler pour résoudre les problèmes qui se sont glissés dans le code en cours d'exécution? Laissons-nous tout? Comment décider si un bogue est suffisamment sérieux pour être corrigé? 

Isaac Asimov a été confronté à ce problème il y a longtemps lorsqu'il a écrit ses lois de la robotique et en a inséré une qui interdisait à un robot de ne rien faire si un humain était blessé par l'inaction du robot. Bien sûr, ses robots avaient un cerveau positronique qui pouvait voir instantanément toutes les facettes d'un problème et les résoudre. Les questions pour les développeurs sont si compliquées que de nombreux bogues sont ignorés et résolus car personne ne veut même y penser.

Une entreprise peut-elle hiérarchiser la liste de manière équitable? Certains clients sont-ils plus importants que d'autres? Un programmeur peut-il jouer aux favoris en choisissant un bogue plutôt qu'un autre? C'est encore plus difficile à envisager lorsque vous réalisez qu'il est difficile d'anticiper les dommages causés par un bug donné.

Dilemme éthique n ° 6: dans quelle mesure coder - ou faire des compromis - pour éviter les abus

La caméra Web Apple d'origine était livrée avec un supplément mécanique intelligent, un obturateur physique qui bloquait l'objectif lorsqu'il était éteint. L'obturateur et l'interrupteur étaient liés ensemble; il n'y avait aucun moyen d'utiliser l'appareil photo sans ouvrir l'obturateur vous-même.

Certaines des nouvelles webcams sont équipées d'une LED qui est censée être allumée lorsque la caméra est activée. Cela fonctionne généralement, mais quiconque a programmé un ordinateur sait qu'il peut y avoir un endroit dans le code où la caméra et la LED peuvent être découplées. Si cela peut être trouvé, la caméra peut être transformée en un dispositif d'espionnage.

Le défi pour l'ingénieur est d'anticiper les abus et de concevoir pour les éviter. L'obturateur Apple est l'un des exemples évidents et efficaces de la façon dont cela peut être fait avec élégance. Quand je travaillais sur un livre sur la triche sur le SAT, j'ai rencontré un pirate informatique qui ajoutait un logiciel de réseautage à sa calculatrice. Après quelques délibérations, il a décidé de ne prendre en charge que les protocoles filaires parce qu'il craignait que les enfants ne faufilent une calculatrice avec Wi-Fi dans un examen. En prenant en charge uniquement les protocoles câblés, il s'est assuré que toute personne participant à un test aurait besoin d'exécuter un câble vers la machine de son voisin. Il détestait sauter les protocoles sans fil, mais il estimait que le risque d'abus était trop élevé.

Dilemme éthique n ° 7: jusqu'où défendre les clients contre les demandes de données

Si vous collectez des données, il y a fort à parier que votre organisation sera un jour prise entre servir vos clients et servir le gouvernement. Les demandes de fourniture de données à des entités juridiques sont de plus en plus courantes, laissant de plus en plus d'organisations de logiciels et de services à se demander dans quelle mesure elles trahiront la vie privée de leurs clients devant la loi. Vous pouvez examiner ces demandes et même engager vos propres avocats pour contester si elles sont vraiment légales, mais la réalité est que les tribunaux débattront de la légalité longtemps après l'épuisement de votre financement.

Il n'y a pas de solutions faciles. Certaines entreprises choisissent de quitter l'entreprise plutôt que de mentir à leurs clients. D'autres essaient d'être plus ouverts sur les demandes, ce que le gouvernement essaie souvent d'interdire.

Dilemme éthique n ° 8: comment faire face au caractère international d'Internet

Internet circule partout, évitant bon nombre des barrières traditionnelles aux frontières. Cela peut être une recette pour des maux de tête juridiques lorsque les clients A et B sont dans des pays différents. Ce n'est que le début, car les serveurs C et D se trouvent souvent également dans des pays entièrement différents.

Cela conduit à des problèmes éthiques évidents. L'Europe, par exemple, a des lois strictes sur la conservation des informations personnelles et considère les violations de la vie privée comme des manquements éthiques. D'autres pays insistent pour que les entreprises tiennent de nombreux registres des transactions. Quelles lois une entreprise doit-elle suivre lorsque les clients se trouvent dans des pays différents? Quand les données sont dans différents comtés? Quand les données sont transférées sur les lignes internationales?

Se tenir au courant de toutes les éventualités juridiques peut être herculéen, laissant de nombreuses organisations sûrement tentées de se mettre la tête dans le sable.

Dilemme éthique n ° 9: combien redonner à l'open source

Tout le monde sait que l'open source est gratuit. Vous ne payez rien et c'est ce qui le rend si merveilleux et complexe. Mais tout le monde ne contemple pas les problèmes éthiques liés à l'utilisation de ce code gratuit. Tous les packages open source sont livrés avec des licences et vous devez les suivre.

Certaines licences ne nécessitent pas beaucoup de sacrifices. Les licences comme la licence Apache ou la licence MIT nécessitent une reconnaissance et c'est à peu près tout. Mais d'autres licences, telles que la licence publique générale GNU, vous demandent de partager toutes vos améliorations.

L'analyse des licences open source peut présenter des défis éthiques. Un responsable d'une grande entreprise publique m'a dit: «Nous ne distribuons pas MySQL, donc nous ne devons rien à personne». Il a saisi la clause, rédigée il y a des décennies, qui liait les obligations de la licence à l'acte de redistribution des logiciels. La société a utilisé MySQL pour ses applications Web, il a donc estimé que cela pouvait prendre sans redonner.

Il n'y a pas de moyen simple de mesurer les obligations éthiques, et de nombreux programmeurs ont gaspillé de nombreuses frappes à se disputer sur leur signification. Pourtant, tout l'effort s'arrêtera si les gens arrêtent de donner. La bonne nouvelle est qu'il est souvent dans l'intérêt de chacun de contribuer car chacun souhaite que le logiciel reste compatible avec son utilisation.

Dilemme éthique n ° 10: dans quelle mesure la surveillance est-elle vraiment justifiée?

Peut-être que votre patron veut s'assurer que les clients ne volent pas l'entreprise. Peut-être voulez-vous vous assurer d'être payé pour votre travail. Peut-être qu'un type effrayant du gouvernement dit que vous devez installer une porte dérobée pour attraper les méchants. Dans tous les cas, l'argument est rempli d'assurances que la porte dérobée ne sera utilisée, comme les pouvoirs de Superman, que pour soutenir la vérité et la justice. Il ne sera pas utilisé contre les ennemis politiques ou les moins fortunés. Il ne sera pas vendu à des régimes despotiques.

Mais que se passe-t-il si les méchants découvrent la porte cachée et découvrent comment l'utiliser eux-mêmes? Et si votre porte dérobée est utilisée pour soutenir des contre-vérités et des injustices? Votre code ne peut pas prendre seul de décisions éthiques. C'est ton travail.

Dilemme éthique n ° 11: à quel point le code devrait-il vraiment être à l'épreuve des balles?

Bien sûr, le calcul minimal, la structure de données simple et l'approche par force brute fonctionnent bien en démo lorsque les problèmes sont petits. Les utilisateurs essaient le code et disent: "Ça marche vite." Plusieurs mois plus tard, lorsque suffisamment de données ont été chargées dans le système, les faiblesses de l'algorithme bon marché apparaissent et le code ralentit jusqu'à l'exploration.