Durante los últimos años, aquellas personas que de una u otra manera interactuamos con tecnologÃa, hemos visto el crecimiento y desarrollo casi imparable de la Industria del Software. Casi diariamente vemos el nacimiento de un nuevo framework de desarrollo, de un nuevo lenguaje, de una nueva técnica que promete invalidar todo lo anterior.
Las cosas han cambiado. Cada creación nueva nos da mayor facilidad para crear a su vez nuevas aplicaciones, nos quita las restricciones del pasado, nos brinda mayor libertad de disponer. Y aún asÃ, cada dÃa seguimos viendo como aplicaciones como ésta se siguen creando:

Las cosas han cambiado ciertamente, pero muchos siguen pensando aún que diseñar una interfaz se reduce a instalar una nueva caja de controles y lanzarlos a diestra y siniestra en los formularios; que los usuarios disfrutan pasar varias horas de su dÃa haciendo click en varios botones, listas de selección y tabs, y que si la interfaz es gris (muy, muy gris) están aplicando buenas prácticas de software y éste será visto con beneplácito por los inversionistas o la alta gerencia.
“Pero yo no soy diseñador”
Una de las respuestas más comunes que recibo cuando converso de éste tema con conocidos es casi siempre “Pero.. ¡yo no soy diseñador!”. Craso error. Se ha extendido la errónea idea que diseñar es embellecer algo. Un tema que debe ser aplicado “si sobra tiempo y presupuesto” y que su ignorancia es el argumento al que nos escudamos siempre. Pero la sencilla verdad es que no lo es.
Una leÃda rápida a Wikipedia nos otorga la siguiente definición:
“[...] ‘diseñar’ se refiere al proceso de creación y desarrollo para producir un nuevo objeto o medio de comunicación (objeto, proceso, servicio, conocimiento o entorno) para uso humano.”
Notablemente, podemos leer que en ninguna parte obtenemos una orientación hacia la parte estética [1]. Estamos hablando de una disciplina que se aplica desde la creación y planeamiento y durante todo su desarrollo, orientada a un fin único: dotarle de caracterÃsticas para el uso humano. No buscamos que se vea mejor (lo cual no está mal, ciertamente), o que tenga música detrás o que los controles brillen mientras los enfocamos con el cursor. Se busca que lo que hemos creado sea utilizado por humanos (al menos hasta que encontremos otras razas en el universo).
“The applications that are easy to use are designed to be familiar”
¿Cómo entonces puedo llegar a diseñar mejores interfaces?
El primer paso que debemos tener en cuenta es que No necesitamos tener una educación formal en Diseño Gráfico para poder diseñar. Lo hacemos diariamente. Lo hacemos cuando ordenamos nuestras cosas en nuestra maleta, cuando ordenamos las carpetas que utilizamos en el trabajo, cuando componemos un CurrÃculum Vitae o simplemente cuando posicionamos el pan al lado de nuestra taza al desayunar.
Lo necesario es entender dónde fallamos y dónde podemos mejorar y utilizar esa información, más algo de sentido común, como nuevas armas a tener en cuenta.
Existen tres puntos principales, en mi opinión, donde podemos encontrar los errores más comunes:
No orientarse al dominio del problema
Es probablemente uno de los dolores de cabeza más comunes para los usuarios. Poseen un término especÃfico en su negocio que utilizan diariamente. Lo conocen sus proveedores, lo conocen sus clientes. Pero cada vez que tienen que realizar una registro o utilizar el sistema que alguien les desarrolló, se ven obligados a utilizar terminologÃas externas a su dÃa a dÃa.
Una de las principales labores que tenemos que tener en cuenta es definir con los usuarios qué terminos utilizan, que simbologÃa es apropiada, qué colores y formas aplican. Debemos recordar que es finalmente el cliente el que utilizará nuestra aplicación y que debe estar definida en sus términos y de su flujo de trabajo.
Olvidar el público objetivo
Olvidarnos de quien es el finalmente usará nuestra interfaz puede ser un tema peligroso. He visto muchas aplicaciones que funcionaban correctamente pero que nadie nunca usaba.
Definir qué tener en cuenta y cómo sobre cada tipo de usuarios requerÃa muchas lÃneas y saldrÃa un poco del tema original de este artÃculo, pero creo que es importante mencionar al menos qué caracterÃsticas tener en cuenta:
- Edad. Es distinto diseñar una interfaz a ser utilizada por un niño de 12 años (aquellos que te recompilan un Kernel de Linux y exponen en Google antes del desayuno) que de un trabajador de 40 y una a ser utilizada por un adulto mayor. Lo más sencillo en este caso es realizar pruebas de usuario con aquellos que compartan esas caracterÃsticas, revisar aplicaciones similares y conversar con los usuarios.
- Profesión/Educación. Cada profesión tiene palabras propias, simbologÃas, formas de aprender y trabajar, y una buena interfaz debe reflejar aquello. Será distinta la interfaz de un programa de recetas de cocina que la de un aplicativo para programar en LISP y debemos diferenciar el flujo de trabajo distinto y adaptarnos a éste.
- Grado de Familiaridad con TecnologÃa. Algunos de mis clientes no habÃan utilizado mucho las computadoras, pero la gerencia les imponÃa utilizar el sistema que estábamos desarrollando. Adaptarnos a sus necesidades, realizando interfaces usables y sencillas, sin muchos “sofisticaciones” modernas, permitió que la barrera de entrada disminuyera y la curva de aprendizaje fuera menor también.
Tal como mencioné anteriormente, reunirse con el público objetivo es importante para entender su nivel de envolvimiento y experiencia, asà como entender como poder adaptarnos y construir la interfaz a su alrededor.
- Discapacidades. En la medida de lo posible, debemos tratar de incorporar medidas que aseguren la accesibilidad de las interfaces. No debemos discriminar y dificultar el uso de éstas.
Orientarse a las caracterÃsticas
Tal vez uno de los principales problemas en los aplicaciones modernas sea una enfermedad conocida como Featuritis o Feature Creep (del término Feature, CaracterÃstica, en inglés).

