“El sistema no lo permite”. La importancia de la ética en la programación

la ética en la programación

Como usuarios, a veces encontramos que nuestros programas no nos dejan realizar algunas acciones. ¿Quién tomó esas decisiones? ¿Fueron decisiones éticas, poco éticas, que pasaron de la ética en su totalidad…?

La ética en la programación es crucial y, sin embargo, todavía no se le da la importancia que tiene. Para evitar injusticias futuras, hemos de aprender a programar abriendo el foco de nuestras líneas de código, e incluyendo la ética en nuestros diseños.

Las consecuencias de una falta de ética en la programación

Imagina que alguien te envía una hoja de Google Drive de donde necesitas copiar parte de un texto. Una acción normal para cualquier editor de texto, pero que puede verse truncada por una programación corta de miras.

Haces clic derecho con el ratón y seleccionas Copiar. Pero, en lugar de copiar, la aplicación en la nube lanza el siguiente mensaje:

la ética en la programación

A pesar de que el comando Ctrl+C (copiar) funciona perfectamente, la misma acción no puede hacerse usando un ratón. La explicación que da la aplicación está cogida por los pelos, y nadie nos informa del motivo por el que los programadores decidieron incluir una limitación similar.

Para el grueso de la población no supone ningún problema. Basta con bajarse la aplicación o usar Ctrl-C. Sin embargo, las personas con movilidad reducida, o incluso aquellos que cuenten con una sola mano para operar el ordenador, tienen el día a día un poquito más difícil debido a este capricho de la programación.

En un ejemplo de otro ámbito, un usuario de edad avanzada usa librería online desde la que se descarga libros protegidos mediante DRM para su tablet. La empresa gestora eligió el DRM teniendo en cuenta un punto de vista puramente empresarial y como forma de proteger a sus escritores.

Sin embargo, tras años de transacciones con este cliente, un día fallece dejando su enorme biblioteca digital fuera del alcance de sus herederos. A pesar de que el patrimonio digital forma parte del patrimonio transmisible a nuestros herederos (OCU DyD 156), una programación que no haya tenido en cuenta el aspecto ético puede quedarse muy corta y obligar a los familiares a entrar en litigios con la librería.

La importancia del planteamiento ético al programar

Puede que el lector piense que los ejemplos de arriba no son demasiado graves, y sin duda alguno habrá algo más serio. Es el caso de los llamados programas racistas, aunque los ponemos en cursiva porque hay que matizar que tras estos no hay una voluntad de daño o discriminación, sino una falta de ética en la programación.

Hace años fueron muy sonados los casos de este tipo de racismo por parte de software de reconocimiento visual usado en varias cámaras. Sin embargo, no estamos ante programadores racistas.

El motivo por el que estas cámaras no reconocían la negrura es porque fueron entrenadas principalmente por asiáticos con piel clara, más similares a los caucásicos que a las personas de color.

Cuando una de estas últimas se ponía frente a un software de reconocimiento facial, este no sabía que estaba viendo a una persona porque no identificaba el color a lo que le habían enseñado que era una persona.

Por fortuna, estos proyectos rápidamente corrigieron su software diseñado en un proceso poco ético. Pero casos como estos se han seguido repitiendo en todo el mundo por usar un entrenamiento muy limitado en el aprendizaje de las máquinas.

Otro caso de diseño mal llevado fue el sesgo racista, este sí sin cursiva, que tenía el algoritmo usado por la policía de Nueva York (NYPD).

La idea era introducir un software de reconocimiento que ayudase a la policía a guiar sus acciones. Sin embargo, se había entrenado al programa con el historial notablemente racista de la policía de NY, y el algoritmo apuntaba a las personas negras como más propensas a la delincuencia. Como consecuencia, barrios como el Bronx se llenaron de patrullas, fomentando la opresión y los conflictos.

reconocimiento facial y ética

