miércoles, 30 de mayo de 2007

BMW-VELNEO

Ante la debacle del team BMW-ORACLE frente al Luna Rossa en las semifinales de la America's Cup que se celebra estos días en Valencia, el máximo dirigente del sindicato americano ha anunciado una profunda remodelación del equipo.

Necesitamos aires nuevos, un equipo ágil, potente y eficaz

Al final de la rueda de prensa ofrecida por el dirigente se mostró la nueva imagen del equipo para la próxima America's Cup.


Life is soft!!!

viernes, 11 de mayo de 2007

Interfaz de usuario (v)

[ Viene de Interfaz de usuario (i), (ii), (iii) y (iv) ]

Si nuestro diseño va dirigido al gran público, hemos de tener en cuenta que el número de usuarios avanzados disminuye exponencialmente con el aumento de su complejidad de uso. Hemos de bajar el listón de forma que pequeños aumentos de usabilidad aumentarán enormemente el número de usuarios.

Una buena táctica de diseño de interfaz de usuario consiste en inventar diferentes usuarios imaginarios, con sus limitaciones, y enfrentarlos con nuestro software, analizar su actividad y sus espectativas de uso (el Modelo de Usuario), e intentar facilitar su experiencia, hasta que nuestro software caiga dentro de sus posibilidades.

Aunque la mejor táctica que conozco es observar cómo un usuario real intenta usar el software y descubrir así los puntos dónde el Modelo de Programa no coincide con el Modelo de Usuario.

Son unos pocos conceptos teóricos y unas cuantas recomendaciones de diseño las que he considerado conveniente compartir y difundir a lo largo de esta serie dedicada al interfaz de usuario. Espero que las encontréis tan interesantes y útiles como yo.

Para terminar, me gustaría decir que a pesar de tanto rollo y tecnicismo, creo que la belleza está en lo simple.

Al final un buen interfaz de usuario es aquel que pasa absolutamente desapercibido para el usuario. Este deja de ver el envoltorio y se centra en sus datos y su trabajo.

Y para hacer las cosas simples no necesitamos V7, verdad?. O sí?

Life is soft!

Interfaz de usuario (iv)

[ Viene de Interfaz de usuario (i), (ii) y (iii) ]

Si pretendiésemos saltarnos la consistencia porque vamos a incluir un completo y extenso manual de usuario, caeríamos en un grave error ya que los usuarios no leen los manuales.

En general, los usuarios esperan conseguir un producto hecho para ellos, y leer el manual sería visto como una pérdida de tiempo, o como mucho, como una distracción que les impediría realizar sus tareas.

De hecho, los usuarios no leen nada.

Los diseñadores de interfaz de usuario experimentados tienden a minimizar al máximo el número de palabras en los cuadros de diálogo para incrementar la posibilidad de que sean leídos.

Frente a un cuadro de diálogo extenso los usuarios avanzados obviarán las instrucciones, asumirán que ya saben usarlo y que no tienen tiempo para leer complejas instrucciones. La mayoría de los nuevos usuarios obviarán las instrucciones, no les gusta leer demasiado y esperan que la opción por defecto sea la correcta. Y el resto de usuarios, los cuales intentarán en serio leer las instrucciones, normalmente se sentirán confundidos por la cantidad de palabras y conceptos, por tanto, incluso aunque confiasen en que podrían usar el cuadro de diálogo cuando este apareció, las instrucciones que han leído consiguen confundirlos más aún.

Otro punto importante es que mucha gente se intimida por los ordenadores, así que debemos distinguir entre programas fáciles de usar, y programas posibles de usar. Incluso los usuarios avanzados, inteligentes y experimentados apreciarán todo aquello que hagamos para facilitar el trabajo de los usuarios menos avezados.

Aunque pueda parecer raro, los usuarios tienen verdaderos problemas para controlar el ratón, así que nuestro diseño no debe requerir un uso demasiado preciso del mismo. A veces los usuarios usarán dispositivos señaladores diferentes al ratón, o ratones y superficies en mal estado, o serán demasiado jóvenes o demasiado mayores o demasiado inexpertos para controlarlo al 100%, o puede que incluso padezcan algún tipo de discapacidad que les impida su uso.

Incluso en el mejor de los supuestos, el uso excesivo del ratón crea la sensación de lentitud de respuesta de la interfaz de usuario, y eso no hace feliz al usuario.

