sábado, 29 de noviembre de 2008

Sobre la ética y la responsabilidad profesional en ingeniería de software


En lo personal siempre me he preguntado por qué durante nuestros años de facultad no tenemos como materia obligatoria la ética.

Estamos todo el día trabajando con sistemas de gestión y contables que mueven millones de dólares arriba y abajo, o sistemas que contienen datos personales de miles de personas (tanto de salud como financieros) o nos vemos sometidos a encrucijadas como por ejemplo cuando cambiamos de trabajo y nos llevamos dentro muchísimo conocimiento de la empresa para la que trabajábamos que puede ser utilizado para mejorar los sistemas de otra compañía rival y nos preguntamos que está bien decir y que no, cuando en forma amable e inocente nos hacen alguna pregunta indiscreta.

En fin, estaría bueno tener discusiones planteando casos hipotéticos para prepararnos para estos asuntos antes de salir del cascaron hacia el mundo real, cuando nuestros servicios sean requeridos por diferentes personas con diferentes motivaciones y donde no podemos ser una simple herramienta o interfaz entre los sistemas y los que solicitan las modificaciones porque a fin de cuentas somos casi seres humanos y tenemos poder para poder decidir entre lo bueno y lo malo ¿no?

No digo llegar a un equivalente al juramento hipocrático para la ingeniería del software, pero si tratar de lograr un compromiso vinculante entre todos los que ejercemos está profesión para que estemos todos de acuerdo y se puedan tomar posturas firmes de “esto no lo hago” sin tanto temor a ser remplazado por un colega más flexible que realice la tarea sin problemas.

Del libro “Ingeniería de Software” de Ian Sommerville les dejo unos pasajes:

Como otras disciplinas de la ingeniería, la ingeniería del software se lleva a cabo dentro de un marco legal y social que limita la libertad de los ingenieros. Los ingenieros de software deben aceptar que su trabajo comprende responsabilidades más amplias que simplemente la aplicación de habilidades técnicas. Deben comportarse de una forma ética y moral responsable si es que desean ser respetados como profesionales.

No basta con decir que usted siempre debe poseer estándares normales de honestidad e integridad. No debería utilizar su capacidad y sus habilidades para comportarse de forma deshonesta o de forma que deshonre la profesión de la ingeniería del software. Sin embargo, existen áreas donde los estándares de comportamiento aceptable no están acotados por las leyes, sino por la más tenue noción de responsabilidad profesional. Algunas de estas son:

I. Confidencialidad. Usted normalmente debe respetar la confidencialidad de sus empleadores o clientes independientemente de que se haya firmado un acuerdo formal de confidencialidad.

2. Competencia. No debe falsificar su nivel de competencia, ni aceptar conscientemente trabajos que están fuera de su capacidad.

3. Derechos de propiedad intelectual. Debe ser consciente de las leyes locales que gobiernan el use de la propiedad intelectual, como las patentes y el copyright. Debe asegurarse de que la propiedad intelectual de los empleadores y clientes está protegida.

4. Uso inapropiado de las computadoras. No debe emplear sus habilidades técnicas para utilizar de forma inapropiada las computadoras de otras personas. El use inapropiado de las computadoras va desde los relativamente triviales (utilizar juegos en la máquina de un empleador, por ejemplo) hasta los extremadamente serios (difusión de virus).

Las sociedades e instituciones profesionales tienen que desempeñar un papel importante en el establecimiento de estándares éticos. Organizaciones como la ACM, el IEEE (Instituto de Ingenieros Eléctricos y Electrónicos) y la British Computer Society publican un código de conducta profesional o de ética. Los miembros de estas organizaciones se comprometen a cumplir ese código cuando se inscriben en ellas. Estos códigos de conducta generalmente se refieren al comportamiento ético fundamental.

La ACM y el IEEE han cooperado para crear un código de ética y práctica profesional.

Este código existe en forma reducida y en forma extendida la cual agrega detalle y sustancia a la versión reducida. El fundamento sobre el que se asienta este código se resume en los dos primeros párrafos de la versión extendida:

Las computadoras tienen un papel central y creciente en el comercio, la industria, el gobierno, la medicina, la educación, el entretenimiento y la sociedad en general. Los ingenieros de software son aquellos que contribuyen con su participación directa o por su enseñanza al análisis, especificación, diseño, desarrollo, certificación, mantenimiento y pruebas de los sistemas de software. Debido a sus papeles en el desarrollo de sistemas de software, los ingenieros de software tienen significativas oportunidades de hacer el bien o causar daño, permitir que otros hagan el bien o causen daño, o influir en otros para hacer el bien o causar daño. Para asegurar, tanto como sea posible, que sus esfuerzos serán utilizados para bien, los ingenieros de software deben comprometerse consigo mismos para hacer de la ingeniería del software una profesión de beneficio y respeto. De acuerdo con este compromiso, los ingenieros de software deben cumplir el siguiente Código de Ética y Práctica Profesional.

