¿Por qué el buen diseño de la interfaz de usuario es tan difícil para algunos desarrolladores? [cerrado]


206

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?


1
Para mí (sufro el mismo problema) Conozco una buena interfaz de usuario cuando la uso. Y definitivamente conozco una interfaz de usuario que me molesta. Pero me cuesta mucho tratar de diseñar uno yo mismo. Es como el ojo crítico que tengo cuando uso la interfaz de usuario de otra persona que no funciona en mis propios diseños.
JMD

1
Odio el término "programador back-end" y estaba tratando de mantenerlo fuera del título
Chris Ballance

20
Diseño gráfico! = Diseño de interfaz de usuario. Lo primero se trata de hacer las cosas bonitas. El último se trata de hacer que las cosas sean útiles y utilizables.
Esko Luontola

2
+1 @Esko. A menudo "bonito" significa totalmente inutilizable. Pero los dos PUEDEN coexistir si se manejan con cuidado y pensamiento.
Dhaust

12
¿Por qué es tan difícil desarrollar software para diseñadores de UI?
Greg Hurlman

Respuestas:


360

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;)


8
Excelente comentario! Has superado uno de los obstáculos más fundamentales en el diseño de software. Un hecho difícil de tragar para los desarrolladores endurecidos (como yo), pero la verdad es a menudo.

12
+1. Recomiendo leer "Los internos están ejecutando el asilo", se detalla bien sobre las diferencias en la mentalidad de usuario / desarrollador, así como algunos remedios.
Richard Levasseur

9
+1 Para ser honesto, ¡cualquier desarrollador que no se preocupe por el usuario es un desarrollador pobre!
Gary Willoughby

77
Puntos muy válidos, y creo que esta mentalidad también es parte de la razón por la que una serie de proyectos administrados por desarrolladores (por ejemplo, código abierto o lo que tienes) han resultado difíciles de usar, en general, la mayoría de los desarrolladores escriben para sí mismos como el usuario, no para el usuario final "real".
CloudyMusic

25
+1 Esta es LA razón por la que Linux todavía no está listo para el escritorio del usuario promedio.
Bryan Anderson

215

El diseño de la interfaz de usuario es difícil

A la pregunta:

¿Por qué el diseño de la interfaz de usuario es tan difícil para la mayoría de los desarrolladores?

Intenta hacer la pregunta inversa:

¿Por qué la programación es tan difícil para la mayoría de los diseñadores de UI ?

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:

  1. Reconocer el diseño como una habilidad separada . La codificación y el diseño están separados pero relacionados. El diseño de la interfaz de usuario no es un subconjunto de codificación. Requiere una mentalidad diferente, una base de conocimientos y un grupo de habilidades. Hay personas que se centran en el diseño de la interfaz de usuario.
  2. Aprende sobre diseño . Por lo menos un poco. Intente aprender algunos de los conceptos y técnicas de diseño de la larga lista a continuación. Si es más ambicioso, lea algunos libros, asista a una conferencia, tome una clase, obtenga un título. Hay muchas formas de aprender sobre diseño. El libro de Joel Spolky sobre diseño de interfaz de usuario es una buena introducción para los desarrolladores, pero hay mucho más y es donde los diseñadores entran en escena.
  3. Trabaja con diseñadores . Buenos diseñadores, si puedes. Las personas que hacen este trabajo tienen varios títulos. Hoy, los títulos más comunes son Diseñador de experiencia de usuario (UXD), Arquitecto de información (IA), Diseñador de interacción (ID) e Ingeniero de usabilidad. Piensan tanto en el diseño como en el código. Puedes aprender mucho de ellos y ellos de ti. Trabaja con ellos como puedas. Encuentra personas con estas habilidades en tu empresa. Quizás necesites contratar a alguien. O vaya a algunas conferencias, asista a seminarios web y pase tiempo en el mundo UXD / IA / ID.

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:

  • Un profundo conocimiento de la máquina . Las personas en este grupo se preocupan por el código primero, las personas después. Tienen profundos conocimientos y habilidades tecnológicas. Los llamamos desarrolladores, programadores, ingenieros, etc.
  • Una comprensión profunda de las personas y el diseño : las personas en este grupo se preocupan primero por las personas, luego por el código. Tienen un profundo conocimiento de cómo las personas interactúan con la información, las computadoras y el mundo que las rodea. Los llamamos diseñadores de experiencia de usuario, arquitectos de información, diseñadores de interacción, ingenieros de usabilidad, etc.

