Post Top Ad

Your Ad Spot

martes, 5 de mayo de 2020

Lo que se necesita para ser un profesional de programación ética

Para la mayoría de los programadores y profesionales de ingeniería de software, el amor por la tecnología, la lógica y la resolución de problemas son los principales motivadores. Como resultado, no podemos resistirnos a asumir proyectos complejos que volverían locos a otros. El resultado es un tipo de miopía que es exclusivo de las personas en la industria del software; una búsqueda decidida de soluciones que significa que no siempre nos tomamos el tiempo para pensar en las ramificaciones éticas a largo plazo del código que producimos.
Ese es un problema más grande de lo que puedas imaginar. En el mundo de hoy, el software está involucrado en casi todas las partes de nuestras vidas. Gestiona las complejas cadenas de suministro que ponen alimentos en los estantes de nuestros supermercados. Ayuda a los socorristas a descubrir cómo comunicarse con nosotros cuando hay una emergencia. Incluso toma decisiones que pueden afectar nuestra libertad de caminar por las calles.
Como programadores, no pensamos mucho en esas cosas mientras hacemos nuestro trabajo y es comprensible. Son problemas que parecen estar muy por encima de nuestra calificación salarial. Pero la realidad es que cada línea de código que creamos tiene consecuencias, y pueden ser severas. Para evidencia, no busque más allá de las fallas aparentes del software de control que condenaron a dos de los aviones 737 Max de Boeing, que se cobraron 346 vidas.
Es fácil argumentar que una situación como esa fue el resultado de una cascada de fallas que fueron culpa de toda la organización, y eso es ciertamente cierto.
También es fácil para el programador independiente promedio descartar el escenario como algo que no se aplica a ellos, ya que no funcionan para compañías que producen software con riesgos de vida o muerte, y eso también podría ser cierto.
Pero cuando considera que parte del software en cuestión puede haberse originado en una empresa de programación subcontratada que no tenía la experiencia necesaria para el trabajo, comienza a quedar claro que, como industria, no podemos darnos el lujo de seguir pasando el dólar. No hay forma de saber cuándo nos enfrentaremos a tomar una decisión sobre la ética involucrada en algo en lo que estamos trabajando.
Por esa razón, es importante que todos los programadores, desarrolladores e ingenieros de software tomen medidas para definir algunos límites éticos de antemano. Nosotros, como industria, tenemos que buscar el conocimiento correcto y decidir dónde trazamos la línea entre ganar nuestro salario y dormir bien por la noche. Aquí hay algunos consejos sobre dónde comenzar ese viaje y cómo asegurarse de ser un profesional de la programación ética.

Comprender qué es la ética (y qué no es)

Como programadores, todos comenzamos en alguna parte. Para algunos de nosotros, fue jugar con fragmentos de código y incursionar en cursos en línea para aprender cómo funcionaban las cosas. Para otros, fue en una universidad, luchando con las tareas y trabajando para obtener un título en informática. No importa el camino, la única característica común que (casi) todos compartimos es que nadie se tomó el tiempo para enseñarnos sobre ética.
Si le preguntas a casi cualquier programador si se han topado con problemas éticos en su trabajo, es probable que digan que no. Sin embargo, si es más específico, como preguntar si un empleador alguna vez le pidió que renuncie a las pruebas unitarias por interés del tiempo o si sintió presión para tergiversar el estado de alguna parte de un proyecto a un cliente, y la respuesta es probable que cambie.
La razón es que es simplemente difícil identificar qué es un problema ético específico de la programación, incluso cuando te está mirando a la cara. Aún así, no hay programador trabajando hoy que no haya enfrentado uno o dos de estos problemas. Cosas como violaciones casuales de los derechos de propiedad intelectual cuando está claro que se ha eliminado algún código de otro proyecto o la insistencia de un cliente en el registro de actividades intrusivas sin ninguna revelación externa de lo que está ocurriendo. La mayoría de las veces, son prácticas que son tan comunes que simplemente no se destacan, a menos que sepa lo que está buscando.
Para ayudar, todo profesional de la programación debería tomarse un tiempo para estudiar el concepto de ética y adquirir algún conocimiento en esa área. Es facil de hacer. Un buen lugar para comenzar es simplemente reflexionar un poco sobre su propio concepto de lo correcto y lo incorrecto. Piensa en el trabajo que has hecho en el pasado y pregúntate: "si estuviera al otro lado de la pantalla, ¿estaría bien con esto?"
Incluso puede hacer un estudio independiente para repasar su conocimiento de la ética aplicada. Ciertamente no hay escasez de recursos en línea sobre el tema. El MIT incluso ofrece cursos gratuitos de ética en línea , al igual que muchas otras universidades acreditadas.
Si tiene tiempo, recoja una copia del libro de la autora Sara Baase, A Gift of Fire: Social, Legal, and Ethical Issues for Computing Technology . Es una inmersión profunda en las innumerables formas en que las preguntas éticas se cruzan con la tecnología moderna, y contiene una gran cantidad de ejemplos del mundo real para ilustrar todos los conceptos. Solo asegúrate de comprar una copia legítima del libro. Aunque puede estar disponible de forma gratuita en otro lugar en línea, seguir esa ruta sería muy poco ético en sí mismo.

