为什么好的UIdevise对于一些开发者来说太难了?

我们中的一些人在UIdevise( 尤其是我自己 )的柔和方面面临困难。 “后端编码器”是否注定只devise业务逻辑和数据层? 我们可以做些什么来重新训练我们的大脑 ,以便在devise令人愉悦和有用的表示层时更有效?

同事们推荐了几本书,包括网站的devise不要让我想为什么软件很烂 ,但我想知道别人怎样去除这方面的不足?

我直接说:

在这方面的改进不是以准则开始的。 首先重新思考如何思考软件。

大多数核心开发人员几乎不会同意他们软件的用户。 他们不知道用户如何思考,用户如何build立他们使用的软件模型,以及他们如何使用计算机。

当一个专家与外行碰撞时,这是一个典型的问题:一个普通人到底怎么会这么笨,不知道十年前专家的理解?

对于几乎所有有经验的开发者来说,首先要承认的事实难以置信的是:

正常人的软件概念与你有很大不同。 他们不知道编程。 没有。 零。 而他们甚至不在乎。 他们甚至不认为他们必须关心。 如果你强迫他们,他们会删除你的程序。

现在对开发者来说这是难以置信的苛刻。 他为自己生产的软件感到自豪。 他喜欢每一个特点。 他可以确切地告诉你它背后的代码是如何工作的。 也许他甚至发明了一个令人难以置信的聪明的algorithm,使其工作速度比以前快了50%。

而用户不在乎。

真是个傻瓜。

许多开发人员不能忍受普通用户的工作。 他们因对技术的不了解而感到沮丧。 这就是为什么大多数开发人员回避,并认为用户必须是白痴。

他们不是。

如果软件开发商购买汽车,他期望它运行顺利。 他通常不会在意轮胎的压力,机械的微调对于这样的跑步非常重要。 在这里,他不是专家。 如果他买了一辆没有调整好的汽车,他就把它还给他,然后买一个他想做的。

许多软件开发者喜欢电影。 做得好的电影引发了他们的想象力。 但他们不是制作电影,制作视觉效果或编写好的电影剧本的专家。 大多数书呆子在演戏中非常非常糟糕,因为这些都是关于performance复杂的情绪,而很less涉及分析。 如果一个开发者观看一部糟糕的电影,他只是注意到它整体上是坏的。 书呆子甚至build立了IMDB来收集关于好电影和坏电影的信息,以便他们知道要观看哪些和要避免哪些。 但他们不是创造电影的专家。 如果电影不好,他们不会去看电影(或不从BitTorrent下载);

所以归结为:作为专家来回避普通用户是无知的。 因为在那些不是专家的地方(而且有这么多),他们期望其他地区的专家已经想到正常的人使用他们的产品或服务。

你能做些什么来补救? 你作为一个程序员越是硬核,对普通用户的思考就越less。 对你来说,这将是陌生的和无知的。 你会想:我无法想象人们如何能够用这种缺乏知识的电脑。 但他们可以。 对于每个UI元素,请考虑一下:是否有必要? 它适合用户对我的工具的概念吗? 我怎样才能让他明白? 请阅读可用性这个,有很多好书。 这也是一个科学的整个领域。

啊,在你说之前,是的,我是一个苹果粉丝;)

UIdevise很难

对于这个问题:

为什么大多数开发者的UIdevise如此困难呢?

试着问相反的问题:

为什么编程对于大多数UIdevise师来说太难了?

编写UI和deviseUI需要不同的技能和不同的思维方式。 对于大多数开发人员来说,UIdevise是困难的,而不是一些开发人员,就像大多数devise师,而不是一些devise师,写代码是困难的。

编码很难。 devise也很难。 很less有人做得很好。 好的UIdevise师很less写代码。 他们甚至可能不知道如何,但他们仍然是优秀的devise师。 那么为什么优秀的开发人员会为UIdevise负责呢?

了解更多有关UIdevise的知识将使您成为更好的开发人员,但这并不意味着您应该对UIdevise负责。 对于devise者来说,情况正好相反:知道如何编写代码会使他们成为更好的devise师,但这并不意味着他们应该负责UI的编码。

如何在UIdevise中变得更好

对于希望在UIdevise中更好的开发人员,我有三条基本的build议:

  1. 将devise视为一项单独的技能 。 编码和devise是分开的但相关的。 UIdevise不是编码的一个子集。 它需要不同的思维模式,知识基础和技能组合。 那里有人专注于UIdevise。
  2. 了解devise 。 至less有一点点。 尝试从下面的长列表中学习一些devise概念和技术。 如果你更雄心勃勃,请阅读一些书籍,参加会议,上课,获得学位。 有很多方法来学习devise。 Joel Spolky的关于UIdevise的书对于开发者来说是一个很好的入门书 ,但是还有更多的东西,那就是devise师进入这个世界的地方。
  3. 与devise师合作 。 好的devise师,如果可以的话。 做这项工作的人有各种各样的头衔。 今天,最常见的标题是用户体验devise师(UXD),信息架构师(IA),交互devise师(ID)和可用性工程师。 他们会像您考虑代码一样思考devise。 你可以从他们身上学到很多东西,而他们则从你身上学习。 与他们合作,但你可以。 在你的公司find有这些技能的人。 也许你需要雇用一个人。 或者参加一些会议,参加networking研讨会,花时间在UXD / IA / ID领域。

