206 votes

Pourquoi une bonne conception de l'interface utilisateur est-elle si difficile pour certains développeurs?

Certains d'entre nous ont du mal avec le plus doux des aspects de la conception de l'INTERFACE utilisateur (moi en particulier). Sont des "codeurs" voué à la seule conception de la logique métier et les couches de données? Est-il quelque chose que nous pouvons faire pour recycler notre cerveau pour être plus efficace dans la conception agréable et utile couches de présentation?

Les collègues ont recommandé un certain nombre de livres m'y compris La Conception de Sites, Ne me faites pas penser et Pourquoi le Logiciel suce , mais je me demande ce que les autres ont fait pour enlever leurs lacunes dans ce domaine?

360voto

Thorsten79 Points 7975

Permettez-moi de le dire directement:

L'amélioration sur ce ne commence pas par des lignes directrices. Il commence avec un recadrage de la façon dont vous pensez de vous logiciel.

Les plus hardcore développeurs ont pratiquement zéro empathie avec les utilisateurs de leur logiciel. Ils ont aucune idée de la façon de penser des utilisateurs, comment les utilisateurs à construire des modèles de logiciels qu'ils utilisent et comment ils utilisent un ordinateur en général.

C'est un problème typique quand un expert en collision avec une des laïcs: Comment sur terre pourrait une personne normale être si stupide de ne pas comprendre ce que l'expert entendu il y a 10 ans?

L'un des premiers faits de reconnaître qui est incroyablement difficile à saisir pour presque tous les développeurs expérimentés est ceci:

Les gens normaux ont une très différent du concept de logiciel que vous avez. Ils n'ont aucune idée que ce soit de la programmation. Aucun. Zéro. Et ils n'ont même pas de soins. Ils ne pense même pas qu'ils doivent prendre en charge. Si vous avez de la force, ils vont le supprimer de votre programme.

Maintenant que c'est incroyablement difficile pour un développeur. Il est fier de le logiciel qu'il produit. Il aime toutes les fonctionnalités. Il peut vous dire exactement comment le code derrière elle fonctionne. Peut-être qu'il a même inventé un incroyable algorithme intelligent qui fait travailler 50% de plus qu'avant.

Et l'utilisateur n'a pas de soins.

Quel idiot.

De nombreux développeurs peuvent pas supporter de travailler avec les utilisateurs normaux. Ils sont déprimés par leur non-connaissance actuelle de la technologie. Et c'est pourquoi la plupart des développeurs timide loin et pense que les utilisateurs doivent être des idiots.

Ils ne le sont pas.

Si un développeur de logiciel achète une voiture, il s'attend à ce que, sans heurts. D'habitude, il ne se soucie pas de la pression des pneus, de la mécanique fine-tuning, c'était important de le faire fonctionner de cette façon. Ici, il n'est pas l'expert. Et s'il achète une voiture qui n'a pas de réglage fin, il vous le donne en arrière et en achète un qui fait ce qu'il veut.

De nombreux développeurs de logiciels comme des films. Bien fait des films que de stimuler leur imagination. Mais ils ne sont pas des experts dans la production de films, dans la production d'effets visuels ou dans la rédaction d'un bon film de scripts. La plupart des nerds sont très, très, très mauvais à l'action parce que c'est à propos de l'affichage des émotions complexes et peu sur google analytics. Si un développeur montres un mauvais film, il vient d'avis qu'il est mauvais. Nerds ont même construit IMDB de recueillir des renseignements sur les bons et de mauvais films, de sorte qu'ils savent lesquels sont à regarder et qui à éviter. Mais ils ne sont pas des experts dans la création de films. Si un film est mauvais, ils vont pas aller au cinéma (ou de ne pas le télécharger via BitTorrent ;)

Donc ça revient à faire: Fuir les utilisateurs normaux comme un expert de l'ignorance. Parce que dans ces domaines (et il y en a tellement) où ils ne sont pas des experts, ils s'attendent à des experts d'autres domaines ont déjà pensé à des gens normaux qui utilisent leurs produits ou services.

Que pouvez-vous faire pour y remédier? Le plus hardcore que vous êtes en tant que programmeur, moins ouvert, vous serez à l'utilisateur normal de la pensée. Il sera exotiques et désemparés. Vous allez penser: je ne peux pas imaginer comment les gens pourraient jamais utiliser un ordinateur avec ce manque de connaissances. Mais ils peuvent. Pour chaque élément de l'INTERFACE utilisateur, penser: Est-il nécessaire? Correspond-il à la notion d'un utilisateur a de mon outil? Comment puis-je lui faire comprendre? Veuillez lire sur la convivialité pour cela, il y a beaucoup de bons livres. C'est tout un domaine de la science, trop.

Ah et avant de vous le dire, oui, je suis un fan d'Apple ;)

70voto

Kevin Points 19613

Ce qui m'aide vraiment à améliorer ma conception, c'est d'attraper un autre développeur, un gars du QA, le premier ministre, ou n'importe qui qui arrive à passer et leur faire essayer un widget ou un écran particulier.

C'est incroyable ce que vous réaliserez lorsque vous regarderez quelqu'un d'autre utiliser votre logiciel pour la première fois

32voto

Jacob Mattison Points 32137

En fin de compte, c'est vraiment de l'empathie-pouvez-vous vous mettre dans la peau de vos utilisateurs?

