Saltar al contenido

Prevenir los errores (heurística 5)

"Sensiblemente mejor que buenos mensajes de error es un diseño cuidadoso que anticipa y previene la ocurrencia de los problemas. O se eliminan las condiciones que conducen a error o se chequean y se advierte al usuario antes de que confirme la acción. Soportar deshacer y rehacer."*

Mensaje¿ está usted seguro?

El software que utilizamos está plagado de mensajes, advertencias y rezongos: ¡Ingresó mal su documento de identidad! ¡El formato de su teléfono es incorrecto! o el inefable ¡Dato inválido! En muchísimas oportunidades, me animaría a decir que en la mayoría de los casos, el problema es evitable y el error se genera solamente porque el diseño es pobre, sea que fue especificado por un diseñador o que el programador fue diseñando a medida que escribía el código.

En el diseño de maquinaria esta heurística se aplica hace décadas, tal vez siglos. Por ejemplo, en el inicio la guillotina de imprenta era una máquina muy peligrosa, porque apretabas el botón con una mano y podía quedar atrapada la otra debajo del pisón y ser rebanada por la cuchilla. Entonces le pusieron dos botones, alejados uno de otro. Ahora es necesario apretar un botón con cada mano, y así es imposible que una quede apretada.

Si bien los errores en las interfaces suelen ser menos graves que la pérdida de una mano, el ejemplo viene a cuento porque en el diseño de maquinaria el espíritu de prevención es muy fuerte, y de él debemos aprender para el diseño de interacciones.

El formato de los valores en los campos

Uno de los lugares donde más desidia e indiferencia se puede encontrar es en los valores que se permiten / prohíben en los campos, y los formatos obligatorios asociados.

Pongamos por ejemplo una cédula uruguaya: es un número entre 500.000 y menos de 10 millones, seguido de un dígito verificador. La población utiliza múltiples formatos como por ejemplo 3.241.393-2, 3-241-393-2 o 3.241.393/2 entre muchos otros, y por supuesto 32413932. La mayoría aplastante de los sitios exigen un formato determinado, y devuelven un mensaje de error si el usuario no consigue acertar. En realidad, permitir cualquier formato y luego quitar todo lo que no sea un número lleva apenas una linea de código:

cedula = cedula.replace(/\D/g,'');

Listo!!! Ya se puede ingresar cualquier formato y se eliminaron los errores. Como muestra la imagen, muchas veces las explicaciones y advertencias son más extensas que el código que llevaría diseñar previniendo los errores.

El código para prevenir el error de formato es más breve que los dos renglones de advertencia del formulario

Una buena práctica es agregar como plantilla un formato usado popularmente y que a medida que se digita el número tome forma, descartando los caracteres que no corresponden. Siempre que no interfiera con la libre digitación, es decir, que el usuario pueda digitar su formato preferido y la plantilla lo convierta sin errores, el trabajo adicional valdrá la pena.

Los valores inválidos

Cada vez que colocamos un campo en un formulario debemos analizar detenidamente qué valores se van a ingresar, y cuáles son las formas de evitar aceptar valores inválidos, reduciendo si fuera posible a cero las situaciones en las que se puede producir un error.

La configuración del monitor en Windows 95 fue un caso paradigmático, porque incluía configuraciones que podían quemar el monitor e inutilizarlo, y la solución fue colocar debajo del combo de opciones un check box que le pasaba la culpa al usuario. La pregunta que queda flotando es: si conocían las opciones que inutilizaban el monitor ¿para qué las incluían?

La configuración del monitor en Windows 95 incluía opciones cuyo resultado era destruir el hardware.

Combinaciones de valores

Otra fuente de errores que se pueden prevenir es permitir que se ingresen combinaciones de valores incompatibles o que por algún motivo no se pueden utilizar en ese momento. Deshabilitarlos u ocultarlos es una forma inmediata de prevenir estos errores, y en cada caso existen siempre decenas de formas alternativas de hacerlo.

El cajero automático es el rey de este problema: siempre le ofrece al usuario las mismas opciones, independientemente de si están o no habilitadas para él y si tiene o no tiene saldo y premisos para realizarlas. Permite que el usuario elija cualquier combinación y recién al final castiga con un anodino “Cuenta inválida” o simliar. Tal vez sea por la desidia con que nos trata que aunque tienen nuestro dinero guardado en sus tripas, en décadas no han logrado enamorar a nadie: solo los usan quienes están obligados o no tienen otra alternativa.

El cajero automático ofrece opciones a quien no las tiene o no las puede utilizar (este usuario no tiene ni tarjeta $ ni tarjeta U$D ni caja de ahorro dólares) y anuncia del error solamente al final de la transacción

Además de estas formas básicas de prevenir errores, que no por simples dejan de ser efectivas y relevantes, en cada situación y contexto hay siempre un número importante de flujos y combinaciones que conducirán al usuario a un callejón sin salida de forma innecesaria. Es premisa del buen diseño pensar en cada una de ellas y hacer todo lo posible para prevenirlas antes de que ocurran.


* En base a: “Heuristic evaluation of user interfaces” Nielsen, J., and Molich, R. (1990) Traducido y adaptado por Concreta

___

Taller Intensivo de Diseño de la Interacción

El curso que recorrió América Latina, ahora disponible OnLine.
Da un salto en tu formación como Diseñador de Experiencias de Usuario.

Próximo comienzo: 2 de marzo de 2021
Consultas: capacitacion@concreta.com.uy

Inscripciones abiertas.