¿Deberían los programadores que escriben software malo que dañan a la gente ser ejecutados?

Pregunta: ¿los programadores que escriben mal software que daña a las personas deben ser ejecutados?

Wow, qué idea tan maravillosa. Vamos a ampliarlo un poco y ver qué pasa.

Veamos, ¿cuántas ocupaciones tenemos que, cuando las personas sufren daños, deben ser ejecutadas?

¿Qué tal si empezamos con los políticos? Cuando el Congreso aprueba malas leyes, todos deben ser ejecutados.

Cuando el Presidente dicta una orden que perjudica a las personas, como los acuerdos comerciales o la guerra, debe ser ejecutado.

Cuando los médicos no logran curar una enfermedad, deben ser ejecutados.

Cuando periodistas y bloggers escribieron un artículo incitante que causa disturbios, deberían ser ejecutados.

Muy pronto no nos quedará nadie si usamos “dañar a las personas” como criterio para matar a las personas.

Los programadores tienen derechos como todos los demás. Se merecen el debido proceso si hay suficientes causas para acusarlos. Se debe mostrar lo siguiente:

  • El producto tiene la culpa, en lugar de los usuarios
  • El editor tiene la responsabilidad, en lugar de los usuarios (¡lea las letras pequeñas!)
  • El escudo corporativo es penetrable, es decir, se convierte en una responsabilidad personal.
  • Debe mostrarse la responsabilidad, es decir, los programadores en lugar de los PM o los ejecutivos tienen la culpa
  • La intención tiene que mostrarse, la negligencia, lo último que revisé, no conduce a castigos capitales

Bastante alto, diría yo.

Una cosa de la que estoy bastante seguro es que el día en que comencemos a ordenar a los programadores a la horca es el día en que los veremos abandonar en masa. Los no desarrolladores pueden disfrutar manteniendo el software y ver hasta dónde llega, y para algunos de ellos que se volvieron lo suficientemente buenos como desarrolladores, también podrían disfrutar de ser ejecutados.

¿No sería interesante ver si es posible acabar con todos los humanos de esta manera? Creo que ordenaré algunas palomitas de maíz.

Un programador no crea un producto, una organización sí. Un programador no usa el producto, el cliente sí. Si alguien resulta perjudicado en el uso de un producto, la culpa debería correr así …

  1. ¿El cliente usó el producto correctamente? Si no, ¿les faltó capacitación o fueron descuidados? Si no tuvieron capacitación, ¿es porque se negaron a pagarla o no les importan las vidas que tienen en sus manos?
  2. ¿Se mantuvo el producto correctamente? Todo se desgasta: mira el equipo médico viejo. ¿Estaba dentro del tiempo de vida garantizado establecido por el fabricante?
  3. ¿Se conocía la circunstancia que causó el error cuando se creó el producto? Por ejemplo, el World Trade Center no sobrevivió al choque de dos grandes aviones. Sin embargo, fue diseñado para sobrevivir al choque de un pequeño avión, que era lo máximo que se podía pensar en ese momento. Entonces, ¿el World Trade Center es culpa de los arquitectos?
  4. Si la falla se reduce a un código que no maneja una situación conocida cuando el producto se usa correctamente, ¿por qué el equipo de Garantía de Calidad de la compañía no lo entendió? ¿Es culpa suya? ¿La empresa no financió suficiente control de calidad para garantizar que el producto fuera seguro? Si es así, ¿no debería culparse al CEO y a los gerentes?

Si un programador está creando errores que amenazan la vida, entonces eso debe ser detectado y el programador debe ser entrenado o despedido por la compañía, antes de que se lance un producto. Si hay un problema subyacente, es culpa de mucha gente. Una vez que se vende el producto, debe mantenerse bien y usarse correctamente (piense en una máquina de rayos X o una luz de freno).

El daño puede provenir de muchos lugares por muchas razones. La muerte puede ser una respuesta para un asesinato intencional, pero un error de código rara vez es una buena herramienta para un asesinato intencional.

Claramente esto es ridículo. Cualquier forma sensata de gobierno tiene muchos niveles de castigo, no solo la muerte. Quiero decir, podemos discutir sobre las minucias, pero creo que un buen punto de partida es cortarse los dedos. ¿Qué más es un castigo más apropiado que quitar la parte del cuerpo en la que más confían los programadores?

Pero creo que es mejor cuando el castigo ajusta el crimen a una T. Así que veamos, aquí está mi sugerencia de castigo por varios delitos de programación:

  1. Uso de nombres de variables de 1 letra: esto es inaceptable en cualquier lenguaje moderno con la posible excepción de un índice en un bucle pequeño. Para esto sugiero cortar la mitad de la lengua del autor. La lógica es que si él no siente la necesidad de decirle al resto de nosotros cuál es el significado detrás de la variable, ¡entonces tal vez no deberían decir nada en absoluto!
  2. Redefiniendo la funcionalidad del objeto central: una vez hice que un chico redefiniera qué es una matriz en Javascript, el tipo agregó dos elementos adicionales al final que hicieron algo estúpido que fue muy específico para su caso de uso. Me llevó una eternidad descubrir por qué no podía recorrer la matriz sin explotar. El castigo por esto debería ser afeitarse la parte posterior de la cabeza y tatuarse una cara y luego hacer que caminen hacia atrás durante una semana mientras usan su ropa hacia atrás también. La lógica detrás de esto es … No sé, es divertido.

Y esta publicación me está aburriendo ahora … ¿y ahora?