No encubras las fallas de otros

Dado que la programación tiende a ser un proceso iterativo, no es raro trabajar en proyectos que implican construir o extender código existente. Al hacerlo, todos tenemos nuestros momentos de rascarse la cabeza cuando nos encontramos con cosas que van desde lo confuso hasta lo completamente indignante. A veces, encontraremos código descuidado. Otras veces, veremos cosas que simplemente están mal.
Eso es lo que le sucedió al usuario medio dCFO, que heredó un software de facturación de Medicare y descubrió que había sido programado para defraudar al gobierno . En ese caso particular, la solución fue denunciar el fraude a las autoridades correspondientes. En cada caso, dejar lo suficientemente solo es siempre el camino equivocado.
Mantener altos estándares éticos como programador significa llamar a un código deficiente o inapropiado donde sea que lo encuentre. Siempre que sea posible, debe informar cualquier cosa inusual a su supervisor inmediato si tiene uno. Si no escuchan, sigue informando sobre la cadena de mando hasta que encuentres a alguien dispuesto a tomar medidas. Si trabaja como freelance, debe comunicar sus inquietudes directamente a su cliente.
Si se encuentra en una situación en la que los que están arriba parecen contentarse con ocultar un problema ético, o peor aún, son cómplices del problema, es posible que deba buscar otra forma de llamar la atención sobre la situación. No siempre es necesario poner su propio nombre en el informe (como en el caso anterior, donde el programador avisó anónimamente a las autoridades), pero es fundamental llamar la atención sobre cualquier cosa sospechosa que no pueda solucionar por su cuenta. Hacer lo contrario significa que estás pasando el dinero, y el próximo programador que se encuentre con el problema asumirá que también lo hiciste. Si hace un esfuerzo documentado para solucionar el problema, estará en lo correcto sin importar cómo resulte la situación.

No tengas miedo de decir que no

Los programadores, y especialmente la variedad independiente, se ganan la vida moviéndose de un proyecto a otro. Eso trae consigo una cierta urgencia de asumir cualquier trabajo que se presente, sin importar lo que sea. No hace falta decir que eso puede conducir a una variedad de conflictos éticos. Después de todo, los programadores independientes a menudo no conocen todos los detalles de lo que van a estar trabajando hasta que están en código hasta las rodillas.
Una vez que eso sucede, existe una tremenda presión para seguir diciendo que sí al cliente con el interés de recibir un pago por todo el esfuerzo ya realizado. Pero, ¿qué sucede cuando el cliente solicita una función o un cambio que no es ético cuando ya ha invertido innumerables horas de trabajo? Si entró en el proyecto con sus límites éticos firmemente establecidos, la respuesta es que tiene que poner su pie y decir que no.
De hecho, también debes dejar en claro por qué dices que no. Por mucho que esas conversaciones puedan ser desagradables, son necesarias para que el cliente sepa que usted comprende que lo que está pidiendo no es ético. Cuando tiene que hacer esto, es importante comenzar la conversación sin ser confrontativo. No lidere asumiendo que el cliente sabe que está equivocado. Plantee el problema como una pregunta, con frases como "¿Sabía que ..." o "Creo que esto es un problema, pero ¿puede explicarme por qué no lo ve así?"
La mayoría de las veces, el cliente retrocederá cuando se lo llame de esta manera. A veces, incluso responderán con verdadera sorpresa: después de todo, los no programadores a menudo no ven las implicaciones éticas de lo que te piden que hagas; solo quieren resultados. Sin embargo, si no lo hacen, el siguiente paso es alejarse. Por mucho que pueda lastimar financieramente, es lo correcto.

Participar en debates de ética con otros profesionales