Esta es la diferencia esencial entre estos 2 grupos, entre desarrolladores y diseñadores:

  • Los desarrolladores lo hacen funcionar . Implementan la funcionalidad en su TiVo, su iPhone, su sitio web favorito, etc. Se aseguran de que realmente haga lo que se supone que debe hacer. Su máxima prioridad es hacer que funcione.
  • Los diseñadores hacen que las personas les gusta que . Descubren cómo interactuar con él, cómo debería verse y cómo debería sentirse. Diseñan la experiencia de usar la aplicación, el sitio web, el dispositivo. Su máxima prioridad es hacer que te enamores de lo que hacen los desarrolladores. Esto es lo que se entiende por experiencia del usuario, y no es lo mismo que la experiencia de la marca.

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.


8
Esta es la mejor respuesta aquí. Grandes enlaces por cierto!
Bernard Igiri

Excelente descripción general del diseño de la interfaz de usuario. También he observado tu noción de diferentes mentalidades. Hago diseño y programación de UI, y es mejor que me concentre en uno solo a la vez. [...]
Esko Luontola

Si toma decisiones de diseño de la interfaz de usuario mientras programa, cree que es la forma más sencilla de implementar, lo que a menudo conduce a un diseño de interfaz de usuario deficiente. Y si piensa en la implementación mientras realiza el diseño de la interfaz de usuario, puede elegir patrones de diseño de la interfaz de usuario que sean más fáciles de implementar, pero no tan buenos para el usuario.
Esko Luontola

2
¿Por qué no está marcado como la mejor respuesta? Parece mucho mejor que la respuesta de Thorsten79.
AbdullahC

1
Ojalá pudiera marcar esta respuesta como favorita directamente. :)
Dan J

70

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


He probado mucho este enfoque y he encontrado que es muy efectivo. Ocasionalmente, tengo un amigo no técnico que lo usa para ver qué les causa dolor al intentar usarlo.
Chris Ballance

Este es el mismo enfoque que adopto.
Ed S.

¿Podría este enfoque llamarse por casualidad "pruebas de usabilidad"? ;) Sí, es el enfoque que debe tomar antes, durante y después.
Ates Goral

Esta sería casi mi respuesta exacta. El control de calidad y el soporte técnico son increíbles. Los desarrolladores apestan en el diseño de la interfaz de usuario, iteran y hacen que otros lo prueben a menudo.
Bill K

77
Creo que se llama la "prueba de usabilidad del pasillo"
Kevin

32

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.


así poner. Muy a menudo, los intentos de agregar flexibilidad solo resultan en desorden. Más simple == mejor.
SquareCog

¿Puedes ponerte en el lugar de tus usuarios si están al otro lado del planeta, en una cultura que nunca antes has experimentado? La internacionalización es una consideración importante en el diseño sólido de la interfaz de usuario. No supongamos que todos viven en los Estados Unidos.

Absolutamente; De hecho, mi proyecto actual está dirigido a usuarios de todo el planeta (básicamente en todos los países que no sean EE. UU., donde estoy). Hace que la empatía sea más difícil, sin duda, y lo más importante es intentarlo seria y vigorosamente.
Jacob Mattison

Además, agregaría que la gran mayoría de los problemas de usabilidad son sorprendentemente obvios una vez que logra que un usuario real lo vea. Sí, habrá sutiles que son específicos de la cultura, pero puedes hacer mejoras tremendas con el siguiente chico que camina por el pasillo.
Jacob Mattison

