Ética de la programación

El presente artículo ofrece una visión general sobre la ética profesional aplicada a la programación informática y el desarrollo de software, en particular sobre las directrices éticas que los desarrolladores deben seguir y aplicar al escribir código de programación (también llamado código fuente) y cuando forman parte de una relación programador-cliente o empleado-empleador. Estas normas definen y diferencian las buenas prácticas y actitudes de las incorrectas en la creación de software, o al tomar decisiones en asuntos cruciales o delicados relacionados con un proyecto de programación. Además, constituyen la base para el desarrollo de habilidades de toma de decisiones éticas en el desempeño del trabajo profesional.

Historia

editar

El académico estadounidense Norbert Wiener, profesor de Matemáticas e Ingeniería en el Instituto de Tecnología de Massachusetts (MIT), fue la primera persona en sentar las bases de un nuevo tipo de ética a mediados de la década de 1940. Wiener observó que las innovaciones y avances en ciencia y tecnología, junto con el rápido crecimiento de la industria informática, estaban dando lugar a la aparición de este nuevo enfoque ético, al que denominó "cibernética" (del término griego que significa el piloto de un barco). La creciente utilización de computadoras y otras tecnologías planteaba nuevas cuestiones éticas que necesitaban ser analizadas detenidamente, utilizando nuevas directrices éticas.

Wiener argumentó que la cibernética no solo se ocupaba de la teoría de sistemas y control, sino también de las implicaciones éticas de los avances tecnológicos, lo que sentó las bases para el desarrollo de la ética informática. Su trabajo ha influido en diversas áreas, desde la inteligencia artificial hasta la responsabilidad social en la tecnología, y continúa siendo relevante en la discusión sobre el impacto ético de las tecnologías emergentes en la sociedad.

Wiener escribió tres libros que sentaron las bases de una nueva división de la ética después del final de la Segunda Guerra Mundial. Los libros fueron Cibernética (1948), El uso humano de los seres humanos (1950) y Dios y Golem, S.A. (1963). Aunque nunca se consideró a sí mismo como el creador de una nueva área de la ética, Wiener proporcionó ejemplos detallados en los que se podían identificar cuestiones éticas y sociales, así como implicaciones derivadas del uso de computadoras. Sin embargo, sus ideas no fueron tomadas en serio por otros académicos, quienes lo consideraban un científico excéntrico que fantaseaba sobre la ética (Bynum).[1]

Los libros de Wiener no solo exploraron la teoría cibernética, sino que también abordaron la relación entre la tecnología y la moralidad. Cibernética estableció un marco para entender la comunicación y el control en sistemas tanto biológicos como artificiales. El uso humano de los seres humanos examinó la manera en que la tecnología podría afectar la naturaleza humana y las interacciones sociales. Por su parte, Dios y Golem, S.A. abordó la creación de seres artificiales y las implicaciones éticas de tal desarrollo. A pesar de su falta de reconocimiento en su época, el trabajo de Wiener ha influido en el campo de la ética tecnológica y sigue siendo relevante en debates contemporáneos sobre la inteligencia artificial y la responsabilidad ética en la tecnología.

En 1976, Walter Maner propuso un nuevo término relacionado con la ética, denominado "ética informática", basado en las ideas y principios de Norbert Wiener. Maner consideró necesario crear un campo de la ética para la industria informática, tal como lo tenían en ese momento las industrias médica y empresarial. Además, Maner definió este campo como aquel que "estudia los problemas éticos agravados, transformados o creados por la tecnología informática" ((Bynum),[1]​ y también diseñó un curso de ética informática que podría ser impartido a estudiantes universitarios.

A principios de la década de 1990, Donald Gotterbarn afirmó que la ética informática debía considerarse como ética profesional, con el potencial de impulsar el desarrollo y avance de estándares de buenas prácticas y códigos de conducta para los profesionales de la informática (Bynum).[1] Gotterbarn trabajó con varios defensores de la ética profesional para redactar directrices éticas destinadas a la creación de códigos de ética. Formó parte de la creación del Código de Ética y Conducta Profesional, adoptado por la Asociación de Maquinaria Computacional (ACM) en 1992, y del Código de Ética y Práctica Profesional de la Ingeniería de Software, adoptado tanto por el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) como por la ACM. Estos códigos también incluyen principios de la ética en la programación.

