Saltar la navegación

Caso práctico 5

Caso práctico 5

El caso de Occidental Engineering

Wayne Davidson es un ingeniero de software en la división aeroespacial de Occidental Engineering, una gran empresa de ingeniería. Durante los últimos dos años ha estado trabajando como ingeniero de pruebas en un proyecto para construir un prototipo de un sistema de control de tráfico aéreo de nueva generación, denominado Safe Skies, y que está financiado por la Agencia Federal de Aviación (FAA). Este proyecto es muy importante para la empresa porque debido a los continuos recortes en gastos de defensa, la división aeroespacial de Occidental Engineering ha estado perdiendo dinero y contratos durante los últimos años. El proyecto Safe Skies no solo supone un buen negocio para la compañía sino que además podría proporcionar más contratos y de mayor tamaño si tiene éxito.
Consciente de su importancia estratégica, la empresa había hecho una oferta muy agresiva para ganar el contrato original. De hecho, su oferta fue por un precio ligeramente inferior a lo que realmente se necesitaba. Esa era la única manera con la que habían logrado ganar al resto de competidores, que también trataban de conseguir desesperadamente ese contrato. Pero por otro lado, debido a la situación financiera un tanto inestable de la empresa tampoco estaban dispuestos a tener pérdidas. Por ello, el presupuesto y los recursos internos asignados al proyecto habían sido muy escasos. A pesar de todo, las personas que han trabajado en el proyecto habían hecho un esfuerzo heroico durante estos dos años, trabajando catorce horas diarias durante seis días a la semana para cumplir con los plazos previstos. Entre otras cosas, se jugaban sus propios puestos de trabajo si el proyecto fracasaba.
A Wayne le acaban de pasar una primera versión del prototipo. Tras realizar muchas simulaciones ha visto que todo funciona bien, salvo por un pequeño problema. Cuando hay demasiados aviones en el sistema, puede “perderse” alguno de ellos. Ese avión simplemente desaparece de la pantalla, no hay ningún rastro de él en ningún lugar, y a partir de ese momento se ignora en todos los procesos que comprueban las posibles colisiones y en el resto de las pruebas de seguridad. Después de analizarlo con los diseñadores, se descubre que el problema se debe a un error muy sutil en la gestión de memoria. No es complicado de solucionar, pero el rediseño, la codificación y las pruebas pueden representar al menos un mes de trabajo.

Wayne se reúne con su jefa y directora del proyecto, Deborah Shepherd, para discutir las implicaciones del problema. Ella le dice que retrasar la entrega un mes es imposible. El contrato requiere que la empresa entregue una versión totalmente certificada dentro de tres días. Sucede además que el gobierno acaba de aprobar una nueva política muy estricta sobre los incumplimientos de plazos, debido a los enormes retrasos y sobrecostes que se sucedían continuamente y que habían suscitado las críticas de la prensa y de la oposición. Básicamente, estaban buscando una primera cabeza de turco para que sirviera de ejemplo al resto de subcontratistas. Si no entregaban a tiempo no solo se arriesgaban a una multa enorme, sino que también dejarían de poder optar al contrato para construir el sistema completo, aunque hubieran desarrollado el prototipo. Esto tendría un efecto devastador en la división aeroespacial, incluyendo la
posible pérdida de cientos de puestos de trabajo.
A Wayne le proponen la posibilidad de que se desarrolle un parche rápido antes de entregar el software, pero Wayne se niega rotundamente a entregar cualquier programa que no haya sido probado a fondo. El problema es que si se cambia ahora cualquier parte de la aplicación puede que se introduzcan nuevos errores mucho peores que el que tienen, e incluso que deje de funcionar alguna parte del código.
“Entonces tendremos que entregar el software tal y como está”, dice Deborah. “No puedo poner en
peligro este proyecto ni los cientos de puestos de trabajo que dependen de él por no entregar esta aplicación a tiempo.”
“¡No podemos hacer eso!” exclama Wayne. “Eso es como tratar de entregar un coche al que sabemos que no le funcionan bien los frenos.”
“No te preocupes”, lo tranquiliza Deborah. “Tenemos contactos en la FAA, y conocemos sus planes de pruebas. Sabemos que van a hacer una gran cantidad de simulaciones para asegurar que el software funciona bien y que implementa toda la funcionalidad que se describe en las especificaciones. Una vez comprueben que las simulaciones no detectan problemas, entonces comenzarán las pruebas en vivo. Pero lo harán sólo en un aeropuerto pequeño y con un sistema de backup activo en todo momento. No es posible que el problema se reproduzca, porque el número de aviones volando será muy pequeño. Y una vez terminen estas pruebas iniciales nos pedirán algunas modificaciones. E incluso si no lo hacen, siempre podemos darles una versión actualizada del programa, en donde el fallo ya esté corregido. Ellos nunca detectarán el problema. Y si lo hicieran, podemos decirles que era debido a una ocurrencia aleatoria que
no necesariamente tenía que aparecer en nuestras pruebas, y por eso no lo detectamos. Lo verdaderamente importante es que nadie estará en ningún momento en peligro.”