La Featuritis se puede definir como la presencia de caracterÃsticas inútiles para la funcionalidad principal del aplicativo. Normalmente podemos ver como aparece cuando nuestra aplicación es Diseñada por Comité y no bajo una dirección única.
Se puede observar también que suele aparecer cuando la decisión de qué caracterÃstica y cualidades implementar no se basa en el problema que tratamos de solucionar, si no en aquello que ha implementado la competencia, copiando función tras función y agregando a esa lista más, con el erróneo pensamiento que Más es mejor y que mientras más brindemos, mejor seremos percibidos por nuestros usuarios.
En Marketing Myths Exploded: What Your Customers Don’t Want encontramos el siguiente pensamiento:
Customers want more technology. This is coming after the demise of several dotcom companies and the plunging stock market in high tech in 2000. 1999 was a great year to invest in technology. 2000 brought about an interesting concept called reality! Customers don’t care about the gizmos and gadgets as much as they do about finding a solution to real problems. Be aware of these high-tech companies and market accordingly.(énfasis agregado por mÃ)
Orientarnos a la solución y a las caracterÃsticas nos hace perder perspectiva de lo que queremos lograr y nos puede llevar a una situación donde cada nueva aplicación trate de imitar lo que hace el resto sin deternos a pensar si esa acaso aquella la mejor solución.
Orientarnos a los usuarios nos permite pensar realmente qué es lo que quiere hacer éste, pensar no en mejorar el diseño de los formularios de la aplicación, si no en cuestionar si usar formularios es la mejor opción.
Entendiendo al usuario
- encontrar un dato hecho o información
- aprender sobre algo
- realizar una transacción
- controlar o monitorear un proceso
- crear o modificar algo
- conversar con otras personas
- ser entretenido
Y eso es, finalmente, lo que la interfaz deberÃa apoyar. No hablar de si usar AJAX o Flash. No pensar en si usar tabs o mejor ese plugin de jQuery que hemos encontrado. No pensar en qué controles utilizar para que el usuario se registre o realice una tarea, si no, ¿estamos ayudando a que haga lo que originalmente quiere hacer?
Algunos consejos finales
Entendiendo mejor ahora cuál debe ser nuestra preocupación, podemos plantearnos algunas soluciones prácticas para mejorar nuestras interfaces:
- Leer, revisar y utilizar las recomendaciones de interfaces existentes como las Macintosh Human Interface Guidelines o el Windows Style Guide). Han sido redactados por los equipos internos de cada una de esas empresas y normalmente son buenos textos a seguir en cuenta.
- Asà como existen patrones de diseño de software, también podemos revisar aquellos que existen para el manejo de interfaces. En Designing Interfaces podemos encontrar patrones para organización de contenido, navegación, acciones y comandos, formularios y más.
- Una de las prácticas más importantes para probar una interfaz que suelo encontrar es revisar detenidamente lo que estamos haciendo y preguntarnos, ¿es absolutamente (100%) necesaria éste control o funcionalidad? Si la respuesta es negativa, suelo eliminarla. He encontrado que en la mayorÃa de los casos, la interfaz se volvió mucho más limpia e intuitiva. Y en caso contrario, al menos nos permitirá repensar los elementos y diseño que estamos utilizando.
- Probar si nuestra interfaz funciona bien si desactivamos elementos adicionales como Javascript, Hojas de Estilo y Flash. No tiene que verse igual (no tiene que verse bien, realmente) pero si mantiene su funcionalidad y usabilidad, y se pueden realizar las tareas correctamente, es prueba que vamos por buen camino.
- Orientarnos al mÃnimo común denominador de los usuarios permitirá que podamos tener interfaces sencillas y sin complejidad innecesaria. Nos permitirá evaluar también qué tipo de funcionalidad y controles ocultar en paneles de “Opciones Avanzadas” o similares.
- No compliquemos el lenguaje con opciones arcanas y difÃciles de entender. Debemos mantener una lista de vocabulario a utilizar relacionado con el tipo de usuario que tendremos y su entorno.
- Realizar prototipos, probarlos, corregir y repetir. Las pruebas de usuario deben hacerse a lo largo del periodo de desarrollo y no al final, cuando el costo de mejorar o corregir las interfaces es mucho más alto y a veces, prohibitivo.
Y la regla de oro a tener en cuenta:
Disponer menos tiempo pensando cómo usar la interfaz y más usándola. Los mejores proyectos y las mejores interfaces nacen de quienes son los principales usuarios. Puede ser complicado dependiendo del tema, pero es una responsabilidad que debemos tener.