Pautas éticas de programación

editar

La Asociación de Maquinaria Computacional (ACM) es la sociedad educativa y científica de computación más grande del mundo. Cuenta con su propio Código de Ética y otro conjunto de principios éticos que también fueron aprobados por el IEEE (Insituto de ingenieros eléctricos y electrónicos) como el estándar para la enseñanza y la práctica de la ingeniería de software. Estos códigos son el Código de Ética y Conducta Profesional y el Código de Ética y Práctica Profesional de la Ingeniería de Software, respectivamente. A continuación, se presentan algunas de sus directrices:

Del Código de Ética y Conducta Profesional (CCE): [2]

  • Contribuir a la sociedad y al bienestar humano. Los programadores deberían trabajar para desarrollar sistemas informáticos que puedan reducir las consecuencias negativas para la sociedad, como las amenazas a la seguridad y la salud, y que puedan facilitar las actividades y el trabajo cotidianos. Es “una obligación desarrollarse según estándares elevados” (Savage). [3]
  • Evite dañar a los demás. Los sistemas informáticos tienen un impacto indirecto sobre terceros. Pueden provocar pérdidas de información y recursos que podrían resultar gravemente perjudiciales para los usuarios, el público en general o los empleadores. Por lo tanto, los desarrolladores de software deben minimizar el riesgo de dañar a otros debido a errores de codificación o problemas de seguridad, siguiendo estándares para diseñar y probar sistemas (Código de Ética y Conducta Profesional). [2]
  • Sea honesto y confiable. Este principio alienta a los programadores a ser honestos y conscientes de sus limitaciones en conocimientos y educación al escribir sistemas informáticos. Además, si un programador sabe que hay algo mal con un sistema informático, debe informarlo inmediatamente para evitar consecuencias indeseables.
  • Dar el crédito apropiado a la propiedad intelectual. Es obligatorio para cada desarrollador de software nunca usar ni tomar crédito por el trabajo de otra persona, incluso cuando no esté protegido por una ley de derechos de autor, patente, etc. Deben reconocer y dar crédito completo a los trabajos de otras personas, y deben usar sus propias ideas para desarrollar software.
  • Respete la privacidad de los demás. Los sistemas informáticos son utilizados incorrectamente por algunas personas para violar la privacidad de otros. Los desarrolladores de software deben escribir programas que puedan proteger la información privada de los usuarios y que puedan evitar que otras personas no deseadas tengan acceso no autorizado a ella (Código de Ética y Conducta Profesional).
  • Honrar la confidencialidad. A menos que lo requiera la ley o cualquier otra directriz ética, un programador debe mantener en secreto cualquier información adicional relacionada con su empleador que surja de su trabajo en un proyecto.