Une chose qui aide, bien sûr, est "manger votre propre dogfood" -- à l'aide de vos applications comme un utilisateur réel vous-même, et voir ce qui est ennuyeux.

Une autre bonne idée est de trouver un moyen de regarder un réel de l'utilisateur à l'aide de votre application, qui peut être aussi compliqué que d'un laboratoire d'utilisabilité avec des miroirs à sens unique, l'écran de capture vidéo, caméras vidéo sur les utilisateurs, etc., ou peut être aussi simple que le papier de prototypage à l'aide de la prochaine personne qui arrive à descendre dans le hall.

Si tout le reste échoue, n'oubliez pas qu'il est presque toujours préférable pour l'INTERFACE utilisateur pour être aussi simple que d'être trop compliqué. Il est très facile de dire "oh, je sais comment le résoudre, je vais juste ajouter une case à cocher pour que l'utilisateur puisse décider quel mode ils préfèrent". Bientôt, votre INTERFACE est trop compliqué. Choisir un mode par défaut et de faire le paramètre de préférence une option de configuration avancée. Ou tout simplement le laisser dehors.

Si vous avez lu beaucoup de choses sur la conception, vous pouvez facilement obtenir accroché sur chuté ombres et les coins arrondis et ainsi de suite. Ce n'est pas les choses importantes. La simplicité et la clarté sont les choses importantes.

26voto

Vlad Gudim Points 10161

Contrairement à la croyance populaire, il y a littéralement pas de soft aspects dans la conception de l'INTERFACE utilisateur, du moins pas plus que nécessaire à la conception d'un bon back-end.

Considérer les points suivants: bon de retour la fin de la conception est basée sur assez solides principes et les éléments tout bon développeur est familier avec:

  • de couplage faible

  • une forte cohésion

  • modèles architecturaux

  • meilleures pratiques de l'industrie

  • etc

Bon fin de la conception est généralement nés à la suite d'un certain nombre d'interactions, lorsqu'elle est fondée sur la mesurables de la rétroaction obtenue lors des essais ou l'utilisation réelle, le plan initial est progressivement améliorée. Parfois, vous avez besoin pour réaliser des prototypes les plus petits aspects de back-end et essai dans l'isolement etc.

Une bonne conception de l'INTERFACE utilisateur est basée sur les principes solides de:

  • visibilité

  • l'affordance

  • commentaires

  • la tolérance

  • simplicité

  • la cohérence

  • structure

L'INTERFACE utilisateur est également né par le biais de test et d'essai, par itérations, mais pas avec le compilateur + test automatisé costume, mais les gens. De même à l'arrière, il y a l'industrie les meilleures pratiques, de mesure et d'évaluation des techniques, des façons de penser de l'INTERFACE utilisateur, et de fixer des objectifs en termes de modèle d'utilisateur, l'image du système, le concepteur de modèle, le modèle structurel, fonctionnel modèle etc.

L'ensemble des compétences nécessaires pour la conception de l'INTERFACE utilisateur est assez différent de la conception de back-end, et donc ne vous attendez pas à être en mesure de faire une bonne INTERFACE utilisateur sans effectuer de certains à l'étude. Cependant que ces deux activités ont en commun est le processus de conception. Je crois que n'importe qui peut concevoir un bon logiciel est capable de concevoir une bonne INTERFACE utilisateur aussi longtemps qu'ils passent un certain temps à apprendre.

Je vous recommande de prendre un cours en Interaction Homme-machine, vérifier MIT et de Yale site, par exemple pour les matériaux en ligne:

Structurels vs Modèle Fonctionnel dans la Compréhension et l'Utilisation

L'excellent antérieure post par Thorsten79 soulève le sujet de développement de logiciels experts vs utilisateurs et de leur compréhension de la différence. L'apprentissage humain experts distinction entre fonctionnelle et structurelle des modèles mentaux. Trouver son chemin à la maison de votre amie peut être un excellent exemple de la différence entre les deux:

  • Première approche comprend un ensemble d'instructions détaillées: prendre la première sortie de l'autoroute, puis après 100 mètres, tourner à gauche etc. Ceci est un exemple de modèle fonctionnel: liste de mesures concrètes nécessaires pour atteindre un certain but. Modèles fonctionnels sont faciles à utiliser, ils ne nécessitent pas beaucoup de réflexion, juste un simple exécution. Évidemment, il y a une pénalité pour la simplicité: il pourrait ne pas être la route la plus efficace et de toute situation exceptionnelle (c'est à dire un détournement de trafic) peut facilement conduire à un échec complet.

  • Une autre façon de faire face à la tâche est de construire une structurels du modèle mental. Dans notre exemple, ce serait une carte qui conveyes beaucoup d'informations sur la structure interne de l "objet de tâche". De la compréhension de la carte et l'emplacement de notre et ami de la maison, nous pouvons déduire le modèle fonctionnel (la route). Bien sûr, cela nécessite plus d'efforts, mais de façon beaucoup plus fiable de l'achèvement de la tâche, malgré les déviations possibles.

Le choix entre transmettre fonctionnelle ou structurelle du modèle par le biais de l'INTERFACE utilisateur (par exemple, l'assistant vs mode avancé) n'est pas que, tout comme il pourrait sembler à partir de Thorsten79 post. Avancés et les utilisateurs fréquents pourraient bien préférer le modèle structurel, alors que occassional ou moins expirienced les utilisateurs fonctionnels.

Google

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X