Así pues, deberemos reducir la necesidad del uso excesivamente preciso del ratón en nuestras aplicaciones.

[ Extraído básicamente de la página de Joel ]

Interfaz de usuario (iii)

[ Viene de Interfaz de usuario (i) y (ii) ]

Cuando los usuarios no tienen una expectativa concreta de cómo funciona el programa y qué se supone que debe hacer vamos a tener que darles pistas de cómo funciona. Con las interfaces gráficas, una forma muy común de resolver el problema es mediante metáforas. Una metáfora busca una similitud entre la tarea a realizar y la realidad cotidiana del usuario.

Hay que tener mucho cuidado a la hora de elegir metáforas ya que una metáfora mal elegida es peor que ninguna metáfora en absoluto.

Las buenas interfaces de usuario también proponen invitaciones.

Algunas puertas tienen grandes placas de metal a la altura del brazo. Lo único que podemos hacer con esa placa es empujarla. Otras puertas en cambio tienen asas grandes y redondeadas que hacen que queramos tirar de ellas. Incluso sugieren cómo quieren que pongas la mano en el asa. El asa te invita a tirar. Hace que quieras tirar de ella. Esto es una invitación.

Los formularios con pestañas por ejemplo son una gran invitación.

La consistencia es el principio fundamental de un buen diseño de interfaz de usuario, pero es tan sólo un corolario del axioma "haz que el Modelo de Programa se ajuste al Modelo de Usuario", porque el Modelo de Usuario va a reflejar la manera en que los usuarios ven cómo se comportan otros programas.

Desafortunadamente, hay una fuerza oscura ahí fuera luchando contra la consistencia, y es la tendencia natural de los programadores a ser creativos.

Para hacer una interfaz de usuario fácil de usar, tenemos que canalizar nuestra creatividad en otra área. En la mayoría de las decisiones de interfaz de usuario, antes de diseñar algo desde cero, debemos mirar qué están haciendo otros programas conocidos y emularlos de una manera tan parecida como sea posible.

Para crear un buen programa con una interfaz de usuario decente, vamos a tener que dejar nuestra religión en la puerta antes de empezar.

Hemos de tener en cuenta que aún si no es lo correcto, si Microsoft lo hace en un programa conocido, entonces hay millones de personas que van a pensar que está bien, o al menos, que conforma un cierto estándar, y van a asumir que tu programa funcionará igual.

Por otra parte, no deberíamos estar tan seguros de que no está bien. Microsoft se gasta muchísimo más dinero en usabilidad que nosotros, y si lo hace, por algo será.

Un buen diseñador de interfaz de usuario utilizará la consistencia de manera inteligente, y aunque con ello no pueda chulear de creatividad, a largo plazo hará que los usuarios sean más felices, y él también.

[ Extraído básicamente de la página de Joel ]

Interfaz de usuario (ii)

[ Viene de Interfaz de usuario(i) ]

Una interfaz de usuario es muy importante ya que afecta las sensaciones, las emociones y el humor de los usuarios. Si la interfaz está mal diseñada y el usuario siente que no puede controlar la aplicación, no será feliz y culpará a nuestro programa de ello.

Si la interfaz está bien diseñada y las cosas funcionan de la manera que el usuario espera estará contento al poder realizar aunque sea pequeñas tareas.

Para hacer feliz a la gente, tenemos que permitirles sentirse al mando de su entorno. Para hacer esto, necesitamos interpretar correctamente sus acciones. La interfaz necesita comportarse de la manera que ellos esperarían que se comportara.

Cuando un nuevo usuario se pone a usar un programa, no viene como una hoja en blanco. Tiene ciertas espectativas de cómo cree que el programa va a funcionar. Si ha utilizado una aplicación parecida, pensará que ésta va a funcionar como la otra. Si ha usado cualquier software anteriormente, pensará que nuestro software se atiene a ciertas convenciones comunes. Puede que intuya inteligentemente cómo va a funcionar el interfaz de usuario.

Esto es lo que se conoce como Modelo de Usuario.

El programa también tiene un modelo mental, esto es lo que se conoce como Modelo de Programa.

Si el Modelo de Programa se corresponde con el Modelo de Usuario, nuestra interfaz de usuario, y nuestro software, tendrá éxito.