Del Código de ética y práctica profesional de ingeniería de software [4]​ (IEEE, ACM):

  • Apruebe el software sólo si tiene una creencia bien fundada de que es seguro y cumple con las especificaciones. Los programadores no pueden asumir que un sistema está listo para usarse sólo porque realiza las tareas necesarias. Deben asegurarse de que estos sistemas también sean seguros y cumplan con todas las especificaciones requeridas por el usuario. Si los programas no son seguros, los usuarios están desprotegidos de los piratas informáticos que podrían robar información importante o dinero. Por lo tanto, se deben realizar varias pruebas para garantizar la seguridad de un sistema antes de aprobarlo.
  • Aceptar la plena responsabilidad de su propio trabajo. Si un programa presenta errores, el desarrollador del software debe aceptar toda la responsabilidad por su trabajo y debe trabajar en revisarlo, corregirlo, modificarlo y probarlo .
  • No utilizar a sabiendas software obtenido o conservado de forma ilegal o poco ética. Si un sistema informático se va a utilizar como base para la creación de otro, el programador deberá solicitar permiso para hacerlo. Este principio prohíbe utilizar cualquier otro software para cualquier propósito si no está claro cómo se obtuvo o se sabe que es ilegal o poco ético.
  • Identificar, definir y abordar cuestiones éticas, económicas, culturales, legales y ambientales relacionadas con los proyectos de trabajo. Si un programador nota e identifica que trabajar en un proyecto dará lugar a algún tipo de problemas, entonces debe informarlo a su empleador antes de continuar.
  • Asegurarse de que las especificaciones del software en el que trabajan satisfagan los requisitos de los usuarios y cuenten con las aprobaciones adecuadas. Los desarrolladores de software deben acudir a sus empleadores para solicitar la aprobación correspondiente al sistema que están creando antes de continuar trabajando en la siguiente parte. Si no cumple con los requisitos, entonces se deberá realizar una modificación al código fuente del sistema.
  • Garantizar la realización de pruebas, depuración y revisión adecuadas del software. Los programadores deben realizar las pruebas adecuadas a las piezas de software con las que trabajan y deben verificar si hay errores y agujeros de seguridad del sistema para asegurarse de que los programas estén bien implementados.
  • No participar en prácticas financieras engañosas, como soborno, facturación doble u otras prácticas financieras indebidas. Los programadores están expuestos a participar en actividades ilegales para obtener dinero. Se involucran en ellos por amenazas, cuestiones económicas o simplemente porque quieren obtener dinero fácil aprovechándose de sus conocimientos sobre el funcionamiento de los sistemas informáticos. Esta directriz prohíbe la participación del programador en tales acciones ilegales.
  • Mejorar su capacidad para crear software de calidad seguro, confiable y útil. A medida que la tecnología avanza más rápido año tras año, y también lo hace la criminalidad virtual, aumenta la necesidad de programas bien estructurados y diseñados. Los sistemas informáticos se vuelven obsoletos y quedan limitados por otros nuevos y nuevos dispositivos. Los programadores deben “ampliar su conocimiento de los avances en el análisis, especificación, diseño, desarrollo, mantenimiento y prueba de software y documentos relacionados” (Código de ética y práctica profesional de ingeniería de software) [4]​ para crear mejores piezas de software.

El papel de la universidad

editar

La Universidad de Ohio (No es la única) también capacita a sus estudiantes de ciencias de la computación en el campo de la ética de la programación. Se espera que cada estudiante comprenda y siga los principios y responsabilidades establecidos por la ACM.[5]

Consecuencias legales

editar

Cometer errores intencionalmente, como crear contraseñas inseguras o dejar vulnerabilidades de seguridad en la implementación de un programa que puedan comprometer la seguridad y confiabilidad de un sistema, deja al usuario o cliente desprotegido y expone al programador a un juicio. Las sanciones específicas que podrían derivarse de una disputa legal relacionada con la programación varían de un estado a otro dependiendo de la legislación vigente. Las sanciones pueden incluir medidas correctivas, un cierto número de horas de trabajo social o meses o años de cárcel.

Véase también

editar

Referencias

editar
  1. Bynum, Terrel (26 de octubre de 2015). «Computer and Information Ethics». En Edward N. Zalta, ed. The Stanford Encyclopedia of Philosophy (Spring 2011 Edition). Consultado el 21 de junio de 2021. 
  2. a b ACM Code 2018 Task Force. «ACM Code of Ethics and Professional Conduct». Association for Computing Machinery. Consultado el 28 de septiembre de 2013. 
  3. Savage, Brandon (12 de agosto de 2009). «Ethics for Programmers?». BrandonSavage.net. Consultado el 29 de septiembre de 2013. 
  4. a b Donald Gotterbarn, Keith Miller, and Simon Rogerson (28 de septiembre de 2013). Software Engineering Code of Ethics and Professional Practice. Association for Computing Machinery, IEEE. doi:10.1145/265684.265699. 
  5. «World of Programming». Ohio University. 8 de mayo de 2021. 

Bibliografía

editar