Simplemente excelente, muchos nos hemos chocado con más de uno de estos puntos e incluso a pesar de haber leÃdo sobre usabilidad y teniendo conciencia que el usuario deberÃa de definir su interfaz, el desarrollador piensa que el usuario no esta capacitado para opinar sobre esto.
Es parte del ego de muchos desarrolladores quienes piensan que por saber solo un par de puntos sobre el diseño de interfaz siempre tendrán la razón :/ .
Me guardo la última regla de Oro, esta sencillamente genial.
*la primera imagen me hizo llorar de pena T___T .
Por mi parte tienes toda la razon, aunque debo admitir que a veces por la emocion no pensamos en ello, ya cuando el proyecto esta avanzando alguien no hace recordar y es rehacer todo el trabajo.
La parte que me parecio tediosa (por algunos y por mi) es — No orientarse al dominio del problema –
Esta bueno el tema ^^
Excelente artÃculo Yari ^^, largo como siempre pero menos convencional que de costumbre U_U.
Puede ser cosa de sentido común pero muchos ni siquiera tienen eso U_U. Creo que involucra un proceso continuo de preparación y pruebas hasta alcanzar desarrollar interfaces acordes con la naturaleza de las aplicaciones, para que sean sencillas y agradables para los usuarios. Recordemos nuestras primeras páginas webs. *Se niega a recordar.
Tu artÃculo es un golpe bajo a los diseñadores, ¿para qué pasaron años estudiando en la universidad si cualquiera puede hacer su trabajo?, cualquiera puede diseñar. (Entiendo tu punto de vista, sólo trato de poner a los diseñadores en tu contra XD)
Esos que dan como excusa a una interfaz horrible el hecho de que no son diseñadores…sólo son unos flojos y malos profesionales U_U
*Huye recordando que sufre de featuritis leve XD
Muy buen artÃculo. Ya era hora que revivieras el blog
Lo que dices es una verdad como un piano. Lamentablemente muchos desarrolladores ven (o vemos) las aplicaciones desde la perspectiva del cómo debe funcionar y no del cómo lidiará el usuario con todo esto. Incluso muchas veces nos encerramos en la idea de que debe ser asÃ. Recuerdo la conversación que tuvimos en tweeter respecto a las interfaces y cómo muchas veces los desarrolladores olvidaban(mos) que la interfaz puede marcar el éxito o el fracaso de una aplicación.
ya me acordé porqué era la pita roja en mi dedo: ¡poner mi comentario en tu blog! xD
Muy buen artÃculo Yari, apoyo tus apuntes y razonamientos pues mi propia experiencia te da la razón. Por lo general me encargaban “hacer las interfaces” al principio cuando no tenÃa NPI de usabilidad, los encargados de la programación hacÃan un safarrancho como tu primera imagen y yo ¿qué hacÃa? le ponÃa bonitos colores, en realidad no estaba diseñando, sólo adornando si tomamos la definición real de qué es diseñar.
De hecho, el intercambio de información y experiencias, tanto entre diseñadores, programadores, usuarios e intermediarios, nos llevará a interfaces más intuitivas y ajustadas a la realidad de quien los hace y los usa.
Aplicando en términos de construcción serÃa lo que hacen muchos arquitectos en nuestro paÃs, que sólo “adornan” una construcción que no es funcional ni se ajusta a la realidad de su uso, ni hablar si se realiza una construcción que no contempla el uso ni el bienestar de quienes habitarán ahÃ.
De hecho que las interfaces están experimentando grandes mejoras y tomando una respuesta que me dio San César SoplÃn en una conferencia: “háblale con números al cliente”, creo que es un punto claro para lograr que se dejen malas prácticas en el diseño y uso de interfaces al mostrar que una buena interface nos puede traer beneficios cuantitativos y cualitativos en nuestra productividad.
Bueno, no sigo escribiendo que va a parecer un artÃculo dentro de otro @@
Por cierto que tu blog tiene un problema de interfaces (hablando de esto) escribà un comentario largo, pero escribà mal mi correo y me mando a una ventana con solo este mensaje:
Eso era todo lo que habÃa, ni un botón, enlace o algo que me permitierà hacer otra cosa diferente o corregir el problema, tuve que darle atrás y se perdio lo que escribà y por flojera ya no lo puse. Genial que hables de interfaces, ahora, arregla el problema que tiene la tuya… xD
Juas.. gracias por el tip. No queda otra que meterse a reparalo. Ciertamente dicen, cuchara de palo en casa de herrero.
Pingback: Realiza llamadas VoIP desde Firefox | La Voz IP
Me parecio muyyy interesante!!!!!!!!
Me parece genial contar con esta informacion, más si uno esta haciendo su proyecto de grado y necesita aclarar muchas pero muchas dudas. Gracias por los tip
Es difícil leer el artículo. Me gustaría ver acentos en lugar de otros caracteres.
El navegador arroja las siguientes advertencias:
Deprecated: Assigning the return value of new by reference is deprecated in /home/cristal/public_html/devatwork/wp-settings.php on line 512
Deprecated: Assigning the return value of new by reference is deprecated in /home/cristal/public_html/devatwork/wp-settings.php on line 527
Deprecated: Assigning the return value of new by reference is deprecated in /home/cristal/public_html/devatwork/wp-settings.php on line 534
Deprecated: Assigning the return value of new by reference is deprecated in /home/cristal/public_html/devatwork/wp-settings.php on line 570
Deprecated: Assigning the return value of new by reference is deprecated in /home/cristal/public_html/devatwork/wp-includes/cache.php on line 103
Deprecated: Assigning the return value of new by reference is deprecated in /home/cristal/public_html/devatwork/wp-includes/query.php on line 61
Deprecated: Assigning the return value of new by reference is deprecated in /home/cristal/public_html/devatwork/wp-includes/theme.php on line 1109
Deprecated: Assigning the return value of new by reference is deprecated in /home/cristal/public_html/devatwork/wp-content/plugins/tantan-reports/tantan_reports.php on line 48
Deprecated: Assigning the return value of new by reference is deprecated in /home/cristal/public_html/devatwork/wp-content/plugins/tantan-reports/tantan_reports.php on line 51
Deprecated: Function ereg() is deprecated in /home/cristal/public_html/devatwork/wp-content/plugins/tantan-reports/tantan_reports.php on line 46
Warning: session_start() [function.session-start]: Cannot send session cookie – headers already sent by (output started at /home/cristal/public_html/devatwork/wp-settings.php:512) in /home/cristal/public_html/devatwork/wp-content/plugins/wordpress-automatic-upgrade/wordpress-automatic-upgrade.php on line 119
Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /home/cristal/public_html/devatwork/wp-settings.php:512) in /home/cristal/public_html/devatwork/wp-content/plugins/wordpress-automatic-upgrade/wordpress-automatic-upgrade.php on line 119