这里有一些你可以学习的具体的东西。 不要试图学习一切 。 如果你知道下面的一切,你可以称自己为交互devise师或信息架构师。 从靠近列表顶部的东西开始 。 注重具体的概念和技巧。 然后向下移动分支。 如果你真的喜欢这个东西,可以把它当作职业道路。 许多开发人员进入pipe理,但用户体验devise是另一种select。

  • 学习基本的devise概念 。 您应该了解可供性,可见性,反馈,映射,Fitt定律,poka-yokes等等。 我推荐阅读“日常生活的devise” (Don Norman)和“devise的普遍原则” (Lidwell,Holden&Butler)
  • 了解用户体验 。 这正成为网站,应用程序和任何其他数字工件的以人为本的devise的总称。 这里的经典入门是用户体验 (Jesse James Garrett) 的元素 。 你可以从作者的网站上得到一个概述和前几章 。
  • 学习草图devise 。 草图绘制是探索devise选项并find正确devise的快速方法,而可用性testing则是关于如何正确devisedevise。 在早期的devise阶段,纸质原型是快速,廉价和有效的。 比编码数字原型快得多。 这里的关键是草图用户体验:devise正确和devise正确 ( Bill Buxton )。 与IA / ID / UXdevise人员一起工作时,素描是一项特别有用的技能。 您的协作将会更有效。 有关devise师草图如何和为何的一个很好的入门,请观看演示如何成为 2008年IA峰会的 Leah Buley 的UX小组 。
  • 学习纸张原型 。 在编写代码之前迭代testing接口的最快方法。 与素描和可用性testing不同。 这里的权威书籍是纸原型 (Carolyn Snyder)。 你可以从尼尔森诺曼集团那里得到一个很好的DVD。
  • 学习可用性testing 。 折扣testing简单而有效。 但是对于很多UI来说,可用性很难做好。 您可以快速学习基础知识,但可用性好的人是非常宝贵的。 如果你想要一本书,经典的是“可用性testing手册” (Jeffrey Rubin)。 它比较老,但提供了基于实验室的testing的全面覆盖。 着名的首发书是不要让我想(第二版) (史蒂夫克鲁格)。 我告诫人们关于这个问题:Krug使声音变得比现在容易。 但这是一个很好的起点。 下面列出的用户研究书籍也涵盖了这个话题。 你可以在网上find它的桩。
  • 了解信息体系结构 。 这里的主要书籍是万维网的信息体系结构(第3版) (Louis Rosenfeld&Peter Morville)。 一本好的起始书是信息架构:networking蓝图 (Christina Wodtke)。 如需更多信息 ,请访问信息体系结构研究所或参加年度信息体系结构峰会
  • 了解交互devise 。 这里的主要书籍是“交互devise要点”(第3版) (Alan Cooper )。 一个好的起始书是devise交互 (丹Saffer)。 欲了解更多信息,请访问互动devise协会(IxDA)或参加年度互动devise会议 。
  • 了解平面devise的基本原理 。 平面devise不是UIdevise,但是平面devise的概念可以改善界面。 平面devise引入了视觉呈现信息的devise原则,如接近度,alignment和小倍数。 我推荐阅读非devise师的devise书 (Robin Williams)和构想信息 (Edward Tufte)
  • 学习做用户研究 。 在可用性testing界面中,用户研究尝试通过angular色,场景,用户旅程和其他文档来模拟用户及其任务。 这是关于理解用户和他们做什么,然后用它来通知devise而不是猜测。 一些技巧是面试,调查,日记研究和购物车整理。 关于这方面的好书是观察用户体验 (Mike Kuniavsky)和了解你的用户 (勇气和巴克斯特)
  • 学习做实地调查 。 在人工条件下观察实验室中的人员有助于(即:可用性),但是没有任何事情像观察人们在上下文中使用您的代码:他们的家,他们的办公室或他们使用它的任何地方。 以各种名字,包括民族志,实地研究和情境调查。 这里是一个很好的现场研究入门 。 其中两本较为着名的书籍是快速上下文devise (Karen Holtzblatt 等人 )和用于界面devise的用户和任务分析 (Hackos&Redish)。
  • 阅读UXdevise网站 。 其中一些重要的是Boxes&Arrows , UX Mag , UX Matters和Digital Web magazine 。
  • 使用UI模式库 。 有接口模式。 对于网站,我推荐“网站devise”,第二版 (Van Duyne )和主页可用性:解构50个网站 (Jakob Nielsen&Marie Tahir)。 对于桌面应用程序,我推荐devise界面 (Jennifer Tidwell),而对于Web应用程序,我推荐deviseWeb界面:原则和丰富交互模式 (Bill Scott&Theresa Neil)。 在线您应该检查Welie模式库 , UI模式和Web UI模式 。
  • 参加UXdevise会议 。 一些好的年度会议是: 信息架构峰会 , 互动'09(IxDA) , 用户界面和用户 体验周 。
  • 参加研讨会或networking研讨会 。 您可以参加研讨会,networking研讨会和在线课程。 这还不是一个完整的列表,但您可以尝试Rosenfeld Media的UIE虚拟研讨会 , Adaptive Path虚拟研讨会和UXnetworking研讨会 。
  • 获得学位 。 HCI的研究生学位是一种方法,但这些scheme主要是关于编写代码。 如果你想了解数字工件和设备的devise,那么你需要一个不在CS的研究生课程。 一些select包括卡内基梅隆 大学的 交互devise, 斯坦福大学的d学校, 纽约大学的ITP课程和肯特州的信息build筑与知识pipe理 (信息披露:我在肯特的教师队伍;我们看到越来越多的人CS学位转向用户体验devise而不是pipe理,这很有趣,因为pipe理层是开发人员希望摆脱他们领域的代码编写的传统途径)。 还有更多的节目。 每个人都有自己的观点,侧重点和技术期望。 有的走出了艺术和视觉devise,有的走出了图书馆和信息科学,有的走出了CS。 大多数是杂交种,但是每种杂交种在一个或多个领域有更深的根源。 如果你感兴趣,看看周围,并试图了解这些scheme之间的差异。 有些课程还提供在线课程和证书课程,以及完整的学位课程。

