12 dilemas éticos que corroen a los desarrolladores hoy

El mundo de la tecnología siempre ha tenido mucho poder y le ha faltado pensar en las ramificaciones de este poder. Si se puede construir, siempre habrá alguien que lo construirá sin contemplar una forma más segura y sana de hacerlo, y mucho menos si la tecnología debería construirse en primer lugar. El software se escribe. ¿A quién le importa dónde y cómo se usa? Esa es una tarea para alguien en alguna oficina de la esquina.

Más preocupante: si bien los cursos de ética se han convertido en un elemento básico de los títulos de ingeniería del mundo físico, siguen siendo una anomalía a regañadientes en la pedagogía de la informática. Sin embargo, a medida que el software se hace cargo de una mayor parte de nuestra vida, las ramificaciones éticas de las decisiones tomadas por los programadores solo se vuelven mayores. Ahora que nuestro código está en refrigeradores, termostatos, alarmas de humo y más, los movimientos equivocados, la falta de previsión o la toma de decisiones francamente dudosas pueden perseguir a la humanidad dondequiera que vaya.

[Qué hay y qué hay en el desarrollo de aplicaciones: 15 tendencias de programación candentes y 15 en frío. | Demuestre cuánto sabe realmente sobre el desarrollo superando nuestra prueba de IQ de programación, ronda 3 y nuestra prueba de lenguajes de programación "Hola, mundo". | Trabaje de manera más inteligente, no más difícil: descargue la Guía de supervivencia para desarrolladores de para obtener todos los consejos y tendencias que los programadores deben conocer. | Manténgase al día con las últimas noticias para desarrolladores con el boletín informativo Developer World. ]

Lo que sigue son algunos de los dilemas éticos que enfrentan los desarrolladores todos los días, ya sea que lo sepan o no. No hay respuestas fáciles, en cierta medida porque la naturaleza misma del trabajo es muy abstracta. Para empeorar las cosas, los negocios se han vuelto tan inextricablemente vinculados con la tecnología informática que es difícil equilibrar las necesidades y motivaciones de todas las partes involucradas para tratar de evitar que la característica del caso comercial de hoy se convierta en la pesadilla orwelliana del mañana.

El truco es pensar más allá del zeitgeist actual y anticipar cada uso futuro de lo que construyes. Bastante simple, ¿eh? Considere esto menos como una guía para tomar sus decisiones y más como un punto de partida para el tipo de contemplación ética que deberíamos hacer como parte diaria de nuestro trabajo.

Dilema ético n. ° 1: archivos de registro: qué guardar y cómo manejarlos

Los programadores son como ratas de manada. Mantienen registros de todo, a menudo porque es la única forma de depurar un sistema. Pero los archivos de registro también rastrean todo lo que hacen los usuarios y, en las manos equivocadas, pueden exponer hechos que los usuarios quieren mantener en secreto.

Muchas empresas se basan en la protección activa de los archivos de registro. Algunos servicios de respaldo remoto incluso prometen mantener copias adicionales en ubicaciones geográficas dispares. No todas las empresas aspiran a tal diligencia. Snapchat, por ejemplo, construyó su marca haciendo un muy mal trabajo al hacer copias de seguridad de los datos, pero sus usuarios se sienten atraídos por la libertad del sistema olvidadizo.

La mera existencia de archivos de registro plantea varias cuestiones éticas. ¿Están adecuadamente protegidos? ¿Quién tiene acceso? Cuando decimos que destruimos los archivos, ¿están realmente destruidos?

El quid es determinar qué información vale la pena conservar, dados los riesgos de hacerlo, éticos o de otro tipo. Aquí, el futuro complica la ecuación. En la década de 1960, fumar fue ampliamente aceptado. Nadie lo hubiera pensado dos veces antes de realizar un seguimiento de los hábitos de fumar de las personas. Hoy, sin embargo, el conocimiento de la actividad de fumar de alguien puede usarse para aumentar las tarifas del seguro médico o incluso negar la cobertura.

Tratos comerciales futuros; futuras regulaciones gubernamentales; una necesidad desesperada e imprevista de nuevas fuentes de ingresos: puede ser imposible predecir qué archivo de registro aparentemente inocente se volverá problemático en el futuro, pero es esencial considerar la ética de cómo manejar los registros en el camino.

Dilema ético n. ° 2: si, y cómo, transformar a los usuarios en productos

Es un dicho muy usado de la era de las startups: si no está pagando por un servicio, no es un cliente; eres el producto.

En Internet abundan los servicios "gratuitos". De hecho, la cuestión de dónde vendrá el dinero a menudo se pospone y resulta desagradable. Simplemente construimos lo asombroso, vigilamos las métricas de adopción y pensamos que alguien más se encargará del trabajo sucio de mantener las luces del servidor encendidas. En el peor de los casos, siempre hay anuncios.