En el mundo legal, la INTENCIÓN del acto es lo que importa. Los sospechosos se juzgan principalmente en función de sus intenciones y, en segundo lugar, de las CONSECUENCIAS resultantes. Programación, piratería, etc. son solo SIGNIFICADOS para lograr ciertas intenciones bajo ciertas circunstancias.

Volviendo a la pregunta, solo da información sobre las consecuencias y los medios. La información de intención más crítica no está allí. La penalización resultante depende de cómo las leyes locales definan las penalizaciones sobre diferentes consecuencias y diferentes intenciones. Pero generalmente no será tan duro como una pena de muerte.

Por cierto, para muchos casos, los programadores son contratados por compañías, y son esas compañías quienes poseen y asumen las responsabilidades de esos programas, no los programadores individuales.

La respuesta simplemente es no”. Las personas que escriben software trabajan para una empresa y son responsables de la calidad de su trabajo a través del control de calidad, los estándares de diseño, la capacitación, el apoyo y la autoconciencia. Hay casos de software mal escrito que causa todo, desde la frustración (los cajeros automáticos son mi error) hasta el daño real (software de GPS que sabe que estás engañando a un acantilado en lugar de conducir al estacionamiento de un supermercado, pero solo dice “gira a la izquierda en la próxima gaviota “como de costumbre)

En pocas palabras, ser responsable de los errores es parte de la vida, pero cuando trabajas en un equipo, es el equipo el responsable de esos errores. Si hace un programa que perjudica a las personas, entonces tiene la responsabilidad. Pueden disparar , pero eso es probablemente lo más lejos que debería llegar. Si lo emplearon, obtienen grandes sumas, se llevan las grandes caídas.

Estoy de acuerdo en que debe haber algún nivel de responsabilidad, pero matarlos es demasiado extremo por varias razones:

  • La mayoría de la programación se realiza en un equipo y utiliza recursos de personas de todo el mundo. Realmente no puedes localizarlo en una o incluso en algunas personas. Probar sería simplemente usar un chivo expiatorio o una culpa injustificada.
  • Los programadores son personas y pueden cometer errores. ¿En qué punto es una situación pasada por alto que el software es malo y en qué punto es un error inadvertido? La determinación de la intención debe aplicarse al igual que distinguir homicidio involuntario de asesinato.
  • Incluso si es un asesinato con plena intención, la pena de muerte es demasiado severa en mi opinión. No entraré en mis puntos de vista allí ya que ese es otro tema.
  • A algunas personas les gusta culpar a los programadores cuando realmente es la gestión de información incorrecta, los usuarios por no leer las instrucciones y la falta de comunicación. Esto no quiere decir que nunca sean programadores, pero nunca es tan simple.
  • ¿Cómo es esto no censura de un grado extremo? ¿Quién debe determinar si el software es ‘malo’?

Otra forma de verlo es esta: ocasionalmente, hay agricultores que recolectan alimentos que resultan podridos o enfermos. Un retiro de alimentos puede llegar demasiado tarde, si es que lo hace. ¿Deberíamos ejecutar a los granjeros porque la comida era mala? La agricultura es una gran parte de la sociedad después de todo.

¿Qué hay de los autores? Ellos escriben libros. ¿Deberían ser asesinados cuando el libro involucra matar personas?

Yo respondería que no a ambos por razones similares.

La guerra cibernética, o el uso de computadoras para causar destrucción física, es una preocupación creciente. Ese es otro problema en sí mismo, y creo que merece más atención porque allí, los programadores quieren matar gente. Creo que es algo que deberíamos parar más, pero no atacando a los programadores, sino abordando los problemas políticos que promueven esto.

¿Qué?

Es como decir ‘¿Deberían matar a los padres “malos” ya que no han criado a sus hijos de manera disciplinaria u óptima? ‘ La lista continua….

En esencia, esto era completamente tonto incluso preguntar.

Es como un médico que comete un error involuntario y mata o daña al paciente. Matar a la muerte matará a muchos desarrolladores de software, porque hacemos muchos códigos con errores.

More Interesting

¿Cuáles son algunos problemas que tienen los hackatones actuales? O más bien, ¿cuáles son algunas cosas que podrían mejorarse?

Tengo una entrevista para una pasantía de ingeniería de software en Uber en menos de una semana. ¿En qué debería centrarme?

Procesamiento de imágenes: ¿Podemos realmente calcular el nivel de estrés de una persona que usa video en tiempo real?

¿Cuál es la mejor manera de aplicar un algoritmo de aprendizaje automático en un proyecto PHP, usando PHP o cualquier otro lenguaje con un puente o de otra manera?

¿Cuáles son algunas de las formas en que las empresas tecnológicas tratan con equipos de ingeniería en diferentes zonas geográficas?

¿Es un servidor una computadora o simplemente un software de computadora?

¿Llenando el vacío en los trabajos de ciencia de datos dejará un nuevo vacío en los trabajos de desarrollador de software?

¿Por qué decidió DropBox volver a implementar sus servicios backend de Python en lugar de Java?

¿Para qué sirven las revisiones de código?

¿Qué tan difícil sería hacer un generador de música EDM artificial?

¿Por qué la gente elige Python sobre PHP para desarrollar grandes sitios web?

¿Cuáles son las posibilidades de conseguir trabajos de tecnología de la información en Sri Lanka para un profesional de software indio?

¿Cuánto debe saber un desarrollador web sobre estructuras de datos y algoritmos?

Cuando un ingeniero de software se convierte en gerente y sigue siendo gerente, ¿cuánto se olvidan realmente de la codificación? ¿Puede convertirse en un problema?

¿Cuáles son las mejores herramientas para el desarrollo de realidad aumentada?