为什么UIdevise很难

良好的用户界面devise是很难的,因为它涉及2种截然不同的技能

  • 对机器有深入的了解 。 这个群体中的人们首先担心代码,其次是人。 他们有深厚的技术知识和技能。 我们称他们为开发人员,程序员,工程师等等。
  • 对人员和devise的深刻理解 :这个群体中的人们首先担心的是人,其次是代码。 他们对人们如何与信息,计算机以及周围世界进行交互有着深刻的了解。 我们称他们为用户体验devise师,信息架构师,交互devise师,可用性工程师等等。

这是开发者和devise师之间这两个群体之间的本质区别:

  • 开发人员使其工作 。 他们在你的TiVo,你的iPhone,你最喜欢的网站等上实现这些function。他们确保它实际上做它应该做的事情。 他们的最高优先事项是使其工作。
  • devise师让人们喜欢 。 他们弄清楚如何与之互动,如何看待,以及如何感受。 他们devise使用应用程序,网站,设备的经验。 他们最重要的事情就是让你爱上开发者所做的事情。 这就是用户体验的意义,与品牌体验不一样。

而且,编程和devise需要不同的思维方式 ,而不仅仅是不同的知识和不同的技能。 良好的用户界面devise既需要思维方式,又需要知识库和技能组合。 掌握任何一个都需要几年的时间。

开发人员应该期望能够很难findUIdevise,就像UIdevise者应该期望能够很难find代码一样。

真正能帮助我改进devise的是抓住开发人员,QA人员,PM或任何碰巧经过的人,让他们尝试特定的小部件或屏幕。

当你看别人第一次使用你的软件时,你会意识到的惊人之处

最终,这实际上是同理心 – 你可以把自己放在你的用户的鞋子?

有一件事情当然有用,就是“吃自己的狗粮” – 把自己的应用作为一个真正的用户,看看有什么烦人的。

另一个好主意是find一种方法来使用你的应用程序来观看一个真实的用户,这个应用程序可能和一个可用性实验室一样复杂,包括单向镜像,屏幕video捕捉,用户video摄像头等等,或者可以简单作为使用碰巧走下大厅的下一个人的纸样机。

如果一切都失败了,请记住,UI太简单了,而不是太复杂。 这很容易说:“哦,我知道如何解决这个问题,我只是添加一个checkbox,以便用户可以决定他们喜欢哪种模式”。 不久你的用户界面太复杂了。 select默认模式,并将首选项设置为高级configuration选项。 或者只是把它离开。

如果你阅读了很多关于devise的知识,你可以很容易地挂在阴影和圆angular等等。 这不是重要的东西。 简单性和可发现性是重要的东西。

与stream行的神话相反,在UIdevise中几乎没有软的方面,至less不需要devise一个好的后端。

考虑以下内容; 良好的后端devise基于相当可靠的原则和优秀开发人员熟悉的元素:

  • 低耦合

  • 高凝聚力

  • build筑模式

  • 行业最佳实践

  • 等等

良好的后端devise通常是通过一系列交互产生的,根据在testing或实际使用过程中获得的可测量的反馈,最初的蓝图逐渐得到改善。 有时候你需要对后端的较小方面进行原型devise,并单独进行试用。