Los desarrolladores deben ser sinceros sobre quién apoyará su trabajo y de dónde vendrá el dinero. Cualquier cambio debe comunicarse a los usuarios de manera clara y oportuna para evitar conmociones y retrocesos. Transformar a las personas en productos es un cambio ético que no debe tomarse a la ligera. Ofertas publicitarias turbias, redes publicitarias turbias: debemos tener cuidado con la forma en que manejamos la confianza implícita de los primeros usuarios.

Dilema ético n. ° 3: ¿Qué tan libre quiere ser realmente el contenido?

Varias empresas dependen de ofrecer contenido sin pagar a quienes lo crean. Algunos se dan la vuelta y venden anuncios o incluso cobran por el acceso. Estas empresas a menudo no podrían sobrevivir y no podrían poner precio a su material de manera tan atractiva si tuvieran que asumir su parte justa de los costos de desarrollo. Desarrollan elaboradas racionalizaciones sobre "compartir" o "uso justo" para encubrir una decisión éticamente inestable.

Los desarrolladores deben preguntarse cómo su código apoyará a todos en la cadena alimentaria, desde los creadores hasta los consumidores. ¿Quieren las personas que crean el contenido que su trabajo se distribuya de esta manera? ¿Están felices de trabajar solos por la exposición o la atención? ¿Se les da una parte justa de los ingresos?

No considerar estas preguntas equivale a hacer la vista gorda ante la piratería. Después de todo, no toda la información simplemente "quiere ser gratuita".

Dilema ético n. ° 4: cuánta protección es suficiente

Algunos dicen que todo debe estar doblemente cifrado con dos algoritmos diferentes y guardado en un disco duro que se guarde en una caja fuerte. Por desgracia, la sobrecarga ralentiza el sistema y hace que el desarrollo sea 10 veces más oneroso. Para empeorar las cosas, si se invierte un bit o una parte del algoritmo es incorrecta, todos los datos se pierden porque el cifrado no se puede deshacer.

Otros no quieren mover un dedo para proteger los datos. El próximo equipo puede agregar un cifrado especial más adelante si es necesario, podrían decir los desarrolladores. O podrían argumentar que no hay nada sensible al respecto. Los equipos que ignoran estas responsabilidades generalmente pueden generar muchos otros códigos y crear montones de características maravillosas que la gente anhela. ¿A quién le importa si están seguros?

No hay una respuesta simple a cuánta protección aplicar. Solo hay conjeturas. Más es siempre mejor, hasta que se pierdan los datos o el producto no se envíe.

Dilema ético n. ° 5: ¿Corregir errores o no?

Es bastante difícil negociar los bajíos éticos cuando involucran decisiones activas, pero es aún más difícil cuando el problema puede dejarse de lado y etiquetarse como un error que eventualmente se solucionará. ¿Cuánto deberíamos trabajar para solucionar los problemas que de alguna manera se deslizaron en el código en ejecución? ¿Dejamos todo? ¿Cómo decidimos si un error es lo suficientemente grave como para solucionarlo? 

Isaac Asimov se enfrentó a este problema hace mucho tiempo cuando escribió sus leyes de la robótica e insertó una que prohíbe a un robot no hacer nada si un humano resultaría dañado por la inacción del robot. Por supuesto, sus robots tenían cerebros positrónicos que podían ver instantáneamente todas las facetas de un problema y resolverlas. Las preguntas para los desarrolladores son tan complicadas que muchos errores se ignoran y no se corrigen porque nadie quiere siquiera pensar en ellos.

¿Puede una empresa priorizar la lista de manera justa? ¿Son algunos clientes más importantes que otros? ¿Puede un programador jugar a favoritos eligiendo un error sobre otro? Esto es aún más difícil de contemplar cuando se da cuenta de que es difícil anticipar cuánto daño vendrá de un error determinado.

Dilema ético n. ° 6: cuánto codificar, o comprometer, para evitar el mal uso

La cámara web original de Apple venía con un extra mecánico inteligente, un obturador físico que bloqueaba la lente cuando estaba apagada. El obturador y el interruptor estaban conectados entre sí; no había forma de usar la cámara sin abrir el obturador usted mismo.

Algunas de las cámaras web más nuevas vienen con un LED que se supone que se ilumina cuando se activa la cámara. Por lo general, funciona, pero cualquiera que haya programado una computadora sabe que puede haber un lugar en el código donde la cámara y el LED se pueden desacoplar. Si se puede encontrar, la cámara se puede convertir en un dispositivo de espionaje.

El desafío para el ingeniero es anticipar el mal uso y diseñar para prevenirlo. El obturador de Apple es uno de los ejemplos obvios y efectivos de cómo se puede hacer con elegancia. Cuando estaba trabajando en un libro sobre hacer trampa en el SAT, conocí a un hacker que estaba agregando software de red a su calculadora. Después de algunas deliberaciones, decidió admitir solo protocolos por cable porque temía que los niños introdujeran una calculadora con Wi-Fi en un examen. Al admitir solo protocolos cableados, se aseguró de que cualquier persona en una prueba tuviera que tender un cable a la máquina de su vecino. Odiaba saltarse los protocolos inalámbricos, pero sentía que el riesgo de abuso era demasiado alto.