El código contiene ocho principios relacionados con el comportamiento y con las decisiones hechas por ingenieros de software profesionales, incluyendo practicantes, educadores, administradores, supervisores y creadores de políticas, así coma aprendices y estudiantes de la profesión. Los principios identifican las relaciones éticas en las que los individuos, grupos y organizaciones participan, y las obligaciones primarias dentro de estas relaciones. Las clausulas de cada principio son ilustraciones de algunas de las obligaciones incluidas en estas relaciones. Estas obligaciones se fundamentan en la humanidad del ingeniero de software, con especial cuidado en la gente afectada por el trabajo de los ingenieros de software, y los elementos únicos de la práctica de la ingeniería del software. El código prescribe estas como obligaciones de cualquiera que se llame a que aspire a ser un ingeniero de software.


En cualquier situación en la que diferentes personas tienen distintos puntos de vista y objetivos, es posible encontrar problemas éticos. Por ejemplo, si usted está en desacuerdo, en principio, con las políticas de un directivo de categoría superior en la compañía, ¿cómo debería reaccionar? Desde luego, esto depende de cada individuo y de la naturaleza de la discordancia. ¿Es mejor argumentar a favor de su posición dentro de la organización o renunciar de acuerdo con sus principios? Si piensa que existen problemas con un proyecto de software, ¿cuando se deben comunicar estos al gerente? Si estos se discuten cuando son solo una sospecha, puede ser una sobre reacción a la situación, si lo deja para más tarde, puede ser imposible resolver las dificultades.

Tales problemas éticos aparecen en nuestra vida profesional y, afortunadamente, en muchos casos son relativamente menores o se pueden resolver sin mucha dificultad. Cuando no se puedan resolver, los ingenieros se enfrentaran, quizás, con otro problema. La acción con base en sus principios podría ser renunciar a su trabajo, pero esto puede afectar a otros, por ejemplo, a sus colaboradores o sus hijos.

Una situación particularmente difícil para los ingenieros profesionales surge cuando su empleador actúa de una forma no ética. Por ejemplo, una compañía es responsable de desarrollar un sistema crítico de seguridad y, debido a las presiones de tiempo, falsifica la validación de protección de los registros. ¿Es responsabilidad del ingeniero mantener la confidencialidad o alertar al cliente o hacer público, de alguna forma, que el sistema entregado es inseguro?

El problema aquí es que no existen absolutos cuando se trata de protección. Aun cuando el sistema no haya sido validado de acuerdo con los criterios predefinidos, estos pueden ser demasiado estrictos. El sistema puede, de hecho, operar de forma Segura a través de su tiempo de vida. Pero puede darse el caso de que, aun cuando sea validado apropiadamente, el sistema falle y cause un accidente. El descubrimiento temprano de problemas puede resultar perjudicial para el empleador y otros empleados; la falta de descubrimiento de problemas puede resultar perjudicial para otros.

Debe tomar su propia decisión en estos temas. La posición ética apropiada depende enteramente del punto de vista de los individuos que están involucrados. En este caso, el potencial para el daño, el grado del daño y la gente afectada por el deben influir en la decisión. Si la situación es muy peligrosa, se justifica su publicación en la prensa nacional (por ejemplo). Sin embargo, se debe tratar de resolver la situación respetando los derechos del empleador.

Otra cuestión ética es la participación en el desarrollo de sistemas militares y nucleares. Algunas personas tienen una opinión firme sobre estos temas y no desean participar en ningún desarrollo de sistemas asociados con sistemas militares. Otros trabajaran en sistemas militares, pero no en sistemas de armamento. Algunos otros sentirán que la defensa de la nación es un principio fundamental y no tienen objeciones éticas para trabajar en sistemas de armamento.

En esta situación, es importante que tanto empleadores como empleados se hagan saber con anticipación sus puntos de vista. Cuando una organización está relacionada con el trabajo militar o nuclear, le debe ser posible especificar si los empleados pueden aceptar cualquier tarea. De igual forma, si un empleado hace patente que no desea trabajar en tales sistemas, los empleadores no deben presionarlo posteriormente.

El área de ética y responsabilidad profesional ha recibido creciente atención en los pasados años. Los principios de ética se pueden considerar desde un punto de vista filosófico, y la ética de la ingeniería del software se debe tratar con referencia a estos principios básicos. Este es el enfoque considerado por Laudon (Laudon, 1995) y, de forma menos extensa, por Huff y Martin (Huffy Martin, 1995). [continúa]


(clic para ampliar imagen “código de ética y práctica profesional” reducido)

1 comentario:

Daniel dijo...

Excelente! Akabo de shegar de la defensa de la tercera instancia obligatoria de esa materia (ORT - ATI) y hasta me dan ganas de ponerme a leer Sommerville!