良好的用户界面devise基于以下原则:

  • 能见度

  • 启示

  • 反馈

  • 公差

  • 简单

  • 一致性

  • 结构体

用户界面也是通过testing和试用而诞生的,通过迭代而不是编译器+自动testing套装,而是人。 与后台类似,还有行业最佳实践,测量和评估技术,用户界面思维方式以及用户模型,系统映像,devise者模型,结构模型,function模型等方面的目标。

UIdevise所需要的技能与devise后端有很大的不同,因此如果不先做一些学习,就不会期望能够做好UI。 然而,这两个活动的共同点是devise过程。 我相信任何devise好软件的人都可以devise出好的UI,只要花一些时间学习。

我build议参加人机交互课程,例如查看MIT和耶鲁网站的在线资料:

  • MIT用户界面devise和实施课程

理解与使用的结构与function模型

Thorsten79的优秀文章引发了软件开发专家和用户对软件理解的不同。 人类学习专家区分function和结构的心智模式。 find朋友家的方式可以成为两者区别的一个很好的例子:

  • 第一种方法包括一系列详细的说明:走高速公路的第一个出口,然后在100码左转等。这是一个function模型的例子:实现特定目标所需的具体步骤清单。 function模型很容易使用,它们不需要太多的思考就可以直接执行。 显然,简单的惩罚是:它可能不是最有效率的路线,任何exception情况(即分stream)都可能导致彻底的失败。

  • 应对这一任务的另一种方式是build立一个结构性的心理模型。 在我们的例子中,这将是一个传递大量有关“任务对象”内部结构信息的地图。 从了解我们和朋友家的地图和相对位置,我们可以推导出function模型(路线)。 显然这需要更多的努力,但是尽pipe可能存在偏差,但是完成任务的可靠性要高得多。

通过UI传递function或结构模型(例如,向导模式与高级模式)之间的select并不像Thorsten79的post那样简单。 先进和频繁的用户可能更喜欢结构模型,而偶尔或不太经验的用户 – function。

谷歌地图是一个很好的例子:它们包括function和结构模型,许多卫星导航也是如此。

问题的另一个方面是通过UI呈现的结构模型不能映射到软件的结构,而是自然映射到用户任务的结构或涉及的任务对象。

这里的困难在于许多开发人员将拥有一个良好的软件内部结构模型,但只有软件旨在帮助的用户任务的function模型。 要build立良好的用户界面,需要了解任务/任务对象结构并将UI映射到该结构。

无论如何,我还是不能推荐足够强的正式HCI课程。 这里涉及到很多东西,如启发式 ,源于格式塔心理学的原理,人类学习的方式等等。

我build议你开始做你所有的用户界面,就像你现在正在做的一样,没有关注可用性和东西。

替代文字http://www.stricken.org/uploaded_images/WordToolbars-718376.jpg

现在想想这个:

一位devise师知道,当没有什么可以补充的时候,他已经达到完美,但是什么时候什么都没有了。 – 圣艾修伯里

并将其应用于您的devise中。

许多开发人员认为,因为他们可以编写代码,他们可以做到这一切。 devise一个界面是一个完全不同的技能,当我上大学时根本就没有教过。 这不仅仅是自然而然的事情。

另一本好书是唐纳德·诺曼的“日常生活的devise”

devise和美学之间有很大的差别,他们经常感到困惑。

一个美丽的用户界面需要艺术或至less审美技能,包括我自己在内的许多人都无法制作。 不幸的是,这是不够的,不能使UI可用,正如我们在许多基于Flash的重量级API中看到的那样。

制作可用的UI需要了解人与计算机的交互方式,心理学中的一些问题(如Fitt定律,Hick定律)和其他主题。 很less有CS计划为此进行培训。 我知道很less有开发人员会select一本JUnit书籍的用户testing书籍等等。

我们中的许多人也是“核心程序员”,倾向于将用户界面看作是门面,而不是把项目成功或失败的因素。

另外,大多数的UI开发经验是非常令人沮丧的。 我们可以使用像老的VB一样的玩具GUI构build器,并且必须处理丑陋的胶水代码,或者我们使用API​​来挫败我们,例如试图在Swing中排列布局。

转到Slashdot,阅读有关苹果的任何文章的评论。 你会发现许多人在谈论苹果产品如何没有什么特别之处,并将iPod和iPhone的成功归功于试图成为时尚或潮stream的人们。 他们通常会通过function列表,并指出他们早期的MP3播放器或智能手机没有做任何事情。

那么就有人喜欢iPod和iPhone,因为他们只是简单而轻松地做用户想要的东西,而没有参考手册。 接口与接口一样直观,令人难忘,并且可被发现。 我不喜欢MacOSX上的用户界面,因为我在早期的版本上,我认为他们已经放弃了一些有利于浮华的地方,但是iPod和iPhone就是优秀devise的例子。