La respuesta de Wayne fue clara: “Tal vez no van a encontrar el error, pero yo sé que está ahí. Mentiría si dijera que el sistema pasó todas las pruebas necesarias. No puedo hacer eso. De todos modos, sería ilegal y poco profesional.”
“Se puede certificar que es seguro, ya que realmente lo es, en la forma en la que van a utilizarlo.”
Al final Wayne firmó su conformidad con las pruebas y la empresa entregó el prototipo. La FAA lo integró y pasó todas las pruebas preliminares, incluyendo las pruebas en vivo en un pequeño aeropuerto en el Medio Oeste de EEUU. Como resultado de estas pruebas, la FAA solicitó algunos cambios en la interfaz de usuario. Cuando Occidental Engineering entregó esa nueva versión con la interfaz modificada, también incluyó una solución al problema de la aeronave que de pronto desaparecía. Nadie fuera del grupo de Deborah se enteró nunca del problema. De hecho el prototipo fue un rotundo éxito y Occidental Engineering consiguió tanto el proyecto para desarrollar el sistema final como nuevos contratos de software de control del tráfico aéreo para la división aeroespacial. Esto hizo que la división floreciera y que no solo no se perdieran centenares de puestos de trabajo sino que además se crearan muchos más.
Wayne Davidson, sin embargo, solicitó la jubilación anticipada tan pronto como el prototipo fue aceptado por la FAA. Decidió escribir un libro sobre pruebas de software, y pensó que sería fundamental incluir un capítulo sobre ética. Al final, no terminó de escribir el libro.

Preguntas
1. ¿Qué opinas sobre la decisión de Wayne? ¿Fue la correcta? ¿Fue ética?
2. ¿Qué opinas sobre la decisión de Deborah? ¿Fue la correcta? ¿Fue ética?
3. ¿Qué hubieras hecho tú en el caso de ser Wayne?
4. ¿Y si hubieras estado en la situación de Deborah?

Caso práctico 5.1

Otro final alternativo Al final Wayne firmó su conformidad con las pruebas y la empresa entregó el prototipo. La FAA lo integró y pasó todas las pruebas preliminares, incluyendo las pruebas en vivo en un pequeño aeropuerto en el Medio Oeste de EEUU. Viendo que el prototipo funcionaba a la perfección, decidieron probarlo en un aeropuerto comercial un poco más grande, sin comentarlo con Occidental Engineering. Al aumentar el número de aviones, el problema se reprodujo y uno de los aviones quedó fuera de control de la torre, por lo que terminó colisionando con otro al que le dieron la orden de despegar pensando que la pista estaba despejada. Las consecuencias fueron catastróficas, con más de 150 personas muertas y unas pérdidas económicas astronómicas. Occidental Engineering se arruinó y Wayne no superó jamás la tragedia.

Preguntas
1. ¿Cambia este segundo final tus respuestas anteriores?

Creado con eXeLearning (Ventana nueva)