Más allá de lo notable de Margaret Hamilton por ser una de las mujeres pioneras en tecnología, por su rol en la definición del software moderno o por su participación en el Programa Apolo de la NASA, hay una anécdota que es una joya, al menos desde la perspectiva de la usabilidad.
En la época en que Hamilton trabajaba programando las computadoras del proyecto Apolo —una para la navegación Tierra-Luna, Luna-Tierra y la otra para el módulo lunar— la disponibilidad de recursos era espartana: se programaba en tarjetas perforadas y con capacidades de memoria muy limitadas.
El sistema de navegación a bordo —una de las computadoras en que trabajaba Hamilton— tenía instrucciones de vuelo que permitían el viaje de ida y vuelta de la Tierra a la Luna. Parte de la memoria estaba programada en duro o hard-wired —literalmente, con alambres de cobre—, la otra parte era una memoria temporal, muy limitada.
El 26 de diciembre de 1968, a cinco días del despegue del Apolo 8, que llevaría a la primera tripulación a la Luna, ocurrió un incidente que borró la memoria de la computadora de navegación, dejando sin instrucciones de retorno a la nave. Los astronautas no podrían regresar a la Tierra.
¿Cuál fue el origen del error? Durante las pruebas del software en los simuladores, Hamilton notó que era posible activar ciertos programas o instrucciones fuera de contexto, como por ejemplo una rutina de prelanzamiento llamada «P01». El equipo de Hamilton reportó el potencial problema a NASA, pero dada la limitación de recursos de memoria y procesamiento, no incluyeron un mecanismo de prevención, porque los astronautas eran entrenados para ser perfectos y no cometerían errores. Así que lo agregaron a la documentación: «No seleccione P01 durante el vuelo».
Pero ocurrió lo obvio: el astronauta Jim Lovell, pese al entrenamiento para ser perfecto y a la documentación del sistema, activó accidentalmente el programa P01, que borró la memoria de navegación.
Pongamos las cosas en perspectiva: los astronautas del Apolo 8, viajaban por el espacio en un tarro de lata, sin instrucciones de navegación. A la deriva.
Sitting in a tin can, far from the world.
Luego de 9 horas, el equipo de ingenieros —incluyendo a Hamilton—, tenían una solución que «subirían» al Apolo 8 para corregir el problema. El error logró ser corregido, los astronautas pudieron regresar.
Pues bien, esto es un ejemplo magistral de errores en principios básicos de usabilidad, en particular en sistemas críticos: evita que el usuario cometa un error, antes que tomar medidas correctivas cuando ya lo ha cometido. De hecho, es uno de los 10 heurísticos de Nielsen y Molich:
Error prevention
Even better than good error messages is a careful design which prevents a problem from occurring in the first place. Either eliminate error-prone conditions or check for them and present users with a confirmation option before they commit to the action.
Prevención de errores
Mejor que buenos mensajes de error, es un diseño cuidadoso que prevenga que un problema ocurra. Elimine condiciones susceptibles de error o verifíquelas y presente a los usuarios opciones de confirmación antes de completar la acción.
Así que lo podemos decir con propiedad, la usabilidad es rocket science.
Si quieres conocer más de Margaret Hamilton, hay un gran artículo en Wired —donde aparece esta anécdota— y una entrevista en El País.
(Créditos de imagen: NASA, vía Wikimedia Commons)