如果你在第一个阵营,你不会认为一般人做的方式,因此你可能会做出糟糕的用户界面,因为你不能告诉他们好的界面。 这并不意味着你是无望的,而是你必须明确地学习良好的界面devise原则,以及如何认识一个好的用户界面(就像阿斯伯格的某个人可能需要明确地学习社交技能一样)。 显然,只要有一个良好的用户界面感并不意味着你可以做一个; 例如,我对文学的欣赏,似乎并没有扩展到编写可发表的故事的能力(当前)。

所以,尝试开发一个好的UIdevise感。 这不仅仅是软件。 唐·诺曼(Don Norman)的“日常事物的devise”是一个经典之作,还有其他书籍。 获取成功的UIdevise示例,并充分利用它们来体验差异。 认识到你可能不得不学习一种新的思考方式,并享受它。

我坚持的主要经验是永远不要试图同时做到这一点。 如果我正在处理后端代码,那么我会完成这个工作,rest一下,然后返回我的UI帽子。 如果你在编写代码的时候尝试使用它,那么你会用错误的思维方式来处理它,结果导致一些糟糕的界面。

我认为做一个好的后端开发人员和一个好的UIdevise人员是绝对有可能的,你只需要去研究一下这个主题(从米勒的#7到尼尔森的档案),然后做一些阅读和研究确定你明白为什么 UIdevise是最重要的。

我不认为这是一个需要创新的案例,而是像后端开发那样,是一个非常有条不紊,需要学习的非常有组织的东西。 人们越来越“创造”UI,创造了一些最大的可用性怪物…我的意思是,看看100%的Flash网站,一开始…

编辑 :克鲁格的书是非常好的…做一读,特别是如果你要为网页devise。

这件事情是由很多原因导致的。

(1)开发人员无法从用户的angular度看待事物。 这是通常的嫌疑:缺乏同情心。 但是这通常并不正确,因为开发者并不像人们想象的那样陌生。

(2)另一个更常见的原因是,开发者如此接近他自己的东西,一直待在他的东西那么久,没有意识到他的东西可能不是那么熟悉(比直觉更好) 。

(3)还有一个原因是开发者缺乏技巧。

我的大索赔:阅读任何UI,人际关系devise,原型书。 例如devise明显的:Web应用程序devise的常识方法,别让我思考:networking可用性的常识,devise时刻,无论如何。

他们如何讨论任务stream程? 他们如何描述决策点? 也就是说,在任何用例中,至less有3条path:成功,失败/exception,替代。

因此,从A点开始,你可以去A.1,A.2,A.3。 从A.1点可以看到A.1.1,A.1.2,A.1.3等等。

他们如何显示这样的下钻任务stream? 他们没有。 他们只是掩饰它。

因为即使是UI UI也没有技术,开发者也没有机会。 他认为这是清楚的在他的头上。 但纸上甚至都不清楚,更不用说在软件实现上清楚了。

我必须使用我自己的手工制作技术。

我尝试与devise特定的网站和文本保持联系。 我还发现了优秀的罗宾·威廉姆斯(Robin Williams)着作“非devise师的devise”(Non-Designer's Design Book)在这些研究中非常有趣

我相信devise和可用性是软件工程的一个非常重要的部分,我们应该更多地学习它,并停止给我们不应该做devise的借口。

每个人都可以成为devise师,每个人都可以成为程序员。

在进行UIdevise时,以下是我始终关注的一些内容(目前还不完整):

  • 沟通模型 。 用户界面是一个叙述,向用户解释心理模型。 这个模型可能是一个商业对象,一组关系,你有什么。 视觉突出,空间布局和工作stream程sorting都将这种模式传达给用户。 例如,某种列表与另一列表意味着不同的事物,以及列表中的内容与模型的其余部分之间的关​​系。 一般来说,我最好确保一次只能传达一个模型。 程序员经常尝试在同一个UI空间中交stream多个模型或几个模型的一部分。

  • 一致性 。 重新使用stream行的UI隐喻有很大帮助。 内部一致性也非常重要。

  • 任务分组 。 用户不必在屏幕上移动鼠标来validation或完成相关的命令序列。 modal dialog和popup菜单在这方面可能特别糟糕。

  • 了解你的观众 。 如果你的用户反复做同样的活动,他们很快就会成为这些任务的高级用户,并且会因为试图降低初始进入壁垒而感到沮丧。 如果您的用户很less进行各种不同的活动,最好确保用户界面始终握住他们的手。

阅读苹果人机界面指南 。

我发现在UIdevise中最好的工具是观看第一次用户尝试使用该软件。 大量的笔记,并问他们一些问题。 切勿指导他们或尝试解释软件是如何工作的。 这是UI的工作(和书面文档)。

我们在所有项目中一贯采用这种方法。 以前所未有的方式观看用户与软件的交易总是很有吸引力的。

为什么UIdevise如此困难? 一般来说,因为开发者和用户永远不会见面。

duffymo只是提醒了我为什么:许多程序员认为“*devise”==“艺术”。

良好的用户界面devise绝对不是艺术。 它遵循可靠的原则,如果你有时间做研究,可以用数据来备份。

我认为所有的程序员都需要花时间学习原理。 我认为,只要有可能,无论是在代码方面还是在布局方面,都应该采用最佳做法。 我们所要做的就是让自己意识到我们工作这方面的最佳做法。

我在UIdevise上做了什么更好的工作?
注意它!

就好像你曾经在新闻或电子巴士上看到一张图表,你想知道“他们是如何得到这些数据的? 他们是用原始的sql来做还是使用LINQ? (或者在这里插入你自己的普通好奇心)。

你需要开始这样做,但有各种视觉元素。

但是就像学习一门新的语言一样,如果你不真正投入,就不会学习它。

从我写的另一个答案采取:

学着去看看,看看你周围的世界。 为什么我喜欢那个UI但是讨厌这个? 为什么在这家餐厅的菜单里find面条很难? 哇,我甚至在读完这些单词之前就知道这个符号的意思了。 为什么呢? 那本书封面怎么看起来这么错呢? 学会花时间考虑你为什么以你所做的方式来反应各种视觉元素,然后将其应用于你的工作。

然而,你这样做(以及上面有一些伟大的观点),它确实帮助了我,一旦我接受,没有这样的直觉….

我可以听到在地平线上传来的争吵……所以让我稍微解释一下。

直觉:基于无意识的方法或感觉,使用自己认为正确或真实的东西。

如果(正如卡尔·萨根(Carl Sagan)所指出的)你接受了你不能理解与你所遇到过的任何东西完全不同的东西,那么如果你从来没有像以前那样使用过任何东西,你怎么可能“知道”如何使用东西呢?

想一想:孩子们试图打开门,并不是因为他们“知道”门把手是如何工作的,而是因为他们看到别人这样做了……他们往往会把旋钮转向错误的方向,或者太快。 他们必须学习一个门把手是如何工作的。 然后,这些知识在不同但相似的情况下得到应用:打开一个窗户,打开一个抽屉,几乎用一个大的,旋钮式的手柄打开任何大的东西。

即使是对我们来说看起来很直观的简单的东西,对于来自其他文化的人来说也是不直观的。 如果有人把他们的arm放在他们面前,在手腕上保持arm不动,他们的手就放弃了。他们是否放弃了你? 可能,除非你在日本。 在那里,这个手势可能意味着“来到这里”。 那么谁是对的? 当然,这两者都是在他们自己的情况下。 但是,如果你旅行到两个,你需要知道两个… UIdevise。

我试图find对我的项目的潜在用户已经“熟悉”的东西,然后围绕它们构buildUI:以用户为中心的devise。

看看苹果的iPhone。 即使你讨厌它,你也必须尊重它的思想。 这是完美的吗? 当然不是。 随着时间的推移,一个物体的“直觉”可能会增长甚至完全消失。

例如。 大多数人都知道,沿着顶部和底部有两排孔的黑色条纹看起来像一个电影条…或者他们呢?

问你平均9或10岁的他们认为是什么。 你可能会感到惊讶的是,现在有多less孩子很难将其识别为电影带,尽pipe它仍然被用来代表好莱坞,或者任何与电影(电影)有关的东西。 过去20年来的大部分电影都是数字拍摄的。 我们最后一次是什么时候举办过任何types的电影,照片或电影?

所以,对我来说,最重要的是:了解你的观众,不断研究跟上“直觉”事物的趋势和变化,瞄准你的主要用户,并尽量不要做那些惩罚经验不足的事情,高级用户还是放慢高级用户才能手持新手。

最终,每个程序都需要一定量的用户部分的培训来使用它。 多less培训和哪个级别的用户是需要做出的决定的一部分。

根据目标用户过去的经验水平,有些东西或多或less都是熟悉的,例如人类,计算机用户,学生等等。

我只是拍摄了钟形曲线中最胖的部分,并试图让尽可能多的人,但我意识到,我永远不会讨好大家….

我知道微软与他们自己的指导方针相当不一致,但我发现阅读他们的Windowsdevise指导方针对我来说真的很有帮助。 我在这里有一个在我的网站上的副本,只要向下滚动一下Vista的UX指南。 它帮助了我诸如颜色,间距,布局等等。

我相信主要问题与不同的人才或技能无关。 主要的问题是,作为开发人员,您对应用程序的function和function知之甚多,而且从具有这些知识的人的angular度来自动devise用户界面。

而用户通常开始对应用程序一无所知,并且不需要了解任何有关其内部工作的知识。

不使用你所拥有的知识是非常困难的,几乎是不可能的 – 这就是为什么一个UI不应该由开发应用程序的人来devise。

“从屏幕两侧进行devise”提出了一个非常简单而又深刻的原因,就是为什么程序员难以findUIdevise:程序员被训练思考边缘案例,而UIdevise师被训练去考虑常见案例或使用情况。

所以,如果两者之间的默认训练与另一个世界完全相反,那么从一个世界走向另一个世界肯定是困难的。

说程序devise吸吮UIdevise就是错过了这一点。 问题的关键在于大多数开发者的正式培训与技术深度相关。 人机交互不是一个简单的话题。 我不能通过提供一个简单的一行语句来“思想融合”给你,让你意识到“哦,如果我用x而不用y,用户将更有效地使用这个应用程序”。

这是因为有一部分UIdevise缺失。 人类的大脑。 为了了解如何devise一个用户界面,你必须了解人类的思维与机器的相互作用。 我在明尼苏达大学就心理学教授讲授的这个主题做了一个很好的课程。 它被命名为“人机交互”。 这描述了为什么UIdevise如此复杂的许多原因。

由于心理学是基于相关性而不是因果性的,所以你永远不能certificate一种UIdevise的方法总是能在任何情况下工作。 你可以关联很多用户会发现一个特别的UIdevise吸引力或高效,但是你不能certificate它总是会被推广。

此外,UIdevise有两个部分,很多人似乎都错过了。 有美学的吸引力,和function的工作stream程。 如果你去追求100%的美学效果,那么肯定会有你的产品。 我非常怀疑,美学将永远减less用户的挫折。

关于这个话题和课程,有好几本好书(比如比尔·巴克斯顿的“ 用户体验草图”和Edwin Hutchins 的“野外认知” )。 有很多大学的人机交互研究生课程。

这个问题的总体答案在于个人如何教授计算机科学。 它是基于math的,基于逻辑的而不是基于用户体验的。 为了达到这个目标,你需要的不仅仅是一个通用的4年计算机科学学位(除非你的四年计算机科学学位在心理学方面有一个未成年人,并且在人机交互中被强调)。

让我们来回答你的问题 –

“UIdevise师”是否注定只devise信息架构和performance层? 他们能做些什么来重新调整自己的大脑,以便在devise令人满意的高效系统层面上更有效?

看起来像他们“devise师”将不得不采取一个完全不同的angular度 – 他们必须从箱子里面向外看; 而不是从箱子外面看。

艾伦·库珀的“囚犯逃跑”的观点是,我们不能成功地采取这两种观点 – 我们可以学会戴好一顶帽子,但我们不能只换帽子。

我认为这是因为一个好的UI是不合逻辑的。 一个好的用户界面很直观。

软件开发人员通常在“直观”

一个有用的框架是积极考虑你在devise一个沟通过程中正在做什么。 在一个非常真实的意义上,你的界面是用户必须用来告诉计算机做什么的一种语言。 这导致考虑一些点:

  1. 用户是否已经说这种语言? 使用高度特殊的界面就像是用你以前从未说过的语言进行沟通。 所以如果你的界面一定是特别的,那最好用最简单的术语介绍自己,而且很less分心。 另一方面,如果你的界面使用习惯的习惯用法,他们会从一开始就获得信心。
  2. 沟通的敌人是噪音。 听觉噪音干扰口语交际; 视觉噪声干扰视觉交stream。 你可以从你的界面切出更多的噪音,更容易沟通。
  3. 就像在人类的谈话中,通常不是你说的,而是你怎么说的。 大多数软件交stream的方式都是粗鲁到一定程度,如果它是一个人,它会被打在脸上。 如果你问别人一个问题,你会有什么感觉,他们坐在那里,盯着你几分钟,拒绝以任何其他方式回答,然后回答? 许多界面元素,如进度条和自动焦点select,都具有礼貌的基本function。 问问你自己,如何让用户的一天更愉快。

真的,要确定程序员认为接口交互是一种什么样的方式, 不是一个交stream的过程,有些困难,但也许问题在于,它根本就没有被认为是任何东西。

已经有好多评论了,所以我不确定我能补充多less。 但是…

  • 为什么开发人员希望能够devise好的用户界面?
  • 他在这个领域有多less训练?
  • 他读了多less本书?
  • 他devise了多less年?
  • 他有没有机会看到用户的反应?

我们不期望一个随机的“乔水pipe工”能够写出好的代码。 那么为什么我们期望随机的“乔程序员”来devise良好的用户界面呢?

移情帮助。 分离UIdevise和编程有帮助。 可用性testing有帮助。

但是UIdevise是一门必须学习和实践的工艺。

开发人员不一定擅长UIdevise,因为他们不是(一定)擅长针织; 这很难,需要练习,有人告诉你如何摆在首位。

大多数开发人员(包括我在内)都开始“devise”用户界面,因为这是编写软件的必要部分。 直到开发人员努力做好这件事,他/她不会。

改善只是看看现有的网站。 除了已经提出的书籍之外,你可能还想看看罗宾·威廉姆斯的优秀着作“非devise师devise书”( 消除亚马逊链接 )

看看在禅宗花园的各种意见,看看在视觉devise中有什么可能。

UIdevise绝对是一门艺术,就像C语言中的指针一样,有些人得到了它,有些人却没有。

但至less我们可以对他们的尝试笑一笑 。 顺便说一句,感谢确定/取消一个有趣的漫画,并感谢乔尔把它放在你的书“最好的软件写作我”( 消毒亚马逊链接 )。

事实上,用户界面不是可以应用的,就像一层薄薄的油漆一样。 这是一开始就需要在那里,并基于真正的研究。 当然有很多可用性研究。 它不仅需要一开始就在那里,它需要形成你制作软件的原因的核心:世界上有一些差距,有些问题,需要做的更可用,更高效。

软件不是为了它自己。 软件存在的原因是FOR PEOPLE。 甚至试图想出一个新的软件的概念,而不理解为什么有人会需要它,这是非常可笑的。 然而,这总是发生。

在编写一行代码之前,您应该阅读界面的纸质版本,并在真人上进行testing。 这是一种奇怪而愚蠢的做法,它最适合孩子们,有人扮演“电脑”的angular色。

界面需要利用我们自然的认知设施。 一个穴居人如何使用你的程序? 例如,我们已经发展到非常擅长跟踪移动的对象。 这就是为什么使用物理模拟的接口(如iphone)比接口瞬间发生变化的效果更好。

我们善于某种抽象,而不是其他的。 作为程序员,我们接受了精神体操和后空翻的训练,以了解一些最奇怪的抽象。 例如,我们知道,一系列神秘的文字可以代表金属盘片上的电磁状态,并被翻译成金属盘片上的电磁状态的图案,当它被精心devise的装置遇到时,会导致一系列看不见的事件发生在电子的光速上电路,而这些事件可以被引导产生有用的结果。 这是一个非常不自然的事情要了解。 明白,虽然它对我们有一个完全合理的解释,但对外界来说,我们似乎在写不可理解的咒语,召唤无形的有情的灵魂来做我们的竞拍。

正常人类所理解的各种抽象是诸如地图,图表和符号之类的东西。 小心符号,因为符号是一个非常脆弱的人类概念,需要有意识的精神努力来解码,直到符号被学习。

符号的诀窍在于符号和它代表的东西之间必须有明确的关系。 它代表的东西要么是一个名词,在这种情况下,符号应该看起来非常像它所代表的东西。 如果一个符号代表了一个更抽象的概念,那么就必须在高级中解释。 在msword或photoshop的工具栏中查看难以理解的unlabled图标,以及它们所代表的抽象概念。 必须学会Photoshop中的裁剪工具图标意味着作物工具。 必须了解甚至是CROP的含义。 这些是正确使用该软件的先决条件。 这提出了一个重要的观点,提防假定的知识。

我们只有在4岁左右才能理解地图。我想我曾经在某个地方读过,黑猩猩可以在6或7岁左右的时候获得理解地图的能力。

guis之所以如此成功,首先是因为他们改变了一个主要是电脑接口的格局,把计算机的概念映射到一个类似于物理位置的东西。 guis在可用性方面失败的地方,就是他们在现实生活中看不到的东西。 在计算机中发生的看不见的,不可预知的,不可理解的事情,与你在物理世界中看到的任何东西都没有任何相似之处。 其中一些是必要的,因为在模拟真实世界中没有任何意义 – 这个想法是拯救工作,所以必须有一点魔力。 但是这个魔法是有道理的,并且build立在一个抽象的基础上,即人类很好地适应了理解。 当我们的抽象开始变得越来越深刻,层次分明,并且与手头的任务不匹配,事情就会崩溃。 换句话说,界面不能作为底层软件的好地图。

有很多书。 我读过的两本书可以推荐为唐纳德·诺曼(Donald Norman)的“日常事物的devise”和杰夫·拉斯金的“人机界面”。

我也推荐一门心理学课程。 “每天事物的devise”谈了这一点。 由于开发者对心理学的“民间理解”,很多接口崩溃了。 这与“民间物理”类似。 运动中的物体保持运动对大多数人来说没有任何意义。 “你必须继续推动它保持运动!” 认为物理新手。 用户testing对大多数开发者来说没有意义。 “你可以问用户他们想要什么,而且应该足够好!” 认为心理学新手。

我build议菲利普·津巴多主持的PBS纪录片系列“发现心理学”(Discovering Psychology)。 如果没有,试着找一本好的物理教科书。 昂贵的一种。 不是你在边界发现的虚构自我帮助废话,而是你只能在大学图书馆find的厚厚的硬性材料。 这是一个新的基础。 没有它,你可以做很好的devise,但是你只会对发生的事情有一个直观的理解。 读一些好的书会给你一个很好的视angular。

如果你读了“为什么软件太烂”这本书,你会看到普拉特的答案,这是一个简单的答案:

  1. 开发人员控制用户友好性
  2. 普通人优先于用户友好而不是控制

但另一个回答你的问题是“为什么牙科对一些开发者来说太难了?” – UIdevise最好由UIdevise师完成。

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