¡+1, solo porque no puedo +100 yo mismo! Agregaré que ganar experiencia usando aplicaciones muy diferentes, tal como fueron diseñadas, lo ayuda a crecer como desarrollador de UI. Solo el uso de herramientas como Visual Studio u otras herramientas de desarrollo obstaculizará esta capacidad ...
BQ.

26

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.


+1 para el enlace MIT OCW :) Esas notas de conferencias son invaluables
PlagueHammer

Tienes razón, los usuarios pueden convertirse en expertos de un software ellos mismos, y les gusta cuando alguien les abrió el camino para que la interfaz de usuario "agradable" sea más rápida. Ahí es donde están todos los atajos de teclado, por ejemplo. ¡la usabilidad es un tema muy interesante!
Thorsten79

25

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.


¡Por eso prefiero Office 2007!
Richard Ev

Si alguien se pregunta de qué sepultura saqué esa cita, lo escuché de la civilización 4. Gran juego. No tengo idea de quién es el autor, pero seguro que podría escribir una mejor interfaz de usuario que los diseñadores de Word.
Hoffmann

Hay otra buena cita similar de A. Einstein: "Haga todo lo más simple posible, pero no más simple". Estas ideas también se aplican al diseño de la interfaz de usuario: www.presentationzen.com. ... y +1
Pyry Jahkola

Saint-Exupery fue mucho más que un piloto y diseñador de aviones; +1 por citarlo. Vale la pena leer su libro para niños ("El Principito"), pero me estoy desviando del tema aquí.
David Thornley

55
Deberías haber seleccionado la vista de impresión ... no puedo ver las reglas ahora.
Mussnoon

16

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.


Gracias, "The Design of Everyday Thinks" está en mi Amazon WishList
Chris Ballance

+1. "El diseño de las cosas cotidianas" también está en la lista de Coding Horror de lecturas recomendadas (buena lista de libros para desarrolladores). Recientemente terminé de leerlo, y también puedo recomendarlo.
Mun

Estoy leyendo "El diseño de las cosas cotidianas" en este momento, sin duda es muy bueno, pero como se menciona en los comentarios en otra respuesta, "Los internos están dirigiendo el asilo" de Alan Cooper aborda exactamente este tema. Como desarrollador, el libro "cambió la vida".
Stuart Helwig

Mi enojo: muchos desarrolladores (y diseñadores, y otros) piensan que porque puedo codificar, no puedo diseñar la interfaz de usuario. No conozco muy bien Photoshop, pero creo que tengo buen ojo para lo que funciona y lo que no. (El diseño de las cosas cotidianas fue mi primera interfaz de usuario biblia.)
Barry Brown

14

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.


"Podemos usar constructores de GUI de juguetes como el antiguo 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". Realmente redujiste mis experiencias con la construcción de GUI. Si puedo agregar: "o una combinación loca de DOM y CSS"
Hoffmann

¿Estoy seguro de que todos están familiarizados con Totally Gridbag? " madbean.com/anim/totallygridbag "
Uri

12

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.


+1 para sugerencia The Design of Everyday Things
Oskar Duveborn 05 de

