Ejemplos Históricos: cuando el software falla, la vida paga el precio
El valor “Software sin errores más que software que funciona” no es hipérbole. A continuación, casos documentados en los que bugs de software costaron vidas, miles de millones de dólares, o casi alteraron el curso de la historia.
Therac-25 — la máquina de radioterapia que mató (1985–1987)
La máquina Therac-25 era un acelerador lineal de radioterapia de la AECL. Para recortar costes, el fabricante eliminó los bloqueos físicos de seguridad y pasó a confiar exclusivamente en software para impedir sobredosis.
El software tenía race conditions y una flag de seguridad que, al ser incrementada en vez de establecida, desbordaba el límite y anulaba la comprobación. Resultado: el haz de 25 MeV impactaba al paciente sin el objetivo de tungsteno — una dosis ~100 a 250 veces mayor que la prescrita.
- Consecuencias: al menos 6 sobredosis; 3 muertes confirmadas.
- Lección: confiar ciegamente en software de seguridad, sin redundancia de hardware, transformó una máquina que cura cáncer en una que mató.
Boeing 737 MAX / MCAS — 346 muertes (2018–2019)
El software MCAS ordenaba picados automáticos basándose en un único sensor de ángulo de ataque. Boeing omitió el MCAS de los manuales y del entrenamiento de los pilotos.
- Consecuencias: 346 muertes. Flota mundial en tierra por 20 meses.
- Lección: un software de control de vuelo oculto a los pilotos derribó dos aviones.
Misiles Patriot en Dhahran — 28 muertes (1991)
El bug: el reloj del sistema contaba el tiempo en décimas de segundo; el error de redondeo se acumulaba. Tras ~100 horas, el gate de temporización estaba retrasado ~0,34 segundos.
- Consecuencias: 28 soldados estadounidenses muertos.
- Lección: un error de redondeo que crecía silenciosamente costó 28 vidas.
Ariane 5 Vuelo 501 — US$ 370 millones en 37 segundos (1996)
El bug: código reutilizado del Ariane 4; un valor desbordó al convertir float 64-bit → entero 16-bit.
- Consecuencias: pérdida de >US$ 370 millones.
- Lección: la reutilización de software “probado” en otro contexto puede ser fatal.
Knight Capital — US$ 440 millones en 45 minutos (2012)
Un técnico olvidó copiar el nuevo código a 1 de los 8 servidores. el código muerto reactivó y disparó órdenes indefinidamente.
- Consecuencias: Pérdida de US$ 440 millones; empresa forzada a fusión.
- Lección: olvidarse de actualizar 1 servidor en 8 destruyó una empresa de US$ 1,5 mil millones en menos de 1 hora.