Archivo de Categoría «Interacción Humano-Máquina»

La usabilidad es rocket science

Interacción Humano-Máquina, Usabilidad

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.

10 Usability Heuristics for User Interface Design

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)

Vehículos inteligentes — choque de autos

Los vehículos inteligentes y el mercado

Interacción Humano-Máquina, Opiniones

Este es un tema que he venido masticando desde hace tiempo, pero no había tenido el tiempo de escribir. Excede el espacio de la interacción humano-máquina, o el diseño de experiencias de usuario, pero de todos modos las incluye.

Se trata de la incursión de los «vehículos inteligentes», es decir, vehículos controlados por software en lugar de conductores humanos. La idea parece fabulosa y casi de ciencia ficción. Pero tiene un punto complejo.

Y es que los vehículos inteligentes deben ser programados para tomar decisiones que involucran, eventualmente, la muerte. Son situaciones externas, no controladas, pero que requieren de acciones inmediatas, instantáneas.

En una situación extrema, pero totalmente posible, un vehículo inteligente debe determinar cuál es la pérdida menor. Imaginemos un escenario en el que sólo hay dos opciones posibles: A o B. Si decide A, hay riesgo de muerte de una persona, si decide B, morirán dos personas. No hay más opciones, no hay espacio para frenar lo suficientemente rápido y evitar que haya víctimas. ¿Qué deberá decidir, la muerte de una o de dos personas? Traducido a un algoritmo, es una decisión simple, incluso considerando la dimensión ética.

Actualmente esas decisiones las toman personas, que —de un modo u otro—, son responsables por sus actos, independientemente de lo imperfecto de la aplicación de las sanciones que derivan de ellas.

¿Qué decidiría una persona? ¿Optaría por A, la muerte de una persona, o B, la muerte de dos? ¿Tendrá la lucidez de evaluar las consecuencias?

Extrememos el caso: las opciones ya no son sólo A —muere una persona— o B —mueren dos personas—, sino que hay una opción C, en la que el conductor puede evitar que mueran otras personas, pero eso impone un alto riesgo de muerte para el conductor. La decisión que pueda tomar una persona dependerá de su estándar ético: me salvo a expensas de la muerte de otros, o salvo a los demás y me sacrifico.

Todo esto, finalmente, es un problema del espacio de la ética. La discusión teórica de estos puntos me parece completamente necesaria y razonable. La aplicación real de esto es lo que me preocupa.

Si tomamos como ejemplo el caso de Volkswagen —sólo por nombrar uno notorio, aunque no único—, llegamos a un espacio en el que todas las disquisiciones éticas quedan sometidas a decisiones comerciales. Se trata de una compañía en la que se incorporaron medidas, en la forma de software, para contravenir la normativa ambiental sobre emisiones de gases. Es decir, la compañía optó por el beneficio comercial, antes que por el bien común —o el cumplimiento de la ley.

¿Cómo se comportarían las compañías en el escenario de incorporar decisiones de vida o muerte en los vehículos «inteligentes»? ¿Qué harán en un caso como el planteado? Es fácil suponer que un vehículo inteligente, ante una situación extrema, opte por el número menor de víctimas. ¿Pero qué ocurrirá cuando hay una opción C, donde la persona a sacrificar es su cliente? No me cuesta mucho imaginar esto como un argumento de venta, aunque sea velado: «siempre lo salvaremos a usted», «vehículos más seguros para usted». Ciertamente habrá clientes dispuestos a garantizar su seguridad por sobre la de otros.

Para concluir, me queda claro que este tipo de situaciones no las puede decidir el mercado, que ha demostrado que las compañías anteponen el beneficio propio al bien común, sino que deben ser reguladas y controladas por toda la sociedad. Pero eso no garantiza que las compañías cumplan con la regulación, ¿o no Volkswagen? Permítanme el escepticismo.

(crédito de imagen: Nathan Rupert)