Por fortuna, alguien se dio cuenta de esta falta de ética profesional y de su consecuencia en el software. Junto con el historial de la NYPD se incluyeron también datos sobre qué pasaba después de la detención. Por ejemplo, quién había cometido realmente el delito, si lo había habido, o si la persona era liberada sin cargos.

El término GIGO (cuando entra basura sale basura, Garbage In Garbage Out) se usa, entre otros procesos, cuando la falta de ética de partida se traspasa a la programación. No puede salir nada bueno si lo que entra es malo.

La ética y la programación de vida o muerte

Por fortuna, cada vez con más frecuencia se están incluyendo comités éticos en las empresas de programación del mismo modo que los hay en los gabinetes médicos. Y es que cada vez son más necesarios.

El dilema del tranvía aplicado a los vehículos autónomos es uno de los casos más visibles de los problemas que puede dar el software.

En el ejemplo clásico, una persona debía operar un cambio de vías decidiendo si el tranvía que controlaba (y que no podía detenerse) se llevaba por delante a una sola persona o a varias. El propio dilema es, bajo la perspectiva humana aceptada, una trampa: aunque la mayoría de los humanos tomamos la decisión menos mala (moral) cualquier decisión es poco ética.

ética y programación de vida o muerte - el caso del tranvía

En el mismo caso, llevado a la programación, disponemos de un vehículo autónomo que se ve envuelto en un accidente. Por ejemplo, porque una persona se lance a la carretera corriendo. ¿Qué debería hacer el coche si no hay espacio para frenar?

¿Dar un volantazo aún a costa de un probable accidente contra un muro que hiera de gravedad a los ocupantes? ¿Seguir avanzando para salvar la vida de su ocupante a costa de la persona que cometió la imprudencia? Aún no se ha alcanzado consenso, y es improbable que lo haya.

Otro caso futuro con un enorme peso ético es la neutralidad en la red. Esta implica que todos los bytes de información tienen la misma prioridad para ser enviados y recibidos, de modo que todos los usuarios tengan el mismo poder sobre Internet.

La idea es maravillosa y busca la igualdad total. Sin embargo, puede poner vidas en peligro. ¿Tiene la misma preferencia la descarga de una película en streaming que una operación a corazón abierto efectuada por un robot a distancia?

Nadie quiere un Internet poco justo, pero sería lamentable que un vehículo autónomo controlado mediante 5G chocase contra un muro porque no le llegó a tiempo la orden al estar la red saturada con la emisión de un evento deportivo o un concierto.

La programación es rígida: mejor incluir la ética a la primera

La importancia de la ética no radica solo en algunos casos puntuales y en un corto plazo de tiempo. Cuando un programa es diseñado en base a una ética o a la falta de la misma es casi imposible dar marcha atrás.

Pensemos en el nacimiento de Internet. Hoy, cuando hacemos clic en un enlace, avanzamos hacia otra ventana. Sin embargo, una de las posibilidades que se barajó era que, al hacer clic, la página de origen quedase a la izquierda y la de destino a la derecha. Imaginemos cómo habría cambiado nuestra cultura con una visual similar de Internet.

programación abre camino

La estandarización nos ayuda a conseguir nuevas metas, pero también magnifica los fallos de no haber programado con ética. Hoy se sabe que los ataques DDoS se llevan a cabo pirateando dispositivos conectados tales como los que usan Bluetooth. Como los primeros dispositivos se lanzaron al mercado con baja o nula seguridad para ganar rápida cuota de mercado, los actuales siguen saliendo con deficiencias en seguridad que fomentan estos ataques globales.

 

Si programamos sin ética los vehículos autónomos o si generamos un Internet perfectamente neutral quizá estemos dejando la ética de lado, y generando injusticias y desigualdades futuras muy difíciles de corregir.

En Lenovo | El mayor problema informático de nuestra era es más simple de lo que crees

Imágenes | iStock/claudiobaba, iStock/supparsorn, Un cerebro hambriento, iStock/phototechno

Etiquetas: