Pourquoi une bonne conception d'interface utilisateur est-elle si difficile pour certains développeurs? [fermé]


206

Certains d'entre nous ont juste du mal avec les aspects plus doux de la conception d'interface utilisateur ( moi-même en particulier ). Les «codeurs principaux» sont-ils voués à ne concevoir que la logique métier et les couches de données? Y a-t-il quelque chose que nous pouvons faire pour recycler notre cerveau afin qu'il soit plus efficace dans la conception de couches de présentation agréables et utiles?

Des collègues m'ont recommandé quelques livres, dont La conception des sites , Ne me faites pas réfléchir et Pourquoi le logiciel craint , mais je me demande ce que d'autres ont fait pour éliminer leurs lacunes dans ce domaine?


1
Pour moi (je souffre du même problème) je connais une bonne interface quand j'en utilise une. Et je connais certainement une interface utilisateur qui m'agace. Mais j'ai du mal à essayer d'en concevoir un moi-même. C'est comme l'œil critique que j'ai lorsque j'utilise l'interface utilisateur de quelqu'un d'autre ne fonctionne pas sur mes propres conceptions.
JMD

1
Je déteste le terme "codeur back-end" et j'essayais de le garder hors du titre
Chris Ballance

20
Conception graphique! = Conception d'interface utilisateur. La première consiste à rendre les choses jolies. Ce dernier consiste à rendre les choses utiles et utilisables.
Esko Luontola

2
+1 @Esko. Souvent «joli» signifie totalement inutilisable. Mais les deux PEUVENT coexister s'ils sont manipulés avec soin et réflexion.
Dhaust

12
Pourquoi le développement de logiciels est-il si difficile pour les concepteurs d'interface utilisateur?
Greg Hurlman

Réponses:


360

Permettez-moi de le dire directement:

L'amélioration sur ce point ne commence pas par des directives. Il commence par recadrer votre façon de penser les logiciels.

La plupart des développeurs hardcore n'ont pratiquement aucune empathie avec les utilisateurs de leurs logiciels. Ils n'ont aucune idée de la façon dont les utilisateurs pensent, comment les utilisateurs construisent des modèles de logiciels qu'ils utilisent et comment ils utilisent un ordinateur en général.

C'est un problème typique lorsqu'un expert entre en collision avec un laïc: comment diable une personne normale peut-elle être si stupide de ne pas comprendre ce que l'expert a compris il y a 10 ans?

L'un des premiers faits à reconnaître que c'est incroyablement difficile à saisir pour presque tous les développeurs expérimentés est le suivant:

Les gens normaux ont un concept de logiciel très différent du vôtre. Ils n'ont aucune idée de la programmation. Aucun. Zéro. Et ils s'en moquent même. Ils ne pensent même pas qu'ils doivent s'en soucier. Si vous les forcez, ils supprimeront votre programme.

C'est incroyablement dur pour un développeur. Il est fier du logiciel qu'il produit. Il aime chaque fonctionnalité. Il peut vous dire exactement comment fonctionne le code derrière. Peut-être qu'il a même inventé un algorithme intelligent incroyable qui l'a fait fonctionner 50% plus rapidement qu'auparavant.

Et l'utilisateur s'en fiche.

Quel idiot.

De nombreux développeurs ne supportent pas de travailler avec des utilisateurs normaux. Ils sont déprimés par leur connaissance inexistante de la technologie. Et c'est pourquoi la plupart des développeurs hésitent et pensent que les utilisateurs doivent être des idiots.

Ils ne sont pas.

Si un développeur de logiciels achète une voiture, il s'attend à ce qu'elle fonctionne correctement. Il ne se soucie généralement pas de la pression des pneus, du réglage mécanique qui était important pour 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 le réglage fin, il la rend et en achète une qui fait ce qu'il veut.

De nombreux développeurs de logiciels aiment les films. Des films bien faits qui suscitent 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 de bons scripts de films. La plupart des nerds sont très, très, très mauvais à agir, car il s'agit de montrer des émotions complexes et peu d'analytique. Si un développeur regarde un mauvais film, il remarque simplement qu'il est mauvais dans son ensemble. Les nerds ont même développé IMDB pour collecter des informations sur les bons et les mauvais films afin qu'ils sachent lesquels regarder et lesquels éviter. Mais ils ne sont pas experts en création de films. Si un film est mauvais, ils n'iront pas au cinéma (ou ne le téléchargeront pas depuis BitTorrent;)

Donc, cela se résume à: Éviter les utilisateurs normaux en tant qu'expert est l' ignorance. Parce que dans ces domaines (et il y en a tellement) où ils ne sont pas des experts, ils s'attendent à ce que les experts d'autres domaines aient déjà pensé à des gens normaux qui utilisent leurs produits ou services.

Que pouvez-vous faire pour y remédier? Plus vous êtes hardcore en tant que programmeur, moins vous serez ouvert à la pensée normale des utilisateurs. Il vous sera étranger et désemparé. Vous allez penser: je ne peux pas imaginer comment les gens pourraient jamais utiliser un ordinateur avec ce manque de connaissances. Mais ils le peuvent. Pour chaque élément de l'interface utilisateur, pensez à: est-ce nécessaire? Est-ce que cela correspond au concept qu'un utilisateur a de mon outil? Comment puis-je lui faire comprendre? Veuillez lire sur l'utilisabilité pour cela, il y a beaucoup de bons livres. C'est aussi tout un domaine scientifique.

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


8
Excellent commentaire! Vous avez réussi l'un des obstacles les plus fondamentaux de la conception de logiciels. Un fait difficile à avaler pour les développeurs endurcis (comme moi), mais la vérité est souvent.

12
+1. Je recommande de lire "Les détenus dirigent l'asile", il explique en détail les différences de mentalités entre les utilisateurs et les développeurs, ainsi que certains remèdes.
Richard Levasseur

9
+1 Pour être honnête, tout développeur qui ne se soucie pas de l'utilisateur est un mauvais développeur!
Gary Willoughby

7
Des points très valables, et je pense que cette mentalité fait également partie de la raison pour laquelle un certain nombre de projets gérés par des développeurs (par exemple, open source ou ce que vous avez) sont apparus comme difficiles à utiliser - dans l'ensemble, la plupart des développeurs écrire pour eux-mêmes en tant qu'utilisateur, pas pour le "vrai" utilisateur final.
CloudyMusic

25
+1 C'est LA raison pour laquelle Linux n'est toujours pas prêt pour le bureau de l'utilisateur moyen.
Bryan Anderson

215

La conception de l'interface utilisateur est difficile

À la question:

pourquoi la conception de l'interface utilisateur est-elle si difficile pour la plupart des développeurs?

Essayez de poser la question inverse:

pourquoi la programmation est-elle si difficile pour la plupart des concepteurs d'interface utilisateur ?

Le codage d'une interface utilisateur et la conception d'une interface utilisateur nécessitent des compétences différentes et un état d'esprit différent. La conception de l'interface utilisateur est difficile pour la plupart des développeurs, pas pour certains développeurs, tout comme l'écriture de code est difficile pour la plupart des concepteurs, pas pour certains concepteurs.

Le codage est difficile. Le design est dur aussi. Peu de gens font bien les deux. Les bons concepteurs d'interface utilisateur écrivent rarement du code. Ils ne savent peut-être même pas comment, mais ils sont toujours de bons designers. Alors pourquoi les bons développeurs se sentent-ils responsables de la conception de l'interface utilisateur?

En savoir plus sur la conception d'interface utilisateur fera de vous un meilleur développeur, mais cela ne signifie pas que vous devriez être responsable de la conception d'interface utilisateur. L'inverse est vrai pour les concepteurs: savoir écrire du code fera d'eux de meilleurs concepteurs, mais cela ne signifie pas qu'ils devraient être responsables du codage de l'interface utilisateur.

Comment améliorer la conception de l'interface utilisateur

Pour les développeurs souhaitant améliorer la conception de l'interface utilisateur, j'ai 3 conseils de base:

  1. Reconnaissez le design comme une compétence distincte . Le codage et la conception sont séparés mais liés. La conception de l'interface utilisateur n'est pas un sous-ensemble de codage. Cela nécessite un état d'esprit, une base de connaissances et un groupe de compétences différents. Il y a des gens qui se concentrent sur la conception de l'interface utilisateur.
  2. Découvrez le design . Au moins un peu. Essayez d'apprendre quelques-uns des concepts et techniques de conception de la longue liste ci-dessous. Si vous êtes plus ambitieux, lisez quelques livres, assistez à une conférence, prenez un cours, obtenez un diplôme. Il existe de nombreuses façons d'apprendre sur le design. Le livre de Joel Spolky sur la conception d'interface utilisateur est une bonne introduction pour les développeurs, mais il y a beaucoup plus et c'est là que les concepteurs entrent en scène.
  3. Travaillez avec des designers . De bons designers, si vous le pouvez. Les gens qui font ce travail portent différents titres. Aujourd'hui, les titres les plus courants sont User Experience Designer (UXD), Information Architect (IA), Interaction Designer (ID) et Ergonomie Engineer. Ils pensent au design autant que vous pensez au code. Vous pouvez apprendre beaucoup d'eux et eux de vous. Travaillez avec eux comme vous le pouvez. Trouvez des personnes possédant ces compétences dans votre entreprise. Vous devez peut-être embaucher quelqu'un. Ou allez à certaines conférences, assistez à des webinaires et passez du temps dans le monde UXD / IA / ID.

Voici quelques choses spécifiques que vous pouvez apprendre. N'essayez pas de tout apprendre . Si vous saviez tout ci-dessous, vous pourriez vous appeler un concepteur d'interaction ou un architecte de l'information. Commencez par les choses en haut de la liste . Concentrez-vous sur des concepts et des compétences spécifiques. Ensuite, descendez et bifurquez. Si vous aimez vraiment ce genre de choses, considérez-le comme un cheminement de carrière. De nombreux développeurs se tournent vers la gestion, mais la conception UX est une autre option.

Pourquoi la conception de l'interface utilisateur est difficile

Une bonne conception de l'interface utilisateur est difficile car elle implique 2 compétences très différentes:

  • Une profonde compréhension de la machine . Les gens de ce groupe s'inquiètent d'abord du code, des gens ensuite. Ils ont des connaissances et des compétences technologiques approfondies. Nous les appelons développeurs, programmeurs, ingénieurs, etc.
  • Une compréhension approfondie des personnes et de la conception : les personnes de ce groupe se soucient d'abord des personnes, puis du code. Ils ont une connaissance approfondie de la façon dont les gens interagissent avec les informations, les ordinateurs et le monde qui les entoure. Nous les appelons concepteurs d'expérience utilisateur, architectes de l'information, concepteurs d'interaction, ingénieurs de l'utilisabilité, etc.

C'est la différence essentielle entre ces 2 groupes - entre développeurs et designers:

  • Les développeurs le font fonctionner . Ils implémentent la fonctionnalité sur votre TiVo, votre iPhone, votre site Web préféré, etc. Ils s'assurent qu'il fait réellement ce qu'il est censé faire. Leur priorité absolue est de le faire fonctionner.
  • Les concepteurs font les gens aiment ce . Ils découvrent comment interagir avec lui, à quoi il devrait ressembler et comment il devrait se sentir. Ils conçoivent l'expérience d'utilisation de l'application, du site Web, de l'appareil. Leur priorité absolue est de vous faire tomber amoureux de ce que font les développeurs. C'est ce que l'on entend par expérience utilisateur, et ce n'est pas la même chose que l'expérience de marque.

De plus, la programmation et la conception nécessitent des mentalités différentes , pas seulement des connaissances et des compétences différentes. Une bonne conception de l'interface utilisateur nécessite les deux mentalités, les deux bases de connaissances et les deux groupes de compétences. Et il faut des années pour maîtriser l'un ou l'autre.

Les développeurs doivent s'attendre à trouver la conception d'interface utilisateur difficile, tout comme les concepteurs d'interface utilisateur doivent s'attendre à trouver difficile à écrire du code.


8
C'est la meilleure réponse ici. Grands liens BTW!
Bernard Igiri

Excellent aperçu de la conception de l'interface utilisateur! J'ai également observé votre notion de mentalités différentes. Je fais à la fois la conception et la programmation de l'interface utilisateur, et il vaut mieux que je me concentre sur un seul d'entre eux à la fois. [...]
Esko Luontola

Si vous prenez des décisions de conception d'interface utilisateur pendant la programmation, vous pensez que c'est la façon la plus simple de mettre en œuvre, ce qui conduit souvent à une mauvaise conception d'interface utilisateur. Et si vous pensez à l'implémentation tout en faisant la conception d'interface utilisateur, vous pouvez choisir des modèles de conception d'interface utilisateur qui sont plus faciles à implémenter, mais pas aussi bons pour l'utilisateur.
Esko Luontola

2
Pourquoi n'est-ce pas marqué comme la meilleure réponse? Cela semble bien mieux que la réponse de Thorsten79.
AbdullahC

1
J'aimerais pouvoir mettre cette réponse en favori directement. :)
Dan J

70

Ce qui m'aide vraiment à améliorer ma conception, c'est d'attraper un collègue développeur, l'un des gars de l'assurance qualité, le PM ou toute personne qui passe et leur fait 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


J'ai beaucoup essayé cette approche et je l'ai trouvée très efficace. Parfois, un ami non technique l'utilise pour voir ce qui lui cause de la douleur en essayant de l'utiliser.
Chris Ballance

C'est la même approche que je prends.
Ed S.

Cette approche pourrait-elle être qualifiée de "test d'utilisabilité" par hasard? ;) Oui, c'est l'approche que vous devez adopter avant, pendant et après.
Ates Goral

Ce serait presque ma réponse exacte. L'assurance qualité et le support technique sont géniaux. Les développeurs sont fous de UI Design, itèrent et demandent à d'autres de le tester souvent.
Bill K

7
Je crois que son appelé le "test d'utilisabilité du couloir"
Kevin

32

En fin de compte, il s'agit vraiment d'empathie - pouvez-vous vous mettre à la place de votre utilisateur?

Une chose qui aide, bien sûr, est de "manger votre propre nourriture pour chien" - utiliser vos applications en tant que véritable utilisateur vous-même et voir ce qui est ennuyeux.

Une autre bonne idée est de trouver un moyen de regarder un vrai utilisateur en utilisant votre application, ce qui peut être aussi compliqué qu'un laboratoire d'utilisation avec des miroirs unidirectionnels, une capture vidéo d'écran, des caméras vidéo sur les utilisateurs, etc., ou peut être aussi simple comme prototypage papier en utilisant la prochaine personne qui arrive dans le couloir.

Si tout le reste échoue, n'oubliez pas qu'il est presque toujours préférable que l'interface utilisateur soit trop simple que trop compliquée. C'est très très facile de dire "oh, je sais comment résoudre ça, je vais juste ajouter une case à cocher pour que l'utilisateur puisse décider quel mode il préfère". Bientôt, votre interface utilisateur est trop compliquée. Choisissez un mode par défaut et faites du réglage des préférences une option de configuration avancée. Ou laissez-le simplement de côté.

Si vous lisez beaucoup sur le design, vous pouvez facilement vous accrocher aux ombres tombées et aux coins arrondis, etc. Ce n'est pas l'essentiel. La simplicité et la découvrabilité sont les choses importantes.


bien placé. Le plus souvent, les tentatives pour ajouter de la flexibilité ne font qu'encombrer. Plus simple == mieux.
SquareCog

Pouvez-vous vous mettre à la place de votre utilisateur s'il est à l'autre bout de la planète, dans une culture que vous n'avez jamais connue auparavant? L'internationalisation est une considération majeure dans la conception d'une interface utilisateur solide. Ne supposons pas que tout le monde vit aux États-Unis.

Absolument; mon projet actuel est en fait destiné aux utilisateurs de toute la planète (essentiellement dans tous les pays autres que les États-Unis, où je suis). Cela rend l'empathie plus difficile, sans aucun doute - et d'autant plus important de la tenter sérieusement et vigoureusement.
Jacob Mattison

En outre, j'ajouterais que la grande majorité des problèmes de convivialité sont d'une évidence choquante une fois que vous obtenez un vrai utilisateur pour le regarder. Oui, il y en aura de subtiles qui sont spécifiques à la culture, mais vous pouvez apporter d'énormes améliorations en utilisant le prochain gars qui marche dans le couloir.
Jacob Mattison

+1, uniquement parce que je ne peux pas +100 moi-même! J'ajouterai que le fait d'acquérir de l'expérience en utilisant des applications très différentes telles qu'elles étaient prévues vous aide à vous développer en tant que développeur d'interface utilisateur. Seul l'utilisation d'outils comme Visual Studio ou d'autres outils de développement entravera cette capacité ...
BQ.

26

Contrairement au mythe populaire, il n'y a littéralement aucun aspect mou dans la conception de l'interface utilisateur, du moins pas plus que nécessaire pour concevoir un bon back-end.

Considérer ce qui suit; une bonne conception d'arrière-plan est basée sur des principes et des éléments assez solides que tout bon développeur connaît:

  • faible couplage

  • haute cohésion

  • motifs architecturaux

  • meilleures pratiques de l'industrie

  • etc

Une bonne conception d'arrière-plan naît généralement d'un certain nombre d'interactions, où, sur la base des commentaires mesurables obtenus lors des tests ou de l'utilisation réelle, le plan initial est progressivement amélioré. Parfois, vous devez créer des prototypes de petits aspects du back-end et les tester de manière isolée, etc.

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

  • visibilité

  • accessibilité

  • retour d'information

  • tolérance

  • simplicité

  • cohérence

  • structure

L'interface utilisateur est également née par le biais de tests et d'essais, par le biais d'itérations, mais pas avec un compilateur + combinaison de test automatisée, mais avec des personnes. De même que pour le back-end, il existe les meilleures pratiques de l'industrie, des techniques de mesure et d'évaluation, des façons de penser l'interface utilisateur et de définir des objectifs en termes de modèle utilisateur, d'image système, de modèle concepteur, de modèle structurel, de modèle fonctionnel, etc.

L'ensemble de compétences nécessaire pour concevoir l'interface utilisateur est très différent de la conception de back-end et ne vous attendez donc pas à pouvoir faire une bonne interface utilisateur sans avoir d'abord appris. Cependant, ces deux activités ont en commun le processus de conception. Je crois que quiconque peut concevoir un bon logiciel est capable de concevoir une bonne interface utilisateur tant qu'il passe du temps à apprendre comment.

Je recommande de suivre un cours sur l'interaction homme-machine, consultez le site du MIT et de Yale par exemple pour les documents en ligne:

Modèle structurel vs modèle fonctionnel dans la compréhension et l'utilisation

L'excellent article précédent de Thorsten79 aborde le sujet des experts en développement logiciel par rapport aux utilisateurs et comment leur compréhension des logiciels diffère. Les experts en apprentissage humain distinguent les modèles mentaux fonctionnels et structurels. Trouver le chemin de la maison de votre ami peut être un excellent exemple de la différence entre les deux:

  • La 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 des étapes concrètes nécessaires pour atteindre un certain objectif. Les modèles fonctionnels sont faciles à utiliser, ils ne nécessitent pas beaucoup de réflexion juste une exécution simple. Évidemment, il y a une pénalité pour la simplicité: ce n'est peut-être pas l'itinéraire le plus efficace et 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 un modèle mental structurel. Dans notre exemple, ce serait une carte qui transmet beaucoup d'informations sur la structure interne de "l'objet de tâche". De la compréhension de la carte et des emplacements relatifs de notre maison et de celle de nos amis, nous pouvons déduire le modèle fonctionnel (l'itinéraire). Évidemment, cela nécessite plus d'efforts, mais un moyen beaucoup plus fiable d'accomplir la tâche malgré les écarts possibles.

Le choix entre transmettre un modèle fonctionnel ou structurel via l'interface utilisateur (par exemple, assistant vs mode avancé) n'est pas aussi simple que cela puisse paraître dans le post de Thorsten79. Les utilisateurs avancés et fréquents pourraient bien préférer le modèle structurel, tandis que les utilisateurs occasionnels ou moins expérimentés - fonctionnels.

Google maps en est un excellent exemple: elles incluent à la fois un modèle fonctionnel et structurel, tout comme de nombreux systèmes de navigation par satellite.

Une autre dimension du problème est que le modèle structurel présenté via l'interface utilisateur ne doit pas correspondre à la structure du logiciel, mais plutôt correspondre naturellement à la structure de la tâche utilisateur en cours ou de l'objet de tâche impliqué.

La difficulté ici est que de nombreux développeurs auront un bon modèle structurel de leurs logiciels internes, mais uniquement un modèle fonctionnel de la tâche utilisateur que le logiciel vise à aider. Pour créer une bonne interface utilisateur, il faut comprendre la structure de la tâche / objet de tâche et mapper l'interface utilisateur à cette structure.

Quoi qu'il en soit, je ne peux toujours pas recommander de suivre un cours HCI formel assez fortement. Il y a beaucoup de choses impliquées telles que l' heuristique , les principes dérivés de la psychologie de la Gestalt , les façons dont les humains apprennent, etc.


+1 pour le lien MIT OCW :) Ces notes de cours sont inestimables
PlagueHammer

Vous avez raison, les utilisateurs peuvent eux-mêmes devenir des experts d'un logiciel, et ils aiment que quelqu'un se fraye un chemin à travers la "belle" interface utilisateur pour être plus rapide. C'est là que se trouvent tous les raccourcis clavier, par exemple. la convivialité est un sujet très intéressant!
Thorsten79

25

Je vous suggère de commencer par faire toute votre interface utilisateur de la même manière que vous le faites maintenant, sans vous concentrer sur la convivialité et les autres choses.

texte alternatif http://www.stricken.org/uploaded_images/WordToolbars-718376.jpg

Pensez maintenant à ceci:

Un designer sait qu'il a atteint la perfection non pas quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à retirer. - Saint-Exupéry

Et appliquez cela dans votre conception.


C'est pourquoi je préfère de loin Office 2007!
Richard Ev

Si quelqu'un se demande de quelle tombe j'ai creusé cette citation, je l'ai entendu de la civilisation 4. Grand jeu. Je n'ai aucune idée de qui est l'auteur, mais il pourrait sûrement écrire une meilleure interface utilisateur que les concepteurs de Word.
Hoffmann

Il y a une autre bonne citation similaire d'A. Einstein: "Rendez tout aussi simple que possible, mais pas plus simple." J'ai trouvé ces idées également applicables à la conception d'interface utilisateur: www.presentationzen.com. ... et +1
Pyry Jahkola

Saint-Exupéry était bien plus qu'un pilote et concepteur d'aéronefs; +1 pour l'avoir cité. Son livre pour enfants ("Le Petit Prince") mérite d'être lu, mais je m'éloigne ici du sujet.
David Thornley

5
Vous auriez dû sélectionner la vue d'impression ... vous ne pouvez pas voir les règles maintenant.
Mussnoon

16

Beaucoup de développeurs pensent que parce qu'ils peuvent écrire du code, ils peuvent tout faire. La conception d'une interface est une compétence complètement différente, et elle n'a pas été enseignée du tout lorsque j'ai fréquenté l'université. Ce n'est pas seulement quelque chose qui vient naturellement.

Un autre bon livre est The Design of Everyday Things de Donald Norman.


Merci, "The Design of Everyday Thinks" est sur ma liste de souhaits Amazon
Chris Ballance

+1. "La conception des choses de tous les jours" est également sur la liste Coding Horror de lecture recommandée (bonne liste de livres pour les développeurs). Je l'ai récemment lu et je le recommande vivement.
Mun

Je lis "La conception des choses de tous les jours" en ce moment - c'est certainement très bon, mais comme mentionné dans les commentaires sur une autre réponse, "Les détenus dirigent l'asile" d'Alan Cooper traite exactement de ce sujet. En tant que développeur, le livre a "changé la vie"!
Stuart Helwig

Ma bête noire: de nombreux développeurs (et designers, et autres) pensent que parce que je peux coder, je ne peux pas concevoir l'interface utilisateur. Je ne connais pas très bien Photoshop, mais je pense avoir un bon œil sur ce qui fonctionne et ce qui ne fonctionne pas. (La conception des choses de tous les jours était ma première bible d'interface utilisateur.)
Barry Brown

14

Il y a une énorme différence entre le design et l'esthétique, et ils sont souvent confondus.

Une belle interface utilisateur nécessite des compétences artistiques ou au moins esthétiques que beaucoup, y compris moi-même, sont incapables de produire. Malheureusement, cela ne suffit pas et ne rend pas l'interface utilisateur utilisable, comme nous pouvons le voir dans de nombreuses API basées sur le flash.

Pour produire des interfaces utilisateur utilisables, il faut comprendre comment les humains interagissent avec les ordinateurs, certains problèmes de psychologie (par exemple, la loi de Fitt, la loi de Hick) et d'autres sujets. Très peu de programmes CS s'y entraînent. Très peu de développeurs que je connais choisiront un livre de test utilisateur sur un livre JUnit, etc.

Beaucoup d'entre nous sont également des «programmeurs principaux», tendant à considérer les interfaces utilisateur comme la façade plutôt que comme un facteur qui pourrait faire ou défaire le succès de notre projet.

De plus, la plupart des expériences de développement d'interface utilisateur sont extrêmement frustrantes. Nous pouvons soit utiliser des constructeurs de GUI jouets comme les anciens VB et avoir à gérer un code de colle laid, soit utiliser des API qui nous frustrent sans fin, comme essayer de trier les mises en page dans Swing.


"Nous pouvons soit utiliser des constructeurs de GUI jouets comme les anciens VB et avoir à gérer un code de colle laid, soit utiliser des API qui nous frustrent sans fin, comme essayer de trier les dispositions dans Swing." Vous avez vraiment résumé mes expériences avec la construction de GUI. Si je peux ajouter: "ou une combinaison folle de DOM et CSS"
Hoffmann

Je suis sûr que tout le monde connaît Totally Gridbag? " madbean.com/anim/totallygridbag "
Uri

12

Allez sur Slashdot et lisez les commentaires sur tout article traitant d'Apple. Vous trouverez un grand nombre de personnes parlant de la façon dont les produits Apple n'ont rien de spécial, et attribuant le succès de l'iPod et de l'iPhone aux personnes qui tentent d'être à la mode ou branchées. Ils parcourent généralement les listes de fonctionnalités et soulignent qu'ils n'ont rien fait auparavant que les lecteurs MP3 ou les smartphones n'ont pas fait.

Ensuite, il y a des gens qui aiment l'iPod et l'iPhone parce qu'ils font ce que les utilisateurs veulent simplement et facilement, sans référence aux manuels. Les interfaces sont à peu près aussi intuitives que les interfaces, mémorisables et découvrables. Je ne suis pas aussi friands de l'interface utilisateur sur MacOSX que je l'étais sur les versions précédentes, je pense qu'ils ont abandonné une certaine utilité en faveur de paillettes, mais l'iPod et l'iPhone sont des exemples de conception superbe.

Si vous êtes dans le premier camp, vous ne pensez pas comme le fait la personne moyenne, et donc vous risquez de créer de mauvaises interfaces utilisateur parce que vous ne pouvez pas les distinguer des bonnes. Cela ne signifie pas que vous êtes sans espoir, mais plutôt que vous devez explicitement apprendre les bons principes de conception d'interface et comment reconnaître une bonne interface utilisateur (tout comme quelqu'un avec Asperger pourrait avoir besoin d'apprendre explicitement les compétences sociales). De toute évidence, le simple fait d'avoir une bonne interface utilisateur ne signifie pas que vous pouvez en créer une; mon appréciation pour la littérature, par exemple, ne semble pas s'étendre à la capacité (actuellement) d'écrire des histoires publiables.

Alors, essayez de développer un sens pour une bonne conception de l'interface utilisateur. Cela s'étend à plus qu'un simple logiciel. "La conception des choses de tous les jours" de Don Norman est un classique, et il existe d'autres livres. Obtenez des exemples de conceptions d'interface utilisateur réussies et jouez avec eux suffisamment pour avoir une idée de la différence. Reconnaissez que vous devrez peut-être apprendre une nouvelle façon de penser les choses et en profiter.


+1 pour suggestion The Design of Everyday Things
Oskar Duveborn

+1 pour une très bonne réponse. Je pense qu'il est révélateur que vous planiez toujours à 1 vote positif (maintenant 2); ceux qui correspondent à votre description n'y penseront probablement pas, ou rejetteront simplement l'idée même :-(
mghie

Ceci est une déclaration générale. Tous les commentaires anti-Apple sur Slashdot ne sont pas une critique de son interface utilisateur ou une vérification d'un manque de compréhension de l'interface utilisateur. Apple a une bonne interface utilisateur, tout comme bon nombre de ses concurrents.
Bernard Igiri

Une autre pensée: une pomme n'est pas pour tout le monde; par exemple, il ne fournit pas la puissance impressionnante phénoménale d'une CLI.
J. Polfer

2
Personnellement, je trouve les produits Apple extrêmement peu intuitifs à utiliser. J'imagine que je ne suis pas la seule personne frustrée lorsque leur premier iPod commençait à mélanger des chansons à chaque fois que je commençais à faire du jogging, ni pourquoi l'écran de l'iPhone s'inversait continuellement. Je pense que les choses ne devraient se produire que par des actions directes et sans ambiguïté des utilisateurs.
Lotus Notes

10

La principale règle empirique à laquelle je m'accroche n'est jamais d'essayer de faire les deux à la fois. Si je travaille sur du code back-end, je vais finir par le faire, faire une pause et revenir avec mon chapeau d'interface utilisateur. Si vous essayez de le travailler pendant que vous faites du code, vous l'aborderez avec le mauvais état d'esprit et vous vous retrouverez avec des interfaces horribles en conséquence.

Je pense qu'il est certainement possible d'être à la fois un bon développeur back-end et un bon concepteur d'interface utilisateur, il vous suffit de travailler dessus, de faire de la lecture et des recherches sur le sujet (tout, depuis Miller # 7, jusqu'aux archives de Nielsen), et de faire assurez-vous de comprendre pourquoi la conception de l'interface utilisateur est de la plus haute importance.

Je ne pense pas qu'il s'agisse de devoir être créatif, mais plutôt, comme le développement back-end, c'est une chose très méthodique, très structurée qui doit être apprise. Ce sont les gens qui deviennent «créatifs» avec les interfaces utilisateur qui créent certaines des plus grandes monstruosités d'utilisation ... Je veux dire, jetez un coup d'œil aux sites Web 100% Flash, pour commencer ...

Edit : le livre de Krug est vraiment bon ... lisez-le, surtout si vous allez concevoir pour le Web.


et quel est le titre du livre de ce krug
defau1t

@refhat Il était bien visible dans le post supérieur, donc je ne l'ai pas lié à l'époque, mais c'est celui-ci: librarything.com/work/12322
James B

8

Il y a plusieurs raisons à cela.

(1) Le développeur ne voit pas les choses du point de vue de l'utilisateur. C'est le suspect habituel: manque d'empathie. Mais ce n'est généralement pas vrai car les développeurs ne sont pas aussi étrangers que les gens le prétendent.

(2) Une autre raison, plus courante, est que le développeur étant si proche de ses propres trucs, étant resté avec ses trucs pendant si longtemps, ne se rend pas compte que ses trucs ne sont peut-être pas si familiers (un terme mieux qu'intuitif) à d'autres personnes .

(3) Encore une autre raison est que le développeur manque de techniques.

MA GRANDE RÉCLAMATION: lire n'importe quelle interface utilisateur, conception d'interface humaine, livre de prototypage. Par exemple, concevoir l'évident: une approche de bon sens pour la conception d'applications Web, ne me faites pas réfléchir: une approche de bon sens pour l'utilisabilité du Web, concevoir le moment, peu importe.

Comment discutent-ils des flux de tâches? Comment décrivent-ils les points de décision? Autrement dit, dans tous les cas d'utilisation, il existe au moins 3 chemins: succès, échec / exception, alternative.

Ainsi, à partir du point A, vous pouvez aller à A.1, A.2, A.3. À partir du point A.1, vous pouvez accéder à A.1.1, A.1.2, A.1.3, etc.

Comment montrent-ils un tel flux de tâches d'exploration vers le bas? Ils ne le font pas. Ils ne font que le masquer.

Étant donné que même les interfaces utilisateur n'ont pas de technique, les développeurs n'ont aucune chance. Il pense que c'est clair dans sa tête. Mais ce n'est même pas clair sur papier, encore moins clair dans la mise en œuvre logicielle.

Je dois utiliser mes propres techniques artisanales pour cela.


7

J'essaie de rester en contact avec des sites Web et des textes spécifiques au design. J'ai également trouvé l'excellent livre de Robin Williams The Non-Designer's Design Book très intéressant dans ces études.

Je crois que la conception et l'utilisabilité sont une partie très importante de l'ingénierie logicielle et nous devrions en apprendre davantage et cesser de donner des excuses que nous ne sommes pas censés faire de la conception.

Tout le monde peut être designer de temps en temps, tout comme tout le monde peut être programmeur.


Je ne suis pas d'accord pour dire que tout le monde peut être programmeur. Certains aspects du métier ne peuvent pas être enseignés, vous pouvez le pirater ou vous ne pouvez pas (sans jeu de mots.)
Chris Ballance

2
Je veux dire, de temps en temps, cela ne signifie pas que le gars sera un bon programmeur ou qu'il le sera pour toujours.
Edwin Jarvis

7

En abordant la conception de l'interface utilisateur, voici quelques-unes des choses que je garde à l'esprit tout au long (de loin pas une liste complète):

  • Communiquer un modèle . L'interface utilisateur est un récit qui explique un modèle mental à l'utilisateur. Ce modèle peut être un objet métier, un ensemble de relations, qu'avez-vous. L'importance visuelle, le placement spatial et l'ordre du flux de travail jouent tous un rôle dans la communication de ce modèle à l'utilisateur. Par exemple, un certain type de liste par rapport à un autre implique des choses différentes, ainsi que la relation de ce qui est dans la liste avec le reste du modèle. En général, je trouve préférable de m'assurer qu'un seul modèle est communiqué à la fois. Les programmeurs essaient fréquemment de communiquer plusieurs modèles, ou parties de plusieurs, dans le même espace d'interface utilisateur.

  • Cohérence . La réutilisation des métaphores d'interface utilisateur populaires aide beaucoup. La cohérence interne est également très importante.

  • Regroupement des tâches . Les utilisateurs ne devraient pas avoir à déplacer la souris tout le long de l'écran pour vérifier ou terminer une séquence de commandes connexe. Les dialogues modaux et les menus déroulants peuvent être particulièrement mauvais dans ce domaine.

  • Connaître votre public . Si vos utilisateurs effectuent les mêmes activités encore et encore, ils deviendront rapidement des utilisateurs expérimentés de ces tâches et seront frustrés par les tentatives d'abaisser la barrière d'entrée initiale. Si vos utilisateurs effectuent rarement différents types d'activités, il est préférable de s'assurer que l'interface utilisateur tient leur main tout le temps.


Vous faites ressortir un bon point avec Connaître votre public ... J'aime aussi «Tu n'es pas ton utilisateur» (Platt) et «Connais ton utilisateur» (Platt) Cela ne peut pas être assez souligné
Chris Ballance


5

Je trouve que le meilleur outil dans la conception d'interface utilisateur est d'observer une première tentative d'utilisation du logiciel par un utilisateur. Prenez beaucoup de notes et posez-leur quelques questions. Ne les dirigez jamais et ne tentez jamais d'expliquer le fonctionnement du logiciel. C'est le travail de l'interface utilisateur (et de la documentation bien écrite).

Nous adoptons systématiquement cette approche dans tous les projets. Il est toujours fascinant de voir un utilisateur gérer un logiciel d'une manière que vous n'avez jamais envisagée auparavant.

Pourquoi la conception de l'interface utilisateur est-elle si difficile? Eh bien généralement parce que le développeur et l'utilisateur ne se rencontrent jamais.


Absolument d'accord, mais il est tout à fait possible pour un développeur d'appliquer de solides principes de base de l'interface utilisateur.
nailitdown

Les principes de base solides de l'interface utilisateur ne fonctionnent pas dans tous les pays. Nous déployons des logiciels dans de nombreuses régions et il existe une grande différence dans la conception de l'interface utilisateur pour différentes parties du globe. Essayez d'envoyer votre application centrée sur les États-Unis en Chine un jour ...

5

duffymo m'a juste rappelé pourquoi: de nombreux programmeurs pensent que "* Design" == "Art".

Un bon design d'interface utilisateur n'est absolument pas artistique. Il suit des principes solides, qui peuvent être sauvegardés avec des données si vous avez le temps de faire la recherche.

Je pense que tous les programmeurs doivent faire est de prendre le temps d'apprendre les principes. Je pense qu'il est dans notre nature d'appliquer les meilleures pratiques chaque fois que nous le pouvons, que ce soit en code ou en mise en page. Tout ce que nous devons faire, c'est nous rendre compte des meilleures pratiques pour cet aspect de notre travail.


Je pense que vous ne pouvez pas complètement ignorer l'esthétique. Peut-être qu'une interface utilisateur laide peut être tout aussi utilisable qu'une jolie, mais ce n'est pas tout ce à quoi sert une interface utilisateur. Après tout, l'interface utilisateur est le visage de votre programme, tout comme la couverture d'un livre: les gens sont beaucoup plus susceptibles de choisir un programme avec une jolie interface utilisateur.
Tikhon Jelvis

Absolument, l'esthétique est importante, mais c'est la conception graphique, pas la conception d'interface utilisateur.
nailitdown

5

Qu'est-ce que j'ai fait pour devenir meilleur en conception d'interface utilisateur?
Faites-y attention!

C'est comme à chaque fois que vous voyez un graphique dans les actualités ou un panneau de bus électronique et que vous vous demandez «Comment ont-ils obtenu ces données? Ont-ils fait cela avec SQL brut ou utilisent-ils LINQ? ' (ou insérez votre propre curiosité geek commune ici).

Vous devez commencer à le faire, mais avec des éléments visuels de toutes sortes.

Mais tout comme pour apprendre une nouvelle langue, si vous ne vous y lancez pas vraiment , vous ne l'apprendrez jamais.

Tiré d' une autre réponse, j'ai écrit:

Apprenez à regarder, regardez vraiment, le monde qui vous entoure. Pourquoi j'aime cette interface utilisateur mais je déteste celle-ci? Pourquoi est-il si difficile de trouver les plats de nouilles dans ce menu de restaurant? Wow, je savais ce que signifiait ce signe avant même de lire les mots. Pourquoi ça? Comment se fait-il que la couverture du livre soit si mauvaise? Apprenez à prendre le temps de réfléchir aux raisons pour lesquelles vous réagissez comme vous le faites aux éléments visuels de toutes sortes, puis appliquez-les à votre travail.


+1 pour les conseils zen sur l'apprentissage du regard et de la réflexion. Très peu de gens se demandent ce qui leur semble.
PlagueHammer

5

Quelle que soit la façon dont vous le faites (et il y a quelques bons points ci-dessus), cela m'a vraiment aidé une fois que j'ai accepté qu'il n'y a PAS UNE TELLE CHOSE COMME INTUITIVE ....

Je peux entendre les arguments gronder à l'horizon ... alors laissez-moi vous expliquer un peu.

Intuitif: utiliser ce que l'on ressent comme étant vrai ou vrai basé sur une méthode ou un sentiment inconscient.

Si (comme Carl Sagan l'a postulé) vous acceptez que vous ne pouvez pas comprendre des choses qui ne ressemblent absolument à rien de ce que vous avez jamais rencontré, alors comment pourriez-vous "savoir" comment utiliser quelque chose si vous n'avez jamais utilisé quelque chose comme ça à distance?

Pensez-y: les enfants essaient d'ouvrir les portes non pas parce qu'ils "savent" comment fonctionne une poignée de porte, mais parce qu'ils ont vu quelqu'un d'autre le faire ... souvent, ils tournent le bouton dans la mauvaise direction ou tirent trop tôt. Ils doivent APPRENDRE comment fonctionne une poignée de porte. Cette connaissance est ensuite appliquée dans des cas différents mais similaires: ouvrir une fenêtre, ouvrir un tiroir, ouvrir presque n'importe quoi de grand avec une grosse poignée en forme de bouton.

Même des choses simples qui nous semblent intuitives ne le seront pas du tout pour les gens d'autres cultures. Si quelqu'un a tendu son bras devant lui et a renoncé sa main de haut en bas au poignet tout en gardant le bras immobile ... vous renonce-t-il? Probablement, sauf si vous êtes au Japon. Là, ce signal peut signifier "viens ici". Alors, qui a raison? Les deux, bien sûr, dans leur propre contexte. Mais si vous voyagez vers les deux, vous devez connaître les deux ... la conception de l'interface utilisateur.

J'essaie de trouver les choses qui sont déjà "familières" aux utilisateurs potentiels de mon projet, puis je construis l'interface utilisateur autour d'eux: la conception centrée sur l'utilisateur.

Jetez un œil à l'iPhone d'Apple. Même si vous le détestez, vous devez respecter la quantité de pensée qui y est entrée. C'est parfait? Bien sûr que non. Au fil du temps, "l'intuitivité" perçue d'un objet peut croître ou même disparaître complètement.

Par exemple. Presque tout le monde sait qu'une bande de noir avec deux rangées de trous en haut et en bas ressemble à une bande de film ... ou pas?

Demandez à votre enfant de 9 ou 10 ans en moyenne ce qu'il pense que c'est. Vous serez peut-être surpris du nombre d'enfants qui auront du mal à l'identifier en tant que bande de film, même si c'est quelque chose qui est encore utilisé pour représenter Hollywood, ou quoi que ce soit lié à un film (film). La plupart des films des 20 dernières années ont été tournés numériquement. Et à quand remonte la dernière fois où l'un de nous a tenu un film de toute nature, des photos ou un film?

Donc, pour moi, tout cela se résume à: connaître votre public et rechercher constamment pour suivre les tendances et les changements dans les choses "intuitives", cibler vos principaux utilisateurs et essayer de ne pas faire des choses qui punissent les inexpérimentés en faveur de les utilisateurs avancés ou ralentir les utilisateurs avancés afin de tenir les novices à la main.

En fin de compte, chaque programme nécessitera une certaine formation de la part de l'utilisateur pour l'utiliser. Quelle quantité de formation et pour quel niveau d'utilisateur fait partie des décisions à prendre.

Certaines choses sont plus ou moins familières en fonction du niveau d'expérience passé de votre utilisateur cible en tant qu'être humain, ou utilisateur d'ordinateur, ou étudiant, ou autre.

Je tire juste pour la partie la plus grasse de la courbe en cloche et j'essaie de rassembler autant de personnes que possible, mais en réalisant que je ne plairai jamais à tout le monde ....


4

Je sais que Microsoft est plutôt incompatible avec leurs propres directives, mais j'ai trouvé que la lecture de leurs directives de conception Windows m'a vraiment aidé. J'ai une copie sur mon site Web ici , faites défiler un peu le Vista UX Guide. Cela m'a aidé avec des choses comme les couleurs, l'espacement, les mises en page et plus encore.


+1 en lisant les directives de conception de la plate-forme est certainement quelque chose que l'on devrait faire (et découvrir à quelle fréquence Microsoft enfreint ses propres règles;)
Oskar Duveborn

Et en plus, lisez celles d'Apple (Human Interface Guidelines). Ils ont plus de bases et de principes en eux. Cela vous fait comprendre ce qui devrait être universel et ce qui est spécifique à la plate-forme
Stephan Eggermont

Et pendant que vous y êtes, lisez également le GNOME HIG. Entre ces trois, il commence à devenir visible ce qui n'est qu'une chose spécifique d'une plate-forme unique, et ce qui semble être une bonne idée en général.
mghie

La plupart d'entre eux sont basés sur des IBM, mais cela n'est plus à jour maintenant. Par exemple, les commandes standard de copier-coller étaient Shift + Del et Shift + Ins (elles fonctionnent toujours, btw).
Simon Buchan

4

Je crois que le problème principal n'a rien à voir avec différents talents ou compétences. Le problème principal est qu'en tant que développeur, vous en savez trop sur ce que fait l'application et comment elle le fait, et vous concevez automatiquement votre interface utilisateur du point de vue de quelqu'un qui possède ces connaissances.

Alors qu'un utilisateur commence généralement par ne rien savoir de l'application et ne devrait jamais avoir besoin d'apprendre quoi que ce soit sur son fonctionnement interne.

Il est très difficile, presque impossible, de ne pas utiliser les connaissances que vous avez - et c'est pourquoi une interface utilisateur ne doit pas être conçue par quelqu'un qui développe l'application derrière elle.


4

"Concevoir des deux côtés de l'écran" présente une raison très simple mais profonde expliquant pourquoi les programmeurs trouvent difficile la conception d'interface utilisateur: les programmeurs sont formés pour penser en termes de cas marginaux tandis que les concepteurs d'interface utilisateur sont formés pour penser en termes de cas courants ou d'utilisation.

Ainsi, passer d'un monde à l'autre est certainement difficile si la configuration par défaut dans l'un ou l'autre est exactement l'opposé de l'autre.


3

Dire que les programmes craignent la conception de l'interface utilisateur, c'est manquer le point. Le point du problème est que la formation formelle que la plupart des développeurs reçoivent va au fond de la technologie. L'interaction homme-ordinateur n'est pas un sujet simple. Ce n'est pas quelque chose que je peux vous «rapprocher» en vous fournissant une simple déclaration d'une ligne qui vous fait réaliser «oh les utilisateurs utiliseront cette application plus efficacement si je fais x au lieu de y».

En effet, il manque une partie de la conception de l'interface utilisateur. Le cerveau humain. Pour comprendre comment concevoir une interface utilisateur, vous devez comprendre comment l'esprit humain interagit avec les machines. Il y a un excellent cours que j'ai suivi à l'Université du Minnesota sur ce sujet, enseigné par un professeur de psychologie. Il est nommé "Interaction homme-machine". Cela décrit plusieurs des raisons pour lesquelles la conception de l'interface utilisateur est si compliquée.

Étant donné que la psychologie est basée sur les corrélations et non sur la causalité, vous ne pouvez jamais prouver qu'une méthode de conception d'interface utilisateur fonctionnera toujours dans une situation donnée. Vous pouvez corréler le fait que de nombreux utilisateurs trouveront une conception d'interface utilisateur particulière attrayante ou efficace, mais vous ne pouvez pas prouver qu'elle généralisera toujours.

De plus, la conception de l'interface utilisateur comporte deux parties que de nombreuses personnes semblent manquer. Il y a l'attrait esthétique et le flux de travail fonctionnel. Si vous optez pour un attrait 100% esthétique, les gens seront sûrs de votre produit. Je doute fortement que l'esthétique réduise cependant la frustration des utilisateurs.

Il y a plusieurs bons livres sur ce sujet et des cours à suivre (comme Sketching User Experiences de Bill Buxton et Cognition in the Wild par Edwin Hutchins). Il existe des programmes d'études supérieures sur l'interaction homme-machine dans de nombreuses universités.

La réponse globale à cette question réside cependant dans la manière dont les individus apprennent l'informatique. Tout est basé sur les mathématiques, la logique et non sur l'expérience utilisateur. Pour l'obtenir, vous avez besoin de plus qu'un diplôme générique en informatique de 4 ans (sauf si votre diplôme en informatique de 4 ans avait une mineure en psychologie et a été souligné dans l'interaction homme-machine).


Je ne suis pas d'accord: les ordinateurs sont basés sur les mathématiques et la logique, par leur nature. Tout enseignement de la programmation informatique doit être basé sur les mathématiques et la logique.
Paul Nathan

1
Oui, tu as raison Paul. Les ordinateurs sont des mathématiques et de la logique. La conception de l'interface utilisateur implique cependant un élément humain, qui s'est avéré dans l'histoire beaucoup moins basé sur les mathématiques et la logique.
jwendl

Ce n'est pas tant qu'ils sont moins basés sur les mathématiques et la logique, c'est que les mathématiques et la logique derrière eux sont beaucoup plus complexes, surtout au-delà de quiconque aujourd'hui. Cela dit, je parie que les bonnes conceptions d'interface utilisateur sont toutes, dans une certaine mesure, basées sur la géométrie.
Tikhon Jelvis

2

Tournons votre question -

Les «concepteurs d'interface utilisateur» sont-ils voués à ne concevoir que des couches d'architecture et de présentation des informations? Y a-t-il quelque chose qu'ils peuvent faire pour recycler leur cerveau afin d'être plus efficace dans la conception de couches système agréables et efficaces?

Il semble que les «concepteurs d'interface utilisateur» devraient adopter une perspective complètement différente - ils devraient regarder de l'intérieur de la boîte vers l'extérieur; au lieu de regarder de l'extérieur de la boîte.

Selon Alan Cooper, «Les détenus dirigent l'asile» , nous ne pouvons pas réussir à adopter les deux perspectives - nous pouvons apprendre à bien porter un chapeau, mais nous ne pouvons pas simplement changer de chapeau.


2

Je pense que c'est parce qu'une bonne interface utilisateur n'est pas logique. Une bonne interface utilisateur est intuitive.

Les développeurs de logiciels font généralement du mal sur "intuitif"


Excellent point, nécessite l' autre côté du cerveau
Chris Ballance

Il n'y a rien d'intuitif pour l'interface utilisateur. Il est similaire à ce que je sais déjà, mais c'est quelque peu différent.
Stephan Eggermont

Rien n'est "intuitif" tout s'apprend. Intuitif est un mot lancé par les gens d'affaires pour faire transpirer les programmeurs.
Bernard Igiri

parlé comme un vrai programmeur ... et c'est alors la racine du problème.
Gregor Brandt

@gbrandt Intuitive est une combinaison "familière" et "simple". C'est toujours un objectif à atteindre. La difficulté de l'utilisabilité est que ce qui est intuitif pour certains n'est pas nécessairement intuitif pour d'autres. @Stephan a raison: "intuitif" n'est pas un "fait" dur, c'est relatif à l'utilisateur.
TM.

2

Un cadre utile consiste à considérer activement ce que vous faites comme la conception d'un processus de communication. Dans un sens très réel, votre interface est un langage que l'utilisateur doit utiliser pour dire à l'ordinateur quoi faire. Cela conduit à considérer un certain nombre de points:

  1. L'utilisateur parle-t-il déjà cette langue? Utiliser une interface hautement idiosyncratique, c'est comme communiquer dans une langue que vous n'avez jamais parlée auparavant. Donc, si votre interface doit être idiosyncratique, il vaut mieux se présenter avec les termes les plus simples et quelques distractions. D'un autre côté, si votre interface utilise des idiomes auxquels l'utilisateur est habitué, ils gagneront en confiance dès le départ.
  2. L'ennemi de la communication est le bruit. Le bruit auditif interfère avec la communication parlée; le bruit visuel interfère avec la communication visuelle. Plus vous pouvez couper le bruit de votre interface, plus la communication avec celle-ci sera facile.
  3. Comme dans la conversation humaine, ce n'est souvent pas ce que vous dites, c'est la façon dont vous le dites. La façon dont la plupart des logiciels communiquent est désagréable à un degré qui les ferait frapper au visage si c'était une personne. Comment vous sentiriez-vous si vous posiez une question à quelqu'un et que celui-ci restait assis et vous fixait pendant plusieurs minutes, refusant de répondre autrement, avant de répondre? De nombreux éléments d'interface, comme les barres de progression et la sélection automatique du focus, ont la fonction fondamentale de la politesse. Demandez-vous comment rendre la journée de l'utilisateur un peu plus agréable.

Vraiment, il est quelque peu difficile de déterminer ce que les programmeurs pensent de l'interaction d'interface comme étant autre qu'un processus de communication, mais peut-être que le problème est qu'on ne le pense pas du tout.


2

Il y a déjà beaucoup de bons commentaires, donc je ne suis pas sûr de pouvoir ajouter grand-chose. Mais reste...

  • Pourquoi un développeur s'attend-il à pouvoir concevoir une bonne interface utilisateur?
  • Quelle formation avait-il dans ce domaine?
  • Combien de livres a-t-il lu?
  • Combien de choses a-t-il conçues pendant combien d'années?
  • At-il eu l'occasion de voir la réaction de ses utilisateurs?

Nous ne nous attendons pas à ce qu'un "Joe le plombier" aléatoire puisse écrire du bon code. Alors, pourquoi nous attendrions-nous à ce que le "Joe le programmeur" aléatoire conçoive une bonne interface utilisateur?

L'empathie aide. La séparation de la conception de l'interface utilisateur et de la programmation est utile. Les tests d'utilisabilité aident.

Mais la conception de l'interface utilisateur est un métier qui doit être appris et pratiqué, comme tout autre.


Exactement ce que je pensais, comment le "développeur" est-il lié au "Concepteur d'interface utilisateur" ??
Jorge Córdoba

@Jorge voici maintenant que cela se rapporte: beaucoup de développeurs doivent concevoir des interfaces utilisateur pour leurs employeurs, même s'ils ne sont pas des concepteurs. Dans ma société, nous n'avons AUCUN artiste. Nos applications n'ont pas l'air trop mal. Dans ce cas, vous devez avoir des critiques de groupe et des trucs pour vous assurer que le design est bien.
TM.

@TM: le design n'est pas nécessairement le design UI / UX. Bien sûr, cela pourrait bien paraître, mais cela ne signifie pas que cela fonctionne bien .
Kevin Peno

2

Les développeurs ne sont pas (nécessairement) bons en conception d'interface utilisateur pour la même raison qu'ils ne sont pas (nécessairement) bons en tricot; c'est difficile, il faut de la pratique, et ça ne fait pas de mal d'avoir quelqu'un qui vous montre comment en premier lieu.

La plupart des développeurs (moi y compris) ont commencé à "concevoir" des interfaces utilisateur parce que c'était une partie nécessaire de l'écriture de logiciels. Tant qu'un développeur ne fera pas l'effort de réussir, il ne le sera pas.


2

Pour améliorer, regardez simplement les sites existants. En plus des livres déjà suggérés, vous aimerez peut-être jeter un œil à l'excellent livre de Robin Williams "The Non-designers Design Book" ( lien Amazon aseptisé )

Jetez un œil à ce qui est possible dans la conception visuelle en jetant un coup d'œil aux différentes soumissions au Zen Garden .

La conception de l'interface utilisateur est certainement un art, comme les pointeurs en C, certaines personnes l'obtiennent et d'autres non.

Mais au moins, nous pouvons avoir un petit rire à leurs tentatives . BTW Merci OK / Annuler pour une bande dessinée amusante et merci Joel de l'avoir mise dans votre livre "The Best Software Writing I" ( lien Amazon aseptisé ).


2

L'interface utilisateur n'est pas quelque chose qui peut être appliqué après coup, comme une fine couche de peinture. C'est quelque chose qui doit être là au début et basé sur de vraies recherches. Il y a bien sûr des tonnes de recherches sur l'utilisabilité. Il ne doit pas seulement être là au début, il doit être au cœur de la raison même pour laquelle vous créez le logiciel en premier lieu: il y a un écart dans le monde, un problème et il doit être créé plus utilisable et plus efficace.

Le logiciel n'est pas là pour lui-même. La raison pour laquelle un morceau de logiciel existe est POUR LES PERSONNES. Il est absolument ridicule d'essayer même de trouver une idée pour un nouveau morceau de logiciel, sans comprendre pourquoi quelqu'un en aurait besoin. Pourtant, cela arrive tout le temps.

Avant d'écrire une seule ligne de code, vous devez parcourir les versions papier de l'interface et la tester sur de vraies personnes. C'est un peu bizarre et idiot, cela fonctionne mieux avec les enfants et avec quelqu'un de divertissant agissant comme "l'ordinateur".

L'interface doit tirer parti de nos installations cognitives naturelles. Comment un homme des cavernes utiliserait-il votre programme? Par exemple, nous avons évolué pour être vraiment bons pour suivre les objets en mouvement. C'est pourquoi les interfaces qui utilisent des simulations physiques, comme l'iphone, fonctionnent mieux que les interfaces où les changements se produisent instantanément.

Nous sommes bons dans certains types d'abstraction, mais pas dans d'autres. En tant que programmeurs, nous sommes formés pour faire de la gymnastique mentale et des backflips pour comprendre certaines des abstractions les plus étranges. Par exemple, nous comprenons qu'une séquence de texte obscur peut représenter et être traduite en un motif d'état électromagnétique sur un plateau métallique, qui, lorsqu'il est rencontré par un appareil soigneusement conçu, conduit à une séquence d'événements invisibles qui se produisent à la vitesse de la lumière sur un appareil électronique. circuit, et ces événements peuvent être dirigés pour produire un résultat utile. C'est une chose incroyablement peu naturelle à comprendre. Comprenez que même si nous avons une explication parfaitement rationnelle pour nous, pour le monde extérieur, il semble que nous écrivions des incantations incompréhensibles pour invoquer des esprits sensibles invisibles pour faire notre offre.

Les sortes d'abstractions que les humains normaux comprennent sont des choses comme des cartes, des diagrammes et des symboles. Méfiez-vous des symboles, car les symboles sont un concept humain très fragile qui nécessite un effort mental conscient pour être décodé, jusqu'à ce que le symbole soit appris.

L'astuce avec les symboles est qu'il doit y avoir une relation claire entre le symbole et la chose qu'il représente. La chose qu'il représente doit être soit un nom, auquel cas le symbole doit ressembler TRÈS BEAUCOUP à la chose qu'il représente. Si un symbole représente un concept plus abstrait, cela doit être expliqué À L'AVANCE. Voir les icônes impénétrables et impénétrables dans la barre d'outils de msword ou photoshop et les concepts abstraits qu'ils représentent. Il faut APPRENDRE que l'icône de l'outil de recadrage dans Photoshop signifie CROP TOOL. il faut comprendre ce que CROP signifie même. Ce sont des conditions préalables pour utiliser correctement ce logiciel. Ce qui soulève un point important, méfiez-vous des connaissances ASSUMÉES.

Nous gagnons seulement la capacité de comprendre les cartes vers l'âge de 4 ans. Je pense avoir lu quelque part une fois que les chimpanzés ont la capacité de comprendre les cartes vers l'âge de 6 ou 7 ans.

La raison pour laquelle les guis ont si bien réussi au début, c'est qu'ils ont changé un paysage d'interfaces principalement textuelles avec les ordinateurs, en quelque chose qui a mappé les concepts informatiques à quelque chose qui ressemblait à un lieu physique. Là où les guis échouent en termes de convivialité, c'est là qu'ils cessent de ressembler à quelque chose que vous verriez dans la vraie vie. Il y a des choses invisibles, imprévisibles et incompréhensibles qui se produisent dans un ordinateur qui ne ressemblent à rien de ce que vous verriez dans le monde physique. Une partie de cela est nécessaire, car il ne servirait à rien de faire un simulateur de réalité - L'idée est de gagner du travail, donc il doit y avoir un peu de magie. Mais cette magie doit avoir un sens et être fondée sur une abstraction que les êtres humains sont bien adaptés à la compréhension. C'est quand nos abstractions commencent à devenir profondes et superposées, et incompatibles avec la tâche à accomplir que les choses s'effondrent. En d'autres termes, l'interface ne fonctionne pas comme une bonne carte pour le logiciel sous-jacent.

Il y a beaucoup de livres. Les deux que j'ai lus et que je peux donc recommander sont "The Design of Everyday Things" de donald norman et "The Human Interface" de Jef Raskin.

Je recommande également un cours de psychologie. "La conception des choses de tous les jours" en parle un peu. De nombreuses interfaces tombent en panne à cause de la «compréhension populaire» de la psychologie par un développeur. Ceci est similaire à la "physique populaire". Un objet en mouvement reste en mouvement n'a pas de sens pour la plupart des gens. "Vous devez continuer à le pousser pour le maintenir en mouvement!" pense le novice en physique. Les tests utilisateurs n'ont pas de sens pour la plupart des développeurs. "Vous pouvez simplement demander aux utilisateurs ce qu'ils veulent, et cela devrait être suffisant!" pense le novice en psychologie.

Je recommande Discovering Psychology, une série documentaire PBS, animée par Philip Zimbardo. À défaut, essayez de trouver un bon manuel de physique. Le genre cher. Pas la merde d'auto-assistance de pulp fiction que vous trouvez dans Borders, mais les trucs épais et reliés que vous ne pouvez trouver que dans une bibliothèque universitaire. Il s'agit d'une fondation nécessaire. Vous pouvez faire une bonne conception sans cela, mais vous n'aurez qu'une compréhension intuitive de ce qui se passe. La lecture de bons livres vous donnera une bonne perspective.


2

Si vous aviez lu le livre "Pourquoi le logiciel craint", vous auriez vu la réponse de Platt, qui est simple:

  1. Les développeurs préfèrent contrôler la convivialité
  2. Les gens préfèrent la convivialité à la maîtrise

Mais une autre autre réponse à votre question serait "pourquoi la dentisterie est-elle si difficile pour certains développeurs?" - La conception de l'interface utilisateur est mieux réalisée par un concepteur d'interface utilisateur.

http://dotmad.net/blog/2007/11/david-platt-on-why-software-sucks/

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.