Exemplos Históricos: quando o software falha, a vida é que paga

O valor “Software sem bug mais que software em funcionamento” não é hipérbole. Abaixo, casos documentados em que bugs de software custaram vidas, bilhões de dólares, ou quase alteraram o curso da história.


Therac-25 — a máquina de radioterapia que matou (1985–1987)

A máquina Therac-25 era um acelerador linear de radioterapia da AECL. Para cortar custos, a fabricante removeu as travas físicas de segurança e passou a confiar exclusivamente em software para impedir overdoses.

O software tinha race conditions e um flag de segurança que, ao ser incrementado em vez de setado, estourava o limite e zerava a checagem. Resultado: o feixe de 25 MeV atingia o paciente sem o alvo de tungstênio — uma dose ~100 a 250 vezes maior que a prescrita.

  • Consequências: pelo menos 6 overdoses; 3 mortes confirmadas.
  • Lição: confiar cegamente em software de segurança, sem redundância de hardware, transformou uma máquina que cura câncer em uma que matou.

Boeing 737 MAX / MCAS — 346 mortes (2018–2019)

O software MCAS comandava mergulhos automáticos baseado em um único sensor de ângulo de ataque. A Boeing omitiu o MCAS dos manuais e do treinamento dos pilotos.

  • Consequências: 346 mortes. Frota mundial parada por 20 meses.
  • Lição: um software de controle de voo escondido dos pilotos derrubou dois aviões.

Mísseis Patriot em Dhahran — 28 mortes (1991)

O bug: o relógio do sistema contava tempo em décimos de segundo; o erro de arredondamento se acumulava. Após ~100 horas, o gate de timing estava atrasado ~0,34 segundos.

  • Consequências: 28 soldados americanos mortos.
  • Lição: um erro de arredondamento que crescia silenciosamente custou 28 vidas.

Ariane 5 Voo 501 — US$ 370 milhões em 37 segundos (1996)

O bug: código reutilizado do Ariane 4; um valor estourou ao converter float 64-bit → inteiro 16-bit.

  • Consequências: perda de >US$ 370 milhões.
  • Lição: reuso de software “testado” noutro contexto pode ser fatal.

Knight Capital — US$ 440 milhões em 45 minutos (2012)

Um técnico esqueceu de copiar o novo código para 1 dos 8 servidores. O código morto reanimou e disparou ordens indefinidamente.

  • Consequências: Prejuízo de US$ 440 milhões; empresa forçada a fusão.
  • Lição: esquecer de atualizar 1 servidor em 8 destruiu uma empresa de US$ 1,5 bilhão em menos de 1 hora.

← Voltar ao Manifesto