+1 para una muy buena respuesta. Creo que es revelador que todavía estés flotando con 1 voto positivo (ahora 2); aquellos que se ajusten a su descripción probablemente no piensen que lo hacen, o simplemente descartarán la idea :-(
mghie

Esta es una declaración general. No todos los comentarios contra Apple sobre Slashdot son una crítica de su interfaz de usuario o una verificación de la falta de comprensión de la interfaz de usuario. Apple tiene una buena interfaz de usuario y muchos de sus competidores también.
Bernard Igiri

Otro pensamiento: una manzana no es para todos; por ejemplo, no proporciona el asombroso poder fenomenal que hace una CLI.
J. Polfer

2
Personalmente, considero que los productos de Apple son extremadamente poco intuitivos de usar. Me imagino que no soy la única persona que se sintió frustrada cuando su primer iPod comenzó a mezclar canciones cada vez que comencé a trotar, o por qué la pantalla del iPhone se invierte continuamente. Creo que las cosas solo deberían ocurrir por acciones directas e inequívocas del usuario.
Lotus Notes

10

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.


y cuál es el título del libro de este krug
defecto el

@refhat Estaba vinculado de forma destacada en la publicación superior, así que no lo hice en ese momento, pero es este: librarything.com/work/12322
James B

8

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.


7

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.


No estoy de acuerdo en que todos puedan ser programadores. Algunos aspectos del comercio no se pueden enseñar, puedes hackearlo o no puedes (sin juego de palabras)
Chris Ballance

2
Quiero decir, de vez en cuando, eso no significa que el tipo será un buen programador o lo será para siempre.
Edwin Jarvis

7

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.


Usted pone un punto bueno con Conocer a su público ... También me gusta "Usted no es su usuario" (Platt) y "Conoce a tu usuario." (Platt) Esto no puede enfatizarse lo suficiente
Chris Ballance


5

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.


Absolutamente de acuerdo, pero es bastante posible que un desarrollador aplique principios básicos de interfaz de usuario sólidos.
nailitdown

Los principios sólidos de la IU básica no funcionan en todos los países. Implementamos software en muchas regiones y existe una gran diferencia en el diseño de la interfaz de usuario para diferentes partes del mundo. Intente enviar su aplicación centrada en los EE. UU. A China en algún momento ...

5

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.


Creo que no puedes descartar la estética por completo. Quizás una interfaz de usuario fea puede ser tan útil como una bonita, pero eso no es todo para lo que sirve una interfaz de usuario. Después de todo, la interfaz de usuario es la cara de su programa, al igual que la portada de un libro: es mucho más probable que las personas elijan un programa con una interfaz de usuario bonita.
Tikhon Jelvis

Absolutamente, la estética es importante, pero eso es diseño gráfico, no diseño de interfaz de usuario.
nailitdown

5

¿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í:

Aprende a mirar, realmente mira, el mundo que te rodea. ¿Por qué me gusta esa interfaz de usuario pero odio esta? ¿Por qué es tan difícil encontrar los platos de fideos en este menú del restaurante? Wow, sabía lo que significaba esa señal incluso antes de leer las palabras. ¿Por qué fue eso? ¿Cómo es que la portada de ese libro se ve tan mal? Aprenda a tomarse el tiempo para pensar por qué reacciona de la manera en que lo hace a los elementos visuales de todo tipo, y luego aplique esto a su trabajo.


+1 para el consejo zen sobre aprender a mirar y pensar. Muy pocas personas cuestionan lo que se ve a simple vista.
PlagueHammer

5

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 ...


4

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.


Leer +1 las pautas de diseño de la plataforma es definitivamente algo que uno debería hacer (y descubrir con qué frecuencia Microsoft rompe sus propias reglas;)
Oskar Duveborn 05 de

Y además, lea las Apple (Human Interface Guidelines). Tienen más conceptos básicos y principios en ellos. Eso te hace comprender lo que debería ser universal y lo que es específico de la plataforma
Stephan Eggermont

Y mientras lo hace, lea también GNOME HIG. Entre esos tres comienza a hacerse visible lo que es solo una cosa específica de una sola plataforma, y ​​lo que parece ser una buena idea en general.
mghie

La mayoría de estos están basados ​​en IBM, pero eso está bastante desactualizado ahora. Por ejemplo, los comandos estándar de cortar y pegar fueron Shift + Del y Shift + Ins (todavía funcionan, por cierto).
Simon Buchan

4

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.


4

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.


3

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).


No estoy de acuerdo: las computadoras se basan en matemáticas y lógica, por su naturaleza. Cualquier enseñanza de programación de computadoras debe estar basada en matemáticas y lógica.
Paul Nathan

1
Sí, tienes razón, Paul. Las computadoras son matemáticas y lógica. Sin embargo, el diseño de la interfaz de usuario implica un elemento humano, que en la historia ha demostrado ser mucho menos matemático y lógico.
jwendl

