jueves, 10 de mayo de 2012

Usuarios felices, decálogo de la usabilidad


Existe una infinidad de información teórica sobre las características que debe tener una interfaz de usuario. Pero después de haber leído mucho llegué a la conclusión que en su gran parte es CHAMUYO! Ojo, que no se mal entienda, es un chamuyo sutil, verdadero. Porque la teoría es correcta... pero es teoría! Y para desarrollar es necesario ir a lo concreto... a los bifes. Por que las vueltas de la teoría son muy decorosas pero poco pragmáticas.
Es por eso que me decidí a hacer una especie de decálogo de las interfaces. Un resumen cortito y al pié sobre los ítems mas importantes que se deben tener en cuenta al diseñar una interfaz amigable.
Tal vez al leerlo no encuentren nada novedoso, pero lo cierto es que estas obviedades a veces no son tales a los ojos de quien se encuentra diseñando, precedido de infinidad de conocimientos que instintivamente da por naturales, pero que son completamente ajenos al usuario.
Algún día escribiré acerca de las personalidades de los usuarios y cómo hacer interfaces que satisfagan cada una de ellas.... pero eso va a ser algún día.
Ahora si, sin mas preámbulos:

1- Si no se debe, no se puede
Es el primer y mas importante punto a tener en cuenta. Todas aquellas operaciones que el usuario no deba hacer, el sistema debe garantizar que no se pueda hacer. Es normal que se piense cosas como "el usuario nunca va a realizar esa secuencia de clicks" o "si esta realizando esta operación, nunca va a ocurrir que desee hacer esta otra"... FALSO! siempre sucede. Por eso es muy importante que el sistema sólo deje disponibles aquellas operaciones que puedan ser realizadas, eliminando de la interfaz todas aquellas operaciones que de ser ejecutadas generen inconsistencias, errores de ejecución, errores de lógica o no permitan al usuario finalizar con la operación que había comenzado.

2- Consistencia de la iconografía
El usuario tiene una tendencia a leer muy rápidamente la pantalla, casi ignorando los textos descriptivos o de guía. Esta tendencia se acentúa en la medida que el usuario se hace mas experimentado en el uso del sistema y obtiene mas confianza. En este sentido la iconografía juega un papel primordial dado que permite comprender los mensajes, opciones disponibles y estados del sistema simplemente haciendo la vista gorda.... pero... si la iconografía no es consistente hace al sistema muy confuso. Si! por mas que sea una interfaz simple y la persona que la use tenga un IQ de 160, si hay iconos estos llaman a no observar mucho y se hace un arma de doble filo. Si no se mantiene una coherencia en la iconografía el sistema se vuelve confuso. Por eso, si al lado de un cuadro de busqueda pusimos una lupa azul con fondo verde, SIEMPRE que haya un cuadro de búsqueda ponemos la misma lupa azul con el mismo fondo verde.

3- Cada componente con su correspondiente función
Existen infinidad de componentes para la interacción hombre-sistema, entre los mas básicos:

  • Input
  • Checkbox
  • Radiobutton
  • Texto
El usuario estándar (aquel que usa activamente internet y interactúa con cierta frecuencia con diferentes softwares) se encuentra familiarizado con los componentes y sus funciones, aunque a veces no sea consciente de ello. Por eso hay que usar cada cosa para lo que corresponda... por ejemplo:

Componente BIENMAL
InputCarga o edición de datos Mostrar información 
CheckboxMúltiple selección o dato booleano Selección excluyente con validación 
RadiobuttonSelección excluyente por 3 o mas valores Datos booleanos (ej. Si-No)
TextoPresentar informaciónSelección de ítems

Y sin peros!

