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?
user-interface
Chris Ballance
la source
la source
Réponses:
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;)
la source
La conception de l'interface utilisateur est difficile
À la question:
Essayez de poser la question inverse:
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:
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:
C'est la différence essentielle entre ces 2 groupes - entre développeurs et designers:
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.
la source
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
la source
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.
la source
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.
la source
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.
la source
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.
la source
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.
la source
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.
la source
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.
la source
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.
la source
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.
la source
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.
la source
Lisez les instructions relatives à l'interface humaine Apple .
la source
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.
la source
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.
la source
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:
la source
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 ....
la source
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.
la source
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.
la source
"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.
la source
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).
la source
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.
la source
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"
la source
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:
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.
la source
Il y a déjà beaucoup de bons commentaires, donc je ne suis pas sûr de pouvoir ajouter grand-chose. Mais reste...
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.
la source
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.
la source
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é ).
la source
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.
la source
Si vous aviez lu le livre "Pourquoi le logiciel craint", vous auriez vu la réponse de Platt, qui est simple:
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/
la source