El diseño de una interfaz de usuario es una tarea bastante compleja debido a la interdisciplinariedad que representa: psicología, artes, gestión de negocio y tecnología como mínimo. Aunque no es el objetivo de este curso, es positivo conocer qué principios suelen usarse como pilares para construir dichas interfaces y poder así evaluarlas de manera más razonada.
Dentro de los principios de diseño están [7]:
A. Principio del mínimo atosigamiento
Con el fin de no desviar nuestro foco de concentración consciente.
B. Principio de formación de hábitos
Repitiendo una tarea se convertirá más sencilla de hacer, por tanto, una interfaz debe permitir asimilar la repetición de manera fácil e intuitiva.
Estos principios quedan englobados dentro de una metodología (framework) popular para diseñar interfaces de usuario desarrollado conocido como Honeycomb (panal) [8]. En este entorno se presentan unas facetas que definen la experiencia de usuario: Útil, Usable, Deseable, Localizable, Accesible, Creíble, Valiosa.
Sin embargo, estos principios y facetas estarán restringidos en el contexto de IoT por los siguientes elementos [3]:
Contexto del mundo real:
La situación concreta de aplicación del sistema impondrá una serie de restricciones inexistentes en el contexto homogéneo de una aplicación web. Por ejemplo, en el caso de aplicarlo al mundo de la conducción, es deseable no molestar/distraer lo mínimo posible al conductor (según el Principio del mínimo atosigamiento). Cuando haya que controlar un horno, habrá que priorizar elementos como evitar que haya un incendio. En el contexto familiar, tener varios perfiles de usuario y uno (o, peor, varios administradores del sistema) pueden llevar al agotamiento y frustración de los usuarios y de los administradores (como suele ocurrir en otros entornos), con el agravante de que en el IoT alguien se puede quedar sin acceso a la casa en mitad de la noche o sin poder prepararse la cena.
Diseño para sistemas de dispositivos y escalabilidad:
Los dispositivos tendrán que conectarse con otros dispositivos (de su mismo tipo o de otro), apareciendo el concepto de interusabilidad. Como suele decirse, una cadena se rompe por el eslabón más débil, de modo que debemos asegurarnos que la calidad de la interfaz es buena en todos sus niveles. Otro reto que hay que afrontar es la escalabilidad. Conforme aumente el número de dispositivos y usuarios, aumentará (en algunos casos exponencialmente) el tiempo de respuesta, monitorización y todo ello acabará proporcionando una experiencia desagradable para el usuario. El hecho de tener que interactuar con flotas de dispositivos suponen un reto cognitivo para el usuario con cierta similitud a programar un programa en paralelo en contraposición con hacerlo en secuencial.
Diseño para sistemas conectados en red:
En un entorno estándar, es normal asumir problemas menores como que haya desconexiones, retrasos en la carga de una web o en el envío de un correo-e. Sin embargo estos elementos en el contexto de IoT pueden no ser recibidos con tan buen agrado por parte de los usuarios, p. ej. si el usuario quiere encender una bombilla probablemente no acepte un retraso y lo mismo es aplicable a esperar tener encendida la calefacción y que el sistema no avise de que no ha podido conectarse con el termostato… otras situaciones más comprometidas son posibles cuando pulsemos varias veces sin respuesta un botón de abrir/cerrar la puerta de la casa sin saber en qué estado se ha quedado finalmente.
Para satisfacer dichas restricciones específicas, se propone el uso de un nuevo entorno de trabajo (framework). En [3] muestran un esquema que agrupa los distintos elementos en un sistema IoT y los ubica en un eje indicando su grado de visibilidad, de menor a mayor, tal y como ilustra la Figura 1.
En esta figura aparece como pilar fundamental de la experiencia de usuario el concepto de modelo que debe responder a la pregunta: ¿Cómo piensan los usuarios en el sistema? A partir de esa respuesta se podrá desarrollar la interusabilidad, dotando de mayor o menor autonomía al sistema para, posteriormente hacer los diseños de interacción e industriales que finalmente nutrirán de sustento lógico a la capa de visualización e interacción con el usuario.
Esta última capa, en el caso de que sea una pantalla, debe especificar cómo se distribuye las imágenes y la información , la elección de controles (botones, desplegables, campos de texto, joysticks,...). El diseño de la interacción y la UI van estrechamente relacionados y deben retroalimentarse.