4- Sólo alertar para tomar decisiones
Simple.. si se presenta una pantalla de alerta que sea siempre para que el usuario tome una decisión. No tiene ningún sentido poner un mensaje que diga "Usted está a punto de hacer algo peligroso" y poner sólo un botón Aceptar. Por lo tanto: No importa cuan importante sea lo que queríamos informar, si no es para que se tome una decisión ni lo mostramos. Al fin de cuentas nadie lee los alert, le dan aceptar sin mirar o entran en pánico y llaman al informático mas cercano.

5- Una operación, una interfaz
Una operación dada debería poder completarse en una sola interfaz. Con esto quiero decir que, por ejemplo, no debería hacer falta cargar cosas previas para llenar un formulario. La interfaz tiene que brindar la solución de carga completa. Esto muchas veces parece tedioso y/o lleva a interfaces kilométricas... pero es mejor que empezar a cargar y en el medio darse cuenta que faltan datos en otro módulo del sistema. Además evita muchos errores de carga y confusiones del usuario que se pueden traducir en un requerimiento posterior.
Por otro lado, dentro de lo posible, el usuario nunca debería abandonar la interfaz actual para una misma operación. Con esto se evita que el usuario se pierda u olvide por qué etapa o estado estaba su operación, además de agilizar la carga. Popups o cuadros emergentes que permitan continuar viendo de fondo lo que estábamos haciendo son soluciones muy amigables.... bueno.. tal vez los popups no.

6- Interfaz de detalle para todas las entidades importantes
Siempre que exista una entidad (u objeto de negocio) con importancia, debe haber una interfaz que presente el detalle de sus datos y brinde la posibilidad de realizar las operaciones asociadas. Por que?

  • Para que el sistema no se convierta en un cementerio de datos. Toda la info que esté en la base de datos debe ser mostrada en algún lugar.
  • Por que si el usuario quiere "Ver detalle del producto" no debería tener que entrar por "Modificar producto".

7- Interfaz inicial operativa
La primer interfaz luego de la identificación del usuario debe ser completamente operativa. Nada de pantallas vacías o botones con acceso a las diferentes operaciones. La primer interfaz debe permitir al usuario realizar aquella operación que sea mas común dado su rol.

8- Referencias navegables
Dentro de lo posible (dado que, por ejemplo, en dispositivos móviles podría llegar a ser contraproducente) toda referencia a una entidad del sistema debería ser navegable. O sea que si estoy viendo los datos de un contacto y entre sus datos está la empresa en la que trabaja, debería poder hacer clic en el nombre de la empresa para poder ver todos los empleados de la misma. A no tener pereza, el costo de poner esos links es mínimo y da al usuario la posibilidad de tener mas alternativas para llegar a la misma información. De este modo, además de dejarlo mas satisfecho, nos ahorramos recibir futuras llamadas donde nos dicen que necesitan cambios porque no pueden llegar a la información o porque "no se entiende cómo veo ese dato".

9- Cada cosa en su lugar
Es muy importante establecer áreas de la interfaz donde se van a ver tal o cual tipo de cosas.... y mantenerlas a lo largo de todo el sistema! Debería existir un area donde se presentan las operaciones que se pueden realizar, un area operativa y/o informativa, un area con datos de detalle... en fin... interfaces ordenadas y con el mismo orden en todo el sistema.

10- Información APB
No importa el conocimiento del usuario, siempre es mas amigable que la interfaz te trate como un nene a que te ponga a prueba tus conocimientos informáticos y/o técnicos. Nadie se queja de la simpleza de la interfaz de google y es lógico, tiene un cuadro de texto y un botón... podría tener un directorio, opciones de búsqueda, configuración de los resultados... pero no! Sólo un cuadro de texto y un boton. El resto de las opciones están, pero hay que salir a buscarlas.
Por otro lado, podemos incluir en este ítem que es una locura (o un desproósito) decirle a un nene cosas como "Error 24", "Se detectó un CRC incorrecto", "MySQL error: invalid sintax", "La memoria no se puede read". Entonces vamos a ahorrarnos mensajes que lo único que hacen es paranoiquear al usuario.

No hay comentarios:

Publicar un comentario