No es tanto que estén menos basadas en las matemáticas y la lógica, es que las matemáticas y la lógica detrás de ellas son mucho más complejas, más que nada hoy en día. Dicho esto, apuesto a que los buenos diseños de interfaz de usuario se basan, en cierta medida, en la geometría.
Tikhon Jelvis

2

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.


2

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'


Excelente punto, requiere el otro lado del cerebro
Chris Ballance

No hay tal cosa como intuitiva para la interfaz de usuario. Hay algo similar a lo que ya sé, pero eso es algo diferente.
Stephan Eggermont

Nada es "intuitivo", todo se aprende. Intuitivo es una palabra lanzada por los empresarios para hacer sudar a los programadores.
Bernard Igiri

hablado como un verdadero programador ... y esa es la raíz del problema.
Gregor Brandt

@gbrandt Intuitive es una combinación "familiar" y "simple". Sin embargo, todavía es un objetivo por el que luchar. Lo difícil de la usabilidad es que lo que es intuitivo para algunos no es necesariamente intuitivo para otros. @Stephan tiene razón en que "intuitivo" no es un "hecho" difícil, es relativo al usuario.
TM.

2

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:

  1. ¿El usuario ya habla este idioma? Usar una interfaz altamente idiosincrásica es como comunicarse en un idioma que nunca ha hablado antes. Entonces, si su interfaz debe ser idiosincrásica, es mejor que se presente con los términos más simples y pocas distracciones. Por otro lado, si su interfaz usa expresiones idiomáticas a las que el usuario está acostumbrado, ganarán confianza desde el principio.
  2. El enemigo de la comunicación es el ruido. El ruido auditivo interfiere con la comunicación hablada; El ruido visual interfiere con la comunicación visual. Cuanto más ruido pueda cortar de su interfaz, más fácil será comunicarse con ella.
  3. Como en la conversación humana, a menudo no es lo que dices, sino cómo lo dices. La forma en que se comunica la mayoría del software es grosero en un grado que lo golpearía en la cara si fuera una persona. ¿Cómo te sentirías si le hicieras una pregunta a alguien y se sentaran allí y te miraran durante varios minutos, negándose a responder de otra manera, antes de responder? Muchos elementos de la interfaz, como las barras de progreso y la selección automática de foco, tienen la función fundamental de cortesía. Pregúntese cómo puede hacer que el día del usuario sea un poco más agradable.

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.


2

Ya hay muchos buenos comentarios, así que no estoy seguro de que haya mucho que pueda agregar. Pero aún...

  • ¿Por qué un desarrollador esperaría poder diseñar una buena interfaz de usuario?
  • ¿Cuánto entrenamiento tuvo en ese campo?
  • ¿Cuántos libros leyó?
  • ¿Cuántas cosas diseñó durante cuántos años?
  • ¿Tuvo la oportunidad de ver la reacción de sus usuarios?

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.


Exactamente lo que estaba pensando, ¿cómo se relaciona el "desarrollador" con el "Diseñador de interfaz de usuario"?
Jorge Córdoba

Aquí @Jorge aquí está relacionado: muchos desarrolladores tienen que diseñar interfaces de usuario para sus empleadores, incluso si no son diseñadores. En mi compañía, no tenemos NINGÚN artista. Nuestras aplicaciones no se ven tan mal. En este caso, debes tener reseñas grupales y otras cosas para asegurarte de que el diseño sea agradable.
TM.

@ TM: el diseño no es necesariamente diseño UI / UX. Claro que puede verse bien, pero eso no significa que funcione bien .
Kevin Peno

2

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á.


2

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 ).


2

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.


2

Si lees el libro "Por qué el software apesta", habrías visto la respuesta de Platt, que es simple:

  1. Los desarrolladores prefieren el control sobre la facilidad de uso
  2. La gente promedio prefiere la facilidad de uso sobre el control

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/

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.