Si hay algo que los programadores tienden a hacer con regularidad, es hablar sobre sus proyectos. Es por eso que hay tantos blogs y comunidades dedicados a la programación en todas sus formas. Resulta que esos también son excelentes foros para discutir las implicaciones éticas de las cosas en las que trabajamos.
Para empezar, acostúmbrese a preguntar a otros profesionales qué piensan cuando se enfrentan a un desafiante dilema ético. Es posible que se sorprenda de la cantidad de personas que se han enfrentado a problemas similares y pueden ofrecer consejos valiosos sobre qué hacer. Incluso si su situación es única, vale la pena rechazar el problema de otros que puedan entender de lo que está hablando.
También debe compartir sus fallas éticas con otros cuando sucedan. El programador de toda la vida Bill Sourour hizo exactamente eso cuando publicó una publicación en el blog titulada " El código del que todavía me avergüenzo ". En él, relató la historia de un proyecto en el que trabajó al principio de su carrera que involucraba construir un cuestionario en línea engañoso para una compañía farmacéutica. Resultó que el medicamento que promovió tenía algunos efectos secundarios que llevaron a algunos pacientes a usarlo para suicidarse.
A pesar de lo doloroso que fue el episodio, fue una experiencia de aprendizaje que provocó una conversación sobre la ética de la programación que alentó a otros a compartir problemas éticos que habían encontrado. Casi como si se hubiera desatado un gran torrente, surgieron discusiones simultáneas sobre StackExchange , Stack Overflow , el foro de r / programación de Reddit y en otros lugares con innumerables programadores que compartieron sus experiencias. Esos lugares siguen siendo una gran caja de resonancia para los programadores que enfrentan dilemas éticos, incluso hoy. Cuantas más personas se tomen el tiempo para contar sus historias, mejor estaremos nosotros, como industria.

Comprométete a dar lo mejor de ti

Aunque no hay muchas organizaciones profesionales para que se unan los programadores que brinden un marco ético a seguir, hay algunas promesas publicadas que pueden servir como palabras básicas para el programador promedio. Un recurso más profundo que hace una guía fantástica es el libro de Robert Martin The Clean Coder: A Code of Conduct for Professional Programmers . Está lleno de muchos consejos prácticos que pueden ayudar a cualquier programador a adoptar prácticas éticas y elevar su habilidad. Ambos son excelentes lugares para comenzar.
Sin embargo, recuerde que Roma no se construyó en un día. No es razonable esperar que hagas el llamado ético correcto en cada situación que encuentres. Lleva mucho tiempo acostumbrarse a defender sus límites éticos y aplicarlos a todo lo que hace. Tampoco puede esperar que los programadores con los que trabaja adopten repentinamente estándares de programación éticos. No importa cómo actúen los que te rodean, es fundamental mantenerse firme. Eventualmente, tu actitud se contagiará a quienes te rodean.
Lo principal es abordar siempre cada proyecto con un ojo exigente y estar atento a cualquier cosa que parezca menos que exagerada en los requisitos de cada proyecto o el código existente involucrado. Luego, asegúrese de hacer siempre lo mejor para hacer lo correcto y mantener su integridad.
Si ha realizado los preparativos correctos y ha tomado medidas para explicar con anticipación sus propios límites éticos, no tendrá que preguntarse qué hacer cuando algo cuestionable cruza su escritorio. Podrá detectar situaciones problemáticas temprano y podrá concentrarse en su respuesta. Y cuando eso suceda, su respuesta será más segura y tendrá un resultado ético positivo.
No siempre será fácil. No siempre será bueno para su balance final. Pero mantener altos estándares éticos es una responsabilidad que comparten todos los programadores, y a medida que nuestro trabajo se arraiga más profundamente en el mundo que nos rodea, las apuestas crecen aún más. Recuerde, los resultados de todo nuestro trabajo nos rodean. Vidas y medios de vida dependen de ello. Y no hay forma de saber cuándo una decisión de juicio ético que haga hoy tendrá consecuencias en el mundo real en el futuro.
Por lo tanto, lo más importante es pasar el tiempo ahora para desarrollar sus límites éticos y aprender a manejar situaciones éticas complicadas cuando surjan. Vale la pena el esfuerzo. Recuerde, al final del día, estamos todos juntos en esto. Si todos hacemos nuestra parte, nuestra industria se enfrentará al desafío de generar un código reflexivo, ético e inexpugnable para impulsar el futuro. Todo depende de nosotros.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas