Algunos de nosotros simplemente tenemos dificultades con los aspectos más suaves del diseño de la interfaz de usuario ( especialmente yo ). ¿Los "programadores de back-end" están condenados a diseñar solo la lógica empresarial y las capas de datos? ¿Hay algo que podamos hacer para volver a entrenar nuestro cerebro para que sea más eficaz en el diseño de capas de presentación agradables y útiles?
Los colegas me han recomendado algunos libros, incluido El diseño de sitios , No me hagas pensar y ¿Por qué el software apesta , pero me pregunto qué han hecho otros para eliminar sus deficiencias en esta área?
user-interface
Chris Ballance
fuente
fuente
Respuestas:
Déjame decirlo directamente:
Mejorar esto no comienza con pautas. Comienza con un replanteamiento de cómo piensa sobre el software.
La mayoría de los desarrolladores hardcore tienen prácticamente cero empatía con los usuarios de su software. No tienen idea de cómo piensan los usuarios, cómo los usuarios crean modelos de software que usan y cómo usan una computadora en general.
Es un problema típico cuando un experto choca con un laico: ¿cómo demonios podría una persona normal ser tan tonta como para no entender lo que el experto entendió hace 10 años?
Uno de los primeros hechos para reconocer que es increíblemente difícil de comprender para casi todos los desarrolladores experimentados es este:
La gente normal tiene un concepto de software muy diferente al que usted tiene. No tienen ni idea de programación. Ninguna. Cero. Y ni siquiera les importa. Ni siquiera piensan que tienen que preocuparse. Si los obliga a hacerlo, eliminarán su programa.
Ahora eso es increíblemente duro para un desarrollador. Está orgulloso del software que produce. Le encantan todas las características. Él puede decirle exactamente cómo funciona el código detrás de él. Tal vez incluso inventó un algoritmo inteligente increíble que lo hizo funcionar un 50% más rápido que antes.
Y al usuario no le importa.
Qué idiota.
Muchos desarrolladores no pueden soportar trabajar con usuarios normales. Se deprimen por su conocimiento inexistente de la tecnología. Y es por eso que la mayoría de los desarrolladores evitan y piensan que los usuarios deben ser idiotas.
Ellos no son.
Si un desarrollador de software compra un automóvil, espera que funcione sin problemas. Por lo general, no le importan las presiones de los neumáticos, el ajuste mecánico que fue importante para que funcione de esa manera. Aquí él no es el experto. Y si compra un automóvil que no tiene el ajuste fino, lo devuelve y compra uno que hace lo que quiere.
A muchos desarrolladores de software les gustan las películas. Películas bien hechas que despiertan su imaginación. Pero no son expertos en producir películas, en producir efectos visuales o en escribir buenos guiones de películas. La mayoría de los nerds son muy, muy, muy malos actuando porque se trata de mostrar emociones complejas y poco sobre análisis. Si un desarrollador ve una mala película, se da cuenta de que es mala en su conjunto. Los nerds incluso han creado IMDB para recopilar información sobre películas buenas y malas para que sepan cuáles mirar y cuáles evitar. Pero no son expertos en crear películas. Si una película es mala, no irán al cine (o no la descargarán de BitTorrent;)
Por lo tanto, todo se reduce a: evitar a los usuarios normales como expertos es ignorancia. Debido a que en esas áreas (y hay tantas) donde no son expertos, esperan que los expertos de otras áreas ya hayan pensado en las personas normales que usan sus productos o servicios.
¿Qué puedes hacer para remediarlo? Cuanto más duro seas como programador, menos abierto serás para el pensamiento normal del usuario. Será extraño y despistado para ti. Usted pensará: No me puedo imaginar cómo la gente podría nunca utilizar un ordenador con esta falta de conocimiento. Pero ellos pueden. Para cada elemento de la IU, piense en: ¿Es necesario? ¿Se ajusta al concepto que un usuario tiene de mi herramienta? ¿Cómo puedo hacerle entender? Lea sobre usabilidad para esto, hay muchos buenos libros. También es un área entera de la ciencia.
Ah, y antes de decirlo, sí, soy fanático de Apple;)
fuente
El diseño de la interfaz de usuario es difícil
A la pregunta:
Intenta hacer la pregunta inversa:
Codificar una IU y diseñar una IU requiere diferentes habilidades y una mentalidad diferente. El diseño de la interfaz de usuario es difícil para la mayoría de los desarrolladores, no para algunos , al igual que escribir código es difícil para la mayoría de los diseñadores, no para algunos diseñadores.
La codificación es difícil. El diseño también es difícil. Pocas personas hacen las dos cosas bien. Los buenos diseñadores de interfaz de usuario rara vez escriben código. Puede que ni siquiera sepan cómo, pero siguen siendo buenos diseñadores. Entonces, ¿por qué los buenos desarrolladores se sienten responsables del diseño de la interfaz de usuario?
Saber más sobre el diseño de la interfaz de usuario lo convertirá en un mejor desarrollador, pero eso no significa que deba ser responsable del diseño de la interfaz de usuario. Lo contrario es cierto para los diseñadores: saber cómo escribir código los hará mejores diseñadores, pero eso no significa que deberían ser responsables de codificar la interfaz de usuario.
Cómo mejorar en el diseño de la interfaz de usuario
Para los desarrolladores que desean mejorar en el diseño de la interfaz de usuario, tengo 3 consejos básicos:
Aquí hay algunas cosas específicas que puedes aprender. No trates de aprender todo . Si supiera todo lo siguiente, podría llamarse a sí mismo diseñador de interacción o arquitecto de información. Comience con cosas cerca de la parte superior de la lista . Centrarse en conceptos y habilidades específicas. Luego muévete hacia abajo y bifurca. Si realmente te gustan estas cosas, considéralo como una carrera profesional. Muchos desarrolladores pasan a la gestión, pero el diseño UX es otra opción.
Por qué el diseño de la interfaz de usuario es difícil
El buen diseño de la interfaz de usuario es difícil porque involucra 2 habilidades muy diferentes:
Esta es la diferencia esencial entre estos 2 grupos, entre desarrolladores y diseñadores:
Además, la programación y el diseño requieren diferentes mentalidades , no solo diferentes conocimientos y diferentes habilidades. Un buen diseño de interfaz de usuario requiere dos mentalidades, ambas bases de conocimiento, ambos grupos de habilidades. Y lleva años dominar cualquiera de los dos.
Los desarrolladores deben esperar encontrar el diseño de la interfaz de usuario difícil, al igual que los diseñadores de la interfaz de usuario deben esperar encontrar el código de escritura difícil.
fuente
Lo que realmente me ayuda a mejorar mi diseño es agarrar a un compañero desarrollador, uno de los tipos de control de calidad, el primer ministro o cualquier persona que pase y haga que prueben un widget o pantalla en particular.
Es sorprendente lo que se dará cuenta cuando vea a otra persona usar su software por primera vez
fuente
En definitiva, se trata realmente de empatía: ¿puedes ponerte en la piel de tu usuario?
Una cosa que ayuda, por supuesto, es "comer su propia comida para perros": usar sus aplicaciones como un usuario real y ver qué es molesto.
Otra buena idea es encontrar una manera de ver a un usuario real usando su aplicación, que puede ser tan complicado como un laboratorio de usabilidad con espejos unidireccionales, captura de video en pantalla, cámaras de video en los usuarios, etc., o puede ser tan simple como prototipos de papel usando a la siguiente persona que pase por el pasillo.
Si todo lo demás falla, recuerde que casi siempre es mejor que la interfaz de usuario sea demasiado simple que demasiado complicada. Es muy fácil decir "oh, sé cómo resolver eso, solo agregaré una casilla de verificación para que el usuario pueda decidir qué modo prefiere". Pronto tu interfaz de usuario es demasiado complicada. Elija un modo predeterminado y haga que la configuración de preferencias sea una opción de configuración avanzada. O simplemente déjalo afuera.
Si lees mucho sobre diseño, puedes colgarte fácilmente de las sombras caídas y las esquinas redondeadas, etc. Eso no es lo importante. La simplicidad y la capacidad de descubrimiento son las cosas importantes.
fuente
Contrariamente al mito popular, literalmente no hay aspectos blandos en el diseño de la interfaz de usuario, al menos no más de lo necesario para diseñar un buen back-end.
Considera lo siguiente; Un buen diseño de back-end se basa en principios y elementos bastante sólidos con los que cualquier buen desarrollador está familiarizado:
bajo acoplamiento
alta cohesión
patrones arquitectónicos
mejores prácticas de la industria
etc.
El buen diseño de back-end generalmente nace a través de una serie de interacciones, donde, en base a la retroalimentación medible obtenida durante las pruebas o el uso real, el plan inicial se mejora gradualmente. A veces es necesario crear prototipos de aspectos más pequeños del back-end y probarlos de forma aislada, etc.
El buen diseño de la interfaz de usuario se basa en los principios sólidos de:
visibilidad
asequibilidad
realimentación
tolerancia
sencillez
consistencia
estructura
La interfaz de usuario también nace a través de pruebas y pruebas, a través de iteraciones pero no con compilador + traje de prueba automatizado, sino personas. De forma similar al back-end, existen mejores prácticas de la industria, técnicas de medición y evaluación, formas de pensar en la interfaz de usuario y establecer objetivos en términos de modelo de usuario, imagen del sistema, modelo de diseñador, modelo estructural, modelo funcional, etc.
El conjunto de habilidades necesarias para diseñar la interfaz de usuario es bastante diferente del diseño de back-end y, por lo tanto, no espere poder hacer una buena interfaz de usuario sin aprender primero. Sin embargo, ambas actividades tienen en común el proceso de diseño. Creo que cualquiera que pueda diseñar un buen software es capaz de diseñar una buena interfaz de usuario siempre que pase un tiempo aprendiendo cómo hacerlo.
Recomiendo tomar un curso de interacción hombre-computadora, consulte el sitio de MIT y Yale, por ejemplo, para obtener materiales en línea:
Modelo estructural vs funcional en comprensión y uso
La excelente publicación anterior de Thorsten79 presenta el tema de los expertos en desarrollo de software frente a los usuarios y cómo difieren sus conocimientos sobre el software. Los expertos en aprendizaje humano distinguen entre modelos mentales funcionales y estructurales. Encontrar el camino a la casa de tu amigo puede ser un excelente ejemplo de la diferencia entre los dos:
El primer enfoque incluye un conjunto de instrucciones detalladas: tome la primera salida de la autopista, luego, después de 100 yardas, gire a la izquierda, etc. Este es un ejemplo de modelo funcional: lista de pasos concretos necesarios para lograr un determinado objetivo. Los modelos funcionales son fáciles de usar, no requieren pensar mucho, solo una ejecución directa. Obviamente, hay una penalización por la simplicidad: puede que no sea la ruta más eficiente y cualquier situación excepcional (es decir, un desvío de tráfico) puede conducir fácilmente a una falla completa.
Una forma diferente de hacer frente a la tarea es construir un modelo mental estructural. En nuestro ejemplo, sería un mapa que transmite mucha información sobre la estructura interna del "objeto de tarea". Al comprender el mapa y las ubicaciones relativas de nuestra casa y la de nuestros amigos, podemos deducir el modelo funcional (la ruta). Obviamente, requiere más esfuerzo, pero una forma mucho más confiable de completar la tarea a pesar de las posibles desviaciones.
La elección entre transmitir el modelo funcional o estructural a través de la interfaz de usuario (por ejemplo, asistente vs modo avanzado) no es tan sencilla como podría parecer de la publicación de Thorsten79. Los usuarios avanzados y frecuentes pueden preferir el modelo estructural, mientras que los usuarios ocasionales o menos experimentados son funcionales.
Google Maps es un gran ejemplo: incluyen tanto el modelo funcional como el estructural, al igual que muchos navegadores por satélite.
Otra dimensión del problema es que el modelo estructural presentado a través de la interfaz de usuario no debe mapearse a la estructura del software, sino que debe mapearse naturalmente a la estructura de la tarea del usuario en cuestión o del objeto de tarea involucrado.
La dificultad aquí es que muchos desarrolladores tendrán un buen modelo estructural de sus componentes internos de software, pero solo un modelo funcional de la tarea del usuario que el software pretende ayudar. Para construir una buena interfaz de usuario, es necesario comprender la estructura de la tarea / objeto de tarea y asignar la interfaz de usuario a esa estructura.
De todos modos, todavía no puedo recomendar tomar un curso formal de HCI con suficiente fuerza. Hay muchas cosas involucradas, como la heurística , los principios derivados de la psicología de la Gestalt , las formas en que los humanos aprenden, etc.
fuente
Le sugiero que comience haciendo toda su IU de la misma manera que lo hace ahora, sin centrarse en la usabilidad y otras cosas.
texto alternativo http://www.stricken.org/uploaded_images/WordToolbars-718376.jpg
Ahora piensa en esto:
Un diseñador sabe que ha logrado la perfección no cuando no queda nada más que agregar, sino cuando no hay nada más que quitar. - Saint-Exupéry
Y aplique esto en su diseño.
fuente
Muchos desarrolladores piensan que debido a que pueden escribir código, pueden hacerlo todo. Diseñar una interfaz es una habilidad completamente diferente, y no se enseñó en absoluto cuando asistí a la universidad. No es solo algo que simplemente viene naturalmente.
Otro buen libro es El diseño de las cosas cotidianas de Donald Norman.
fuente
Hay una gran diferencia entre diseño y estética, y a menudo se confunden.
Una interfaz de usuario hermosa requiere habilidades artísticas o al menos estéticas que muchos, incluido yo mismo, somos incapaces de producir. Desafortunadamente, no es suficiente y no hace que la interfaz de usuario sea utilizable, como podemos ver en muchas API pesadas basadas en flash.
La producción de interfaces de usuario utilizables requiere una comprensión de cómo los humanos interactúan con las computadoras, algunos problemas en psicología (por ejemplo, la ley de Fitt, la ley de Hick) y otros temas. Muy pocos programas de CS se entrenan para esto. Muy pocos desarrolladores que conozco elegirán un libro de prueba de usuario en lugar de un libro JUnit, etc.
Muchos de nosotros también somos "programadores centrales", que tienden a pensar en las IU como la fachada más que como un factor que podría hacer o deshacer el éxito de nuestro proyecto.
Además, la mayoría de la experiencia de desarrollo de UI es extremadamente frustrante. Podemos usar constructores de GUI de juguetes como el viejo VB y tener que lidiar con un código de pegamento feo, o usar API que nos frustran sin fin, como tratar de resolver los diseños en Swing.
fuente
Vaya a Slashdot y lea los comentarios sobre cualquier artículo relacionado con Apple. Encontrarás una gran cantidad de personas hablando sobre cómo los productos de Apple no son nada especial, y atribuyen el éxito del iPod y el iPhone a las personas que intentan estar a la moda o modernas. Por lo general, revisarán las listas de funciones y señalarán que no hacen nada antes que los reproductores de MP3 o los teléfonos inteligentes.
Luego hay personas a las que les gusta el iPod y el iPhone porque hacen lo que los usuarios quieren de manera simple y fácil, sin referencia a los manuales. Las interfaces son tan intuitivas como las interfaces se vuelven memorables y reconocibles. No soy tan aficionado a la interfaz de usuario en MacOSX como a las versiones anteriores, creo que han renunciado a cierta utilidad a favor de la ostentación, pero el iPod y el iPhone son ejemplos de un diseño excelente.
Si estás en el primer campamento, no piensas como lo hace la persona promedio y, por lo tanto, es probable que hagas malas interfaces de usuario porque no puedes distinguirlas de las buenas. Esto no significa que no tenga remedio, sino que tiene que aprender explícitamente buenos principios de diseño de interfaz y cómo reconocer una buena interfaz de usuario (por mucho que alguien con Asperger pueda necesitar aprender habilidades sociales explícitamente). Obviamente, el solo hecho de tener la sensación de una buena interfaz de usuario no significa que pueda crear una; mi aprecio por la literatura, por ejemplo, no parece extenderse a la capacidad (actualmente) de escribir historias publicables.
Por lo tanto, intente desarrollar un sentido para el buen diseño de la interfaz de usuario. Esto se extiende a más que solo software. "El diseño de las cosas cotidianas" de Don Norman es un clásico, y hay otros libros por ahí. Obtenga ejemplos de diseños de UI exitosos y juegue con ellos lo suficiente como para sentir la diferencia. Reconozca que puede estar teniendo que aprender una nueva forma de pensar sobre las cosas y disfrútelo.
fuente
La principal regla general a la que me aferro es nunca intentar hacer ambas cosas a la vez. Si estoy trabajando en el código de back-end, terminaré haciéndolo, me tomaré un descanso y volveré con mi sombrero de UI puesto. Si intenta trabajarlo mientras está haciendo código, lo abordará con la mentalidad incorrecta y, como resultado, terminará con algunas interfaces horribles.
Creo que definitivamente es posible ser un buen desarrollador de back-end y un buen diseñador de interfaz de usuario, solo tienes que trabajar en ello, leer e investigar sobre el tema (todo, desde el # 7 de Miller, hasta los archivos de Nielsen), y hacer seguro que entiendes por qué el diseño de la interfaz de usuario es de suma importancia.
No creo que sea necesario ser creativo, sino que, como el desarrollo de back-end, es algo muy metódico y muy estructurado que debe aprenderse. Son las personas que se vuelven 'creativas' con las IU las que crean algunas de las mayores monstruosidades de usabilidad ... Quiero decir, echen un vistazo a los sitios web 100% Flash, para empezar ...
Editar : el libro de Krug es realmente bueno ... lea, especialmente si va a diseñar para la Web.
fuente
Hay muchas razones para esto.
(1) El desarrollador no puede ver las cosas desde el punto de vista del usuario. Este es el sospechoso habitual: falta de empatía. Pero no suele ser cierto, ya que los desarrolladores no son tan extraños como las personas creen que son.
(2) Otra razón más común es que el desarrollador que está tan cerca de sus propias cosas, que se ha quedado con sus cosas durante tanto tiempo, no se da cuenta de que sus cosas pueden no ser tan familiares (un término mejor que intuitivo) para otras personas .
(3) Otra razón más es que el desarrollador carece de técnicas.
MI GRAN RECLAMACIÓN: lea cualquier interfaz de usuario, diseño de interacción humana, libro de prototipos. por ejemplo, diseñar lo obvio: un enfoque de sentido común para el diseño de aplicaciones web, no me hagas pensar: un enfoque de sentido común para la usabilidad web, diseñar el momento, lo que sea.
¿Cómo discuten los flujos de tareas? ¿Cómo describen los puntos de decisión? Es decir, en cualquier caso de uso, hay al menos 3 rutas: éxito, falla / excepción, alternativa.
Por lo tanto, desde el punto A, puede ir a A.1, A.2, A.3. Desde el punto A.1, puede llegar a A.1.1, A.1.2, A.1.3, etc.
¿Cómo muestran un flujo de tareas tan detallado? Ellos no. Simplemente lo pasan por alto.
Dado que incluso el experto en IU no tiene una técnica, los desarrolladores no tienen ninguna posibilidad. Él piensa que está claro en su cabeza. Pero ni siquiera está claro en el papel, y mucho menos claro en la implementación de software.
Tengo que usar mis propias técnicas hechas a mano para esto.
fuente
Intento mantenerme en contacto con sitios web y textos específicos de diseño. También encontré el excelente libro de Robin Williams El libro de diseño del no diseñador es muy interesante en estos estudios.
Creo que el diseño y la usabilidad son una parte muy importante de la ingeniería de software y deberíamos aprenderlo más y dejar de dar excusas de que no debemos hacer diseño.
Todos pueden ser diseñadores de vez en cuando, como también todos pueden ser programadores.
fuente
Al acercarme al diseño de la interfaz de usuario, aquí hay algunas de las cosas que tengo en cuenta en todo momento (de lejos, no es una lista completa):
Comunicar un modelo . La interfaz de usuario es una narrativa que explica un modelo mental al usuario. Este modelo puede ser un objeto comercial, un conjunto de relaciones, lo que tiene. La prominencia visual, la ubicación espacial y la ordenación del flujo de trabajo juegan un papel importante en la comunicación de este modelo al usuario. Por ejemplo, un cierto tipo de lista frente a otra implica cosas diferentes, así como la relación de lo que está en la lista con el resto del modelo. En general, me parece mejor asegurarme de que solo se comunique un modelo a la vez. Los programadores frecuentemente intentan comunicar más de un modelo, o partes de varios, en el mismo espacio de la interfaz de usuario.
La consistencia . Reutilizar las metáforas populares de la interfaz de usuario ayuda mucho. La consistencia interna también es muy importante.
Agrupación de tareas . Los usuarios no deberían tener que mover el mouse por toda la pantalla para verificar o completar una secuencia relacionada de comandos. Los diálogos modales y los menús desplegables pueden ser especialmente malos en esta área.
Conociendo a tu audiencia . Si sus usuarios realizarán las mismas actividades una y otra vez, rápidamente se convertirán en usuarios avanzados en esas tareas y se frustrarán por los intentos de reducir la barrera de entrada inicial. Si sus usuarios realizan diferentes tipos de actividades con poca frecuencia, es mejor asegurarse de que la interfaz de usuario mantenga su mano todo el tiempo.
fuente
Lea las pautas de la interfaz humana de Apple .
fuente
Creo que la mejor herramienta en el diseño de la interfaz de usuario es ver un intento del usuario por primera vez de utilizar el software. Tome muchas notas y hágales algunas preguntas. Nunca los dirija ni intente explicar cómo funciona el software. Este es el trabajo de la interfaz de usuario (y documentación bien escrita).
Siempre adoptamos este enfoque en todos los proyectos. Siempre es fascinante ver a un Usuario tratar con software de una manera que nunca antes consideró.
¿Por qué el diseño de la interfaz de usuario es tan difícil? Bueno, generalmente porque el Desarrollador y el Usuario nunca se encuentran.
fuente
duffymo acaba de recordarme por qué: Muchos programadores piensan "* Design" == "Art".
Un buen diseño de interfaz de usuario no es absolutamente artístico. Sigue principios sólidos, que pueden respaldarse con datos si tiene tiempo para hacer la investigación.
Creo que todo lo que los programadores deben hacer es tomarse el tiempo para aprender los principios. Creo que está en nuestra naturaleza aplicar las mejores prácticas siempre que podamos, ya sea en código o en diseño. Todo lo que necesitamos hacer es tomar conciencia de cuáles son las mejores prácticas para este aspecto de nuestro trabajo.
fuente
¿Qué he hecho para mejorar en el diseño de la interfaz de usuario?
¡Presta atención!
Es como cada vez que ves un gráfico en las noticias o un letrero de autobús electrónico y te preguntas '¿Cómo obtuvieron esos datos? ¿Lo hicieron con sql sin procesar o están usando LINQ? (o inserte su propia curiosidad geek común aquí).
Debe comenzar a hacerlo pero con elementos visuales de todo tipo.
Pero al igual que aprender un nuevo idioma, si realmente no lanzas a él, nunca lo aprenderás.
Tomado de otra respuesta que escribí:
fuente
Independientemente de cómo lo haga (y hay algunos puntos importantes anteriores), realmente me ayudó una vez que acepté que NO HAY TAL COSA COMO INTUITIVA ...
Puedo escuchar los argumentos retumbando en el horizonte ... así que déjame explicarte un poco.
Intuitivo: usar lo que uno siente como correcto o verdadero basado en un método o sentimiento inconsciente.
Si (como postuló Carl Sagan) acepta que no puede comprender cosas que son absolutamente diferentes a cualquier cosa que haya encontrado, ¿cómo podría "saber" cómo usar algo si nunca ha usado algo remotamente parecido?
Piénselo: los niños intentan abrir las puertas no porque "sepan" cómo funciona un pomo de la puerta, sino porque han visto a alguien más hacerlo ... a menudo giran la perilla en la dirección incorrecta o tiran demasiado pronto. Tienen que APRENDER cómo funciona un pomo de la puerta. Este conocimiento luego se aplica en casos diferentes pero similares: abrir una ventana, abrir un cajón, abrir casi cualquier cosa grande con una manija grande que parezca una perilla.
Incluso las cosas simples que nos parecen intuitivas no serán intuitivas para las personas de otras culturas. Si alguien extendió su brazo frente a ellos y no levantó la mano hacia arriba y hacia abajo en la muñeca mientras mantenía el brazo quieto ... ¿te están renunciando? Probablemente, a menos que estés en Japón. Allí, esta señal de mano puede significar "ven aquí". Entonces, ¿quién tiene razón? Ambos, por supuesto, en su propio contexto. Pero si viajas a ambos, necesitas saber ambos ... Diseño de interfaz de usuario.
Intento encontrar las cosas que ya son "familiares" para los usuarios potenciales de mi proyecto y luego construir la interfaz de usuario a su alrededor: diseño centrado en el usuario.
Echa un vistazo al iPhone de Apple. Incluso si lo odias, tienes que respetar la cantidad de pensamiento que entra en él. ¿Es perfecto? Por supuesto no. Con el tiempo, la "intuición" percibida de un objeto puede crecer o incluso desaparecer por completo.
Por ejemplo. La mayoría sabe que una franja negra con dos hileras de agujeros en la parte superior e inferior parece una tira de película ... ¿o sí?
Pregúntele a su hijo promedio de 9 o 10 años qué creen que es. Puede que se sorprenda de cuántos niños en este momento tendrán dificultades para identificarlo como una tira de película, a pesar de que es algo que todavía se usa para representar a Hollywood, o cualquier cosa relacionada con la película (película). La mayoría de las películas de los últimos 20 años se han filmado digitalmente. ¿Y cuándo fue la última vez que alguno de nosotros sostuvo una película de CUALQUIER tipo, fotos o película?
Entonces, para mí todo se reduce a esto: Conozca a su audiencia e investigue constantemente para mantenerse al día con las tendencias y los cambios en las cosas que son "intuitivas", apunte a sus principales usuarios e intente no hacer cosas que castiguen a los inexpertos a favor de los usuarios avanzados o ralentizar a los usuarios avanzados para sostener a los novatos.
En última instancia, cada programa requerirá una cierta cantidad de capacitación por parte del usuario para usarlo. Cuánta capacitación y para qué nivel de usuario es parte de las decisiones que deben tomarse.
Algunas cosas son más o menos familiares según el nivel de experiencia pasada del usuario objetivo como ser humano, usuario de computadora, estudiante o lo que sea.
Acabo de disparar a la parte más gorda de la curva de la campana e intento atraer a la mayor cantidad de gente posible, pero me doy cuenta de que nunca complaceré a todos ...
fuente
Sé que Microsoft es bastante inconsistente con sus propias pautas, pero he descubierto que leer sus pautas de diseño de Windows realmente me ha ayudado. Tengo una copia en mi sitio web aquí , solo desplácese hacia abajo un poco en la Guía de Vista UX. Me ha ayudado con cosas como colores, espaciado, diseños y más.
fuente
Creo que el problema principal no tiene nada que ver con diferentes talentos o habilidades. El principal problema es que, como desarrollador, sabes demasiado sobre lo que hace la aplicación y cómo lo hace, y diseñas automáticamente tu IU desde el punto de vista de alguien que tiene ese conocimiento.
Mientras que un usuario generalmente comienza sin saber absolutamente nada acerca de la aplicación y nunca debería necesitar aprender nada sobre su funcionamiento interno.
Es muy difícil, casi imposible, no usar el conocimiento que tiene, y es por eso que una interfaz de usuario no debe ser diseñada por alguien que está desarrollando la aplicación detrás de ella.
fuente
El "diseño desde ambos lados de la pantalla" presenta una razón muy simple pero profunda de por qué los programadores encuentran difícil el diseño de la interfaz de usuario: los programadores están capacitados para pensar en términos de casos extremos, mientras que los diseñadores de interfaz de usuario están capacitados para pensar en términos de casos comunes o uso.
Por lo tanto, pasar de un mundo a otro es ciertamente difícil si el entrenamiento predeterminado en ambos es exactamente lo contrario del otro.
fuente
Decir que los programas apestan en el diseño de la interfaz de usuario es perder el punto. El punto del problema es que la capacitación formal que reciben la mayoría de los desarrolladores va en profundidad con la tecnología. La interacción humano - computadora no es un tema simple. No es algo que pueda "fusionarme mentalmente" al proporcionarle un enunciado simple de una línea que le haga darse cuenta de "oh, los usuarios usarán esta aplicación de manera más efectiva si hago x en lugar de y".
Esto se debe a que falta una parte del diseño de la interfaz de usuario. El cerebro humano. Para comprender cómo diseñar una interfaz de usuario, debe comprender cómo interactúa la mente humana con la maquinaria. Hay un excelente curso que tomé en la Universidad de Minnesota sobre este tema impartido por un profesor de psicología. Se llama "Interacción hombre-máquina". Esto describe muchas de las razones por las que el diseño de la interfaz de usuario es tan complicado.
Dado que la psicología se basa en correlaciones y no en causalidad, nunca puede probar que un método de diseño de interfaz de usuario siempre funcionará en cualquier situación. Puede correlacionar que muchos usuarios encontrarán un diseño de interfaz de usuario particular atractivo o eficiente, pero no puede probar que siempre se generalizará.
Además, hay dos partes en el diseño de la interfaz de usuario que muchas personas parecen perder. Existe el atractivo estético y el flujo de trabajo funcional. Si buscas un atractivo 100% estético, seguro que la gente lo hará con tu producto. Sin embargo, dudo mucho que la estética reduzca la frustración del usuario.
Hay varios buenos libros sobre este tema y el curso a seguir (como Sketching User Experiences de Bill Buxton y Cognition in the Wild por Edwin Hutchins). Hay programas de posgrado en Interacción Humano - Computadora en muchas universidades.
Sin embargo, la respuesta general a esta pregunta radica en cómo se enseña a los individuos la informática. Todo está basado en matemáticas, lógica y no en la experiencia del usuario. Para obtener eso, necesita más que un título genérico en informática de 4 años (a menos que su título en informática de 4 años haya tenido una especialización en psicología y haya sido enfatizado en la interacción humano - computadora).
fuente
Cambiemos su pregunta:
¿Los "diseñadores de interfaz de usuario" están condenados a diseñar solo arquitectura de información y capas de presentación? ¿Hay algo que puedan hacer para volver a entrenar sus cerebros para ser más efectivos en el diseño de capas de sistema agradables y eficientes?
Parece que los "diseñadores de interfaz de usuario" tendrían que adoptar una perspectiva completamente diferente: tendrían que mirar desde el interior de la caja hacia afuera; en lugar de mirar desde fuera de la caja.
La opinión de Alan Cooper "Los internos están ejecutando el asilo" es que no podemos tomar con éxito ambas perspectivas: podemos aprender a usar un sombrero bien, pero no podemos cambiar de sombrero.
fuente
Creo que es porque una buena interfaz de usuario no es lógica. Una buena interfaz de usuario es intuitiva.
Los desarrolladores de software suelen hacer mal en 'intuitivo'
fuente
Un marco útil es considerar activamente lo que está haciendo como diseño de un proceso de comunicación. En un sentido muy real, su interfaz es un lenguaje que el usuario debe usar para decirle a la computadora qué hacer. Esto lleva a considerar una serie de puntos:
Realmente, es algo difícil determinar qué piensan los programadores de la interacción de la interfaz, aparte de un proceso de comunicación, pero tal vez el problema es que no se piensa en nada.
fuente
Ya hay muchos buenos comentarios, así que no estoy seguro de que haya mucho que pueda agregar. Pero aún...
No esperamos que un "Joe el fontanero" al azar pueda escribir un buen código. Entonces, ¿por qué esperaríamos que al azar "Joe el programador" diseñe una buena interfaz de usuario?
La empatía ayuda. Separar el diseño de la interfaz de usuario y la programación ayuda. Las pruebas de usabilidad ayudan.
Pero el diseño de la interfaz de usuario es un oficio que debe aprenderse y practicarse como cualquier otro.
fuente
Los desarrolladores no son (necesariamente) buenos en el diseño de UI por la misma razón por la que no son (necesariamente) buenos en tejer; es difícil, requiere práctica y no hace daño que alguien te muestre cómo hacerlo en primer lugar.
La mayoría de los desarrolladores (incluido yo) comenzaron a "diseñar" interfaces de usuario porque era una parte necesaria de la escritura de software. Hasta que un desarrollador se esfuerce por ser bueno, no lo será.
fuente
Para mejorar solo mire a su alrededor en los sitios existentes. Además de los libros ya sugeridos, es posible que desee echar un vistazo al excelente libro de Robin Williams "El libro de diseño para no diseñadores" ( enlace de Amazon desinfectado )
Eche un vistazo a lo que es posible en el diseño visual echando un vistazo a las diferentes presentaciones en The Zen Garden también.
Sin embargo, el diseño de la interfaz de usuario es definitivamente un arte, como los punteros en C, algunas personas lo entienden y otras no.
Pero al menos podemos reírnos de sus intentos . Por cierto, gracias OK / Cancelar por un cómic divertido y gracias a Joel por incluirlo en su libro "The Best Software Writing I" ( enlace de Amazon desinfectado ).
fuente
La interfaz de usuario no es algo que pueda aplicarse después del hecho, como una fina capa de pintura. Es algo que debe estar allí desde el principio y basado en investigaciones reales. Hay toneladas de investigación de usabilidad disponible, por supuesto. No solo debe estar allí al comienzo, sino que debe formar el núcleo de la razón por la que está creando el software en primer lugar: hay una brecha en el mundo, algún problema, y debe hacerse. más usable y más eficiente.
El software no está ahí por sí mismo. La razón para que exista una parte de software es PARA LAS PERSONAS. Es absolutamente absurdo incluso tratar de llegar a una idea para un nuevo software, sin comprender por qué alguien lo necesitaría. Sin embargo, esto sucede todo el tiempo.
Antes de escribir una sola línea de código, debe revisar las versiones en papel de la interfaz y probarla en personas reales. Esto es un poco raro y tonto, funciona mejor con los niños y con alguien entretenido que actúa como "la computadora".
La interfaz necesita aprovechar nuestras instalaciones cognitivas naturales. ¿Cómo usaría un hombre de las cavernas tu programa? Por ejemplo, hemos evolucionado para ser realmente buenos en el seguimiento de objetos en movimiento. Es por eso que las interfaces que usan simulaciones físicas, como el iPhone, funcionan mejor que las interfaces donde los cambios ocurren instantáneamente.
Somos buenos en ciertos tipos de abstracción, pero no en otros. Como programadores, estamos entrenados para hacer gimnasia mental y volteretas para comprender algunas de las abstracciones más extrañas. Por ejemplo, entendemos que una secuencia de texto arcano puede representar y traducirse en un patrón de estado electromagnético en una bandeja de metal, que cuando se encuentra con un dispositivo cuidadosamente diseñado, conduce a una secuencia de eventos invisibles que ocurren a la velocidad de la luz en un dispositivo electrónico. circuito, y estos eventos se pueden dirigir para producir un resultado útil. Es algo increíblemente antinatural tener que entender. Comprende que si bien tiene una explicación perfectamente racional para nosotros, para el mundo exterior, parece que estamos escribiendo encantamientos incomprensibles para convocar a espíritus inteligentes invisibles para que cumplan con nuestros requisitos.
El tipo de abstracciones que los humanos normales entienden son cosas como mapas, diagramas y símbolos. Tenga cuidado con los símbolos, porque los símbolos son un concepto humano muy frágil que requiere un esfuerzo mental consciente para decodificar, hasta que se aprende el símbolo.
El truco con los símbolos es que tiene que haber una relación clara entre el símbolo y la cosa que representa. La cosa que representa tiene que ser un sustantivo, en cuyo caso el símbolo debe parecerse MUCHO a la cosa que representa. Si un símbolo representa un concepto más abstracto, eso debe explicarse POR ADELANTADO. Vea los iconos inescrutables no bloqueados en la barra de herramientas de msword o photoshop, y los conceptos abstractos que representan. Debe APRENDERSE que el icono de la herramienta de recorte en photoshop significa HERRAMIENTA DE CULTIVO. tiene que entenderse lo que significa incluso CROP. Estos son requisitos previos para utilizar correctamente ese software. Lo que trae a colación un punto importante, tenga cuidado con el conocimiento ASUMIDO.
Solo obtenemos la capacidad de comprender mapas alrededor de los 4 años. Creo que leí en alguna parte una vez que los chimpancés adquieren la capacidad de comprender mapas alrededor de los 6 o 7 años.
La razón por la que las guis han tenido tanto éxito al principio, es que cambiaron un panorama de interfaces principalmente textuales a computadoras, a algo que mapeó los conceptos de computadora a algo que se parecía a un lugar físico. Donde las guis fallan en términos de usabilidad, es donde dejan de parecerse a algo que verías en la vida real. Hay cosas invisibles, impredecibles e incomprensibles que suceden en una computadora que no se parecen a nada que hayas visto en el mundo físico. Algo de esto es necesario, ya que no tendría sentido simplemente hacer un simulador de realidad. La idea es ahorrar trabajo, por lo que tiene que haber un poco de magia. Pero esa magia tiene que tener sentido y basarse en una abstracción de que los seres humanos están bien adaptados para comprender. Es cuando nuestras abstracciones comienzan a profundizarse, y en capas, y no coincide con la tarea en cuestión que las cosas se rompen. En otras palabras, la interfaz no funciona como un buen mapa para el software subyacente.
Hay muchos libros Los dos que he leído, y por lo tanto puedo recomendar, son "El diseño de las cosas cotidianas", de Donald Norman, y "La interfaz humana", de Jef Raskin.
También recomiendo un curso de psicología. "El diseño de las cosas cotidianas" habla un poco sobre esto. Muchas interfaces se rompen debido a la "comprensión popular" de la psicología por parte de un desarrollador. Esto es similar a la "física popular". Un objeto en movimiento permanece en movimiento no tiene ningún sentido para la mayoría de las personas. "¡Tienes que seguir presionándolo para mantenerlo en movimiento!" piensa el novato en física. Las pruebas de usuario no tienen sentido para la mayoría de los desarrolladores. "Puedes preguntar a los usuarios qué quieren, ¡y eso debería ser lo suficientemente bueno!" piensa el psicólogo novato.
Recomiendo Discovering Psychology, una serie documental de PBS, presentada por Philip Zimbardo. De lo contrario, intenta encontrar un buen libro de texto de física. El tipo caro. No es la basura de autoayuda de pulp fiction que encuentras en Borders, sino las cosas gruesas y duras que solo puedes encontrar en la biblioteca de una universidad. Esta es una base necesaria. Puede hacer un buen diseño sin él, pero solo tendrá una comprensión intuitiva de lo que está sucediendo. Leer algunos buenos libros te dará una buena perspectiva.
fuente
Si lees el libro "Por qué el software apesta", habrías visto la respuesta de Platt, que es simple:
Pero otra respuesta a su pregunta sería "¿por qué la odontología es tan difícil para algunos desarrolladores?" - El diseño de la interfaz de usuario lo realiza mejor un diseñador de interfaz de usuario.
http://dotmad.net/blog/2007/11/david-platt-on-why-software-sucks/
fuente