Dilema ético n. ° 7: Hasta dónde defender a los clientes frente a las solicitudes de datos

Si recopila datos, es una apuesta segura que su organización algún día se verá atrapada entre servir a sus clientes y servir al gobierno. Las solicitudes para entregar datos a entidades legales se están volviendo cada vez más comunes, dejando cada vez más organizaciones de software y servicios para contemplar hasta qué punto traicionarán la privacidad de sus clientes ante la ley. Puede examinar estas solicitudes e incluso contratar a sus propios abogados para impugnar si son realmente legales, pero la realidad es que los tribunales debatirán las legalidades mucho después de que se acaben los fondos.

No hay soluciones fáciles. Algunas empresas están optando por dejar el negocio en lugar de mentirles a sus clientes. Otros están tratando de ser más abiertos con las solicitudes, que el gobierno a menudo intenta prohibir.

Dilema ético n. ° 8: cómo lidiar con la naturaleza internacional de Internet

Internet corre por todas partes, evitando muchas de las barreras tradicionales en las fronteras. Esta puede ser una receta para dolores de cabeza legales cuando los clientes A y B se encuentran en países diferentes. Eso es solo el comienzo, porque los servidores C y D a menudo también se encuentran en países completamente diferentes.

Esto conduce a problemas éticos obvios. Europa, por ejemplo, tiene leyes estrictas sobre la retención de información personal y considera las violaciones de la privacidad como fallas éticas. Otros países insisten en que las empresas mantengan registros copiosos de las transacciones. ¿Qué leyes debe seguir una empresa cuando los clientes se encuentran en diferentes países? ¿Cuando los datos están en diferentes condados? ¿Cuándo se transfieren datos a través de líneas internacionales?

Mantenerse al día con cada contingencia legal puede ser hercúleo, dejando a muchas organizaciones seguramente tentadas a enterrar sus cabezas en la arena.

Dilema ético n. ° 9: cuánto devolver al código abierto

Todo el mundo sabe que el código abierto es gratuito. No paga nada y eso es lo que lo hace tan maravilloso y complejo. Pero no todo el mundo contempla los problemas éticos que conlleva el uso de ese código gratuito. Todos los paquetes de código abierto vienen con licencias y debe seguirlas.

Algunas de las licencias no requieren mucho sacrificio. Las licencias como Apache License o MIT License requieren reconocimiento y eso es todo. Pero otras licencias, como la Licencia Pública General GNU, le piden que comparta todas sus mejoras.

Analizar las licencias de fuentes abiertas puede presentar desafíos éticos. Un gerente de una gran empresa pública me dijo: "No distribuimos MySQL, por lo que no le debemos nada a nadie". Estaba tecleando la cláusula, escrita hace décadas, que vinculaba las obligaciones de la licencia al acto de redistribuir el software. La compañía usó MySQL para sus aplicaciones web, por lo que sintió que podía aceptar sin retribuir.

No hay formas sencillas de medir las obligaciones éticas y muchos programadores han desperdiciado muchas pulsaciones de teclas discutiendo sobre lo que significan. Aún así, todo el esfuerzo se detendrá si la gente deja de dar. La buena noticia es que, a menudo, lo mejor para todos es contribuir porque todos quieren que el software siga siendo compatible con su uso.

Dilema ético n. ° 10: cuánto seguimiento se justifica realmente

Tal vez su jefe quiera asegurarse de que los clientes no estafen a la empresa. Tal vez quiera asegurarse de que le paguen por su trabajo. Quizás algún tipo espeluznante del gobierno diga que debes instalar una puerta trasera para atrapar a los malos. En todos los casos, el argumento está lleno de garantías de que la puerta trasera solo se utilizará, como los poderes de Superman, para apoyar la verdad y la justicia. No se utilizará contra enemigos políticos ni contra los menos afortunados. No se venderá a regímenes despóticos.

Pero, ¿y si los malos descubren la puerta oculta y descubren cómo usarla ellos mismos? ¿Qué pasa si su puerta trasera se utiliza para apoyar falsedades e injusticias? Su código no puede tomar decisiones éticas por sí solo. Ese es tu trabajo.

Dilema ético n. ° 11: ¿Qué tan a prueba de balas debería ser realmente el código?

Claro, el cálculo mínimo, la estructura de datos simple y el enfoque de fuerza bruta funcionan bien en la demostración cuando los problemas son pequeños. Los usuarios prueban el código y dicen: "Dios, esto funciona rápidamente". Varios meses más tarde, cuando se han cargado suficientes datos en el sistema, aparecen las debilidades del algoritmo barato y el código se ralentiza.