Tenemos dos opciones: intentar cambiar el Modelo de Usuario, que resulta extraordinariamente difícil, o podemos explicar las cosas en el manual, pero todos sabemos que los usuarios no leen los manuales.

Así que si la montaña no va a Mahoma... la mejor elección casi siempre va a ser cambiar el Modelo de Programa en vez del Modelo de Usuario.

Si nuestro Modelo de Programa no es trivial, probablemente no es el Modelo de Usuario.

Ya es suficientemente duro hacer que el Modelo de Programa se ajuste al Modelo de Usuario cuando los modelos son simples, así que cuando un modelo se vuelve complejo, es mucho más difícil.

Debemos elegir el modelo de partida más simple posible.

[ Extraído básicamente de la página de Joel ]

Interfaz de usuario (i)

En el foro de Velneo ha surgido una inquietud de los programadores de la plataforma acerca del diseño de la interfaz de usuario que considero muy interesante y me gustaría contribuir aportando ideas que he ido recopilando de la web y que a mí personalmente me han ayudado bastante en este tema.

Quede claro que las ideas que voy a difundir no son producto original mío si no de sus respectivos autores (básicamente de la página de Joel ). Yo me he limitado a recopilarlas, y ahora, con permiso de sus autores, difundirlas ya que las considero muy acertadas, y un modelo a seguir a la hora de diseñar una interfaz de usuario.

En el momento actual Velneo sigue siendo una herramienta minoritaria usada básicamente por desarrolladores independientes y empresas desarrolladoras con plantillas bastante limitadas. Dentro de este entorno todos sabemos que no hay grandes recursos destinados al estudio de la usabilidad y accesibilidad de las aplicaciones desarrolladas, bastante hacemos con programar y vender nuestras soluciones.

En fin, que los que nos dedicamos a esto con Velneo solemos ser más programadores que diseñadores o expertos en interfaz de usuario.

No obstante existen una serie de requisitos mínimos o reglas básicas que todos podemos seguir para mejorar ese aspecto de nuestras aplicaciones.

Podríamos empezar teniendo en cuenta cinco puntos:

1.- Un usuario no utiliza tu aplicación.

Un usuario quiere hacer su trabajo de la forma más rápida, sencilla y eficiente, y la aplicación que usa no es más que una herramienta que le ayuda a logralo. Cuanto menos estorbe tu aplicación a su trabajo, mejor. A este nivel, no importa lo genial que sea tu interfaz, cuanto más simple y transparente, mejor.

2.- El tamaño y la posición importa.

Es más sencillo hacer click sobre un objeto cuando es más grande y está cercano al puntero del ratón. Los controles más usados deben ser más grandes y fácilmente reconocibles a simple vista. Nunca debemos colocar controles demasiado cercanos al borde de la pantalla.

3.- No molestar innecesariamente.

Debemos minimizar la distracción e interrupciones que nuestra aplicación presente al usuario. Cada aplicación presenta un elemento clave que debe reunir la atención del usuario; en un editor de textos es el texto, en un navegador web es la web, así que deberíamos hacer que el elemento clave sea el centro de atención del interfaz.

No debemos colocar barreras en el camino del usuario como ventanas de diálogo a no ser que estas presenten información realmente útil para él.

4.- Utilizar la potencia del ordenador.

Ya que ahora mismo disponemos de hardware más que sobrado para los requerimientos de cualquier software, debemos facilitar la experiencia del usuario exprimiendo al máximo los recursos de que disponemos. Podemos hacer que sea fácil distinguir entre elementos muy similares por ejemplo componiendo descripciones diferentes en vez de mostrar nombres o rutas demasiado largos, o podemos recordar las preferencias del usuario para que no tenga que repetir la misma operación n veces, cada vez que quiera hacer lo mismo (filtrado de listas por ejemplo).

5.- Diferenciar y localizar.

Los elementos en pantalla que hacen cosas diferentes deben ser fácilmente distinguibles unos de otros. No debemos abrumar al usuario con demasiadas opciones.

Un elemento seleccionado se debe distinguir y leer fácilmente, por ejemplo usando contraste entre el fondo y la selección.

Siguiendo estas sencillas directrices podemos hacer una interfaz de usuario que realmente ayude al usuario a realizar su trabajo en vez de confundirlo, distraerlo o abrumarlo.

Podemos ser excelsos programadores, haber cambiado el chip y haber captado la esencia de Velneo, pero si olvidamos al usuario fracasaremos.