Margaret Hamilton Apolo 11

El reto: Programar para lo desconocido

A mediados de los 60, el software no se consideraba una disciplina seria; era casi un "añadido" al hardware. Cuando Margaret Hamilton se unió al proyecto Apolo de la NASA, no había libros de texto ni cursos sobre cómo escribir código para llevar humanos a la Luna. Ella y su equipo tuvieron que inventarlo todo desde cero.

El momento crítico: Apolo 11

Faltaban minutos para el alunizaje cuando las alarmas del módulo lunar empezaron a sonar (error 1201 y 1202). La computadora estaba saturada de datos. Gracias a que Hamilton había diseñado un software de prioridad de tareas, la computadora "decidió" ignorar procesos secundarios y concentrarse en el aterrizaje. Sin su visión de manejo de errores, el Apolo 11 probablemente habría abortado la misión o se habría estrellado.

Inventando el término "Ingeniería de Software"

En esa época, los ingenieros de hardware miraban por encima del hombro a los programadores. Hamilton comenzó a usar el término "Software Engineering" para darle al desarrollo de software la misma legitimidad y rigor que tenían la ingeniería mecánica o eléctrica. Ella quería que se entendiera que el software también requiere planificación, pruebas estrictas y estándares de calidad.

Legado: La arquitectura de la confiabilidad

Hamilton introdujo conceptos que hoy son pilares en nuestro trabajo:

  • Detección de errores de punta a punta: No confiar en que el hardware siempre funcionará.
  • Sistemas de prioridad: Asegurar que los procesos críticos nunca mueran.
  • Pruebas exhaustivas: Simular cada escenario posible antes de la ejecución real.

Conclusión

Hoy, cuando compilamos una app o desplegamos un servidor, estamos usando las bases que Hamilton sentó en el MIT. Ella demostró que el software no es solo "picar código", es una disciplina de ingeniería capaz de lograr lo imposible.