为什么对于一些开发人员来说,好的UI设计如此困难?

206

有些人在UI设计的柔性方面(尤其是我自己)遇到了困难。 "后端编码员"注定只能设计业务逻辑和数据层吗? 有没有什么方法可以让我们"重新训练大脑",以设计出更令人愉悦和有用的表现层?

同事们向我推荐了一些书,包括《网站设计》、《别让我思考》和《为什么软件糟糕》,但我想知道其他人在这个领域中如何消除他们的不足之处?


1
关于书籍,回到基础,'The Design of Everyday Things' 可能是开始掌握 UI 设计实际目标的经典方式 ^^ - Oskar Duveborn
20
平面设计 ≠ 用户界面设计。前者是关于让事物变得漂亮。后者则是关于让事物变得有用和易用。 - Esko Luontola
2
+1 @Esko。通常,“漂亮”意味着完全无法使用。但是,如果小心处理并经过深思熟虑,两者可以共存。 - Dhaust
1
我甚至不理解为什么你可以在一个讨论问题上发布悬赏,更不用说提出这样的要求了。这个问题的前提本身就是值得质疑的。 - Mark Rogers
12
为什么对于UI设计师来说开发软件如此之难? - Greg Hurlman
显示剩余8条评论
65个回答

8
有很多原因导致这种情况发生。
(1) 开发人员未能从用户的角度看待事物。这是常见的问题:缺乏同理心。但通常并不是真正的原因,因为开发人员并没有想象中那么陌生。
(2) 另一个更常见的原因是,开发人员离自己的东西太近了,与自己的东西相处时间过长,未能意识到他的东西可能对其他人来说并不那么熟悉(一个比直观更好的术语)。
(3) 还有一个原因是开发人员缺乏技巧。
我要提出的大胆论断是:阅读任何UI、人机交互设计、原型设计书籍,例如《Designing the Obvious: A Common Sense Approach to Web Application Design》、《Don't Make Me Think: A Common Sense Approach to Web Usability》、《Designing the moment》等等。
他们如何讨论任务流程?他们如何描述决策点?也就是说,在任何用例中,至少有三个路径:成功、失败/异常、备选。
因此,从A点出发,你可以去到A.1、A.2、A.3。 从A.1点出发,你可以到达A.1.1、A.1.2、A.1.3等等。
他们如何展示这样的钻取式任务流程? 他们没有展示。他们只是简单地概述。
因为即使UI专家也没有一种技巧,开发人员就更没有机会了。 他认为这在他的脑海中很清晰。但它甚至在纸上都不清晰,更不用说在软件实现中清晰了。
我必须使用自己手工制作的技巧来解决这个问题。

7

我尝试与专门设计的网站和文本保持联系。我还发现Robin Williams的优秀著作《非设计师设计书》在这些研究中非常有趣。

我认为设计和可用性是软件工程的非常重要的组成部分,我们应该学习它并停止找借口说我们不应该做设计。

每个人都可以偶尔成为一名设计师,就像每个人都可以成为一名程序员。


我不同意每个人都可以成为程序员。这个行业的某些方面是无法教授的,你要么能够应对,要么就不能(无恶意)。 - Chris Ballance
2
我的意思是,偶尔能行,并不能保证这个人会成为一个好的程序员或者永远是一个好的程序员。 - Edwin Jarvis

7
在处理UI设计时,以下是我一直牢记的几个方面(远非全面):
1. 传递模型。UI是向用户解释心理模型的叙述。该模型可以是业务对象、一组关系等等。视觉突出、空间布局和工作流程排序都在传达这个模型给用户方面发挥作用。例如,某种列表与另一种列表意味着不同的内容,以及列表中的内容与模型的其余内容之间的关系。总的来说,最好确保一次只传达一个模型。程序员经常试图在同一个UI空间中传达一个以上的模型或多个部分。
2. 一致性。重复使用流行的UI隐喻会有很大帮助。内部一致性也非常重要。
3. 任务分组。用户不应该不得不将鼠标从屏幕的一端移到另一端来验证或完成一系列相关命令。模态对话框和弹出菜单在这方面可能特别糟糕。
4. 知道你的受众。如果你的用户将反复执行相同的活动,他们将很快成为这些任务的高级用户,并对降低初始入门门槛的尝试感到沮丧。如果您的用户偶尔进行许多不同类型的活动,则最好确保UI在整个过程中一直提供帮助。

你提出了一个好观点,那就是了解你的受众...我也喜欢 "You are not your user" (Platt) 和 "Know thy user."(Platt)。这点不可能强调得足够。 - Chris Ballance

7

你是指苹果自己不再遵循的指南吗? - Gregor Brandt
“它们更像是指南,不过呢” ^_^ - Marco Luglio

5
我发现在UI设计中最好的工具是观察第一次使用软件的用户。记下大量笔记并向他们提出一些问题。不要指导他们或试图解释软件的工作原理。这是UI(和良好编写的文档)的工作。
我们在所有项目中始终采用这种方法。观察用户以一种你之前从未考虑过的方式处理软件总是很有趣。
为什么UI设计如此困难?通常因为开发人员和用户永远不会见面。

完全同意,但开发人员很可能会应用坚实的基本UI原则。 - nailitdown
坚实的基本UI原则并不适用于每个国家。我们在许多地区部署软件,不同地区的UI设计存在巨大差异。有时候尝试将以美国为中心的应用程序发送到中国... - user34411

5
duffymo刚刚提醒我为什么:许多程序员认为“*设计”==“艺术”。
良好的UI设计绝不是艺术。它遵循坚实的原则,如果您有时间进行研究,这些原则可以得到数据支持。
我认为所有程序员需要做的就是花时间学习这些原则。我认为在代码或布局中,我们自然而然地应用最佳实践。我们所需要做的就是让自己意识到这方面工作的最佳实践是什么。

我认为你不能完全忽略美学。也许一个丑陋的用户界面和一个漂亮的界面一样可用,但这并不是用户界面的全部作用。毕竟,用户界面是你的程序的面孔,就像一本书的封面:人们更有可能拿起一个有漂亮用户界面的程序。 - Tikhon Jelvis
绝对的,美学很重要,但那是平面设计,而不是UI设计。 - nailitdown

5
我的UI设计提升之路 关注细节! 就像你每次看新闻中的图表或电子公交站牌时,会想:“他们是如何获取这些数据的?是用原始SQL还是使用LINQ?”(或者插入自己感兴趣的技术问题)。你需要开始对各种视觉元素进行同样的思考。
但是就像学习一门新语言一样,如果你不认真投入,永远不会学好。
引用我写过的另一个回答:

学会看,真正地看世界。为什么我喜欢这个UI,但讨厌那个?为什么在这家餐厅的菜单中找面条很难?我甚至在读文字之前就知道了那个标志的意思,为什么?为什么那本书的封面看起来很奇怪?学会花时间思考自己对各种视觉元素的反应方式,并将其应用到工作中。

以上内容摘自另一个回答

+1 对于学习观察和思考的禅修建议,非常有益。很少有人质疑眼前所见。 - Debajit

5
无论您如何做(上面有一些很好的观点),一旦我接受了没有所谓的直觉这个事实,它确实帮助了我...
我可以听到争论正在地平线上发生...所以让我解释一下。
直觉:根据一种无意识的方法或感觉,使用自己感觉正确或真实的东西。
如果(正如卡尔·萨根所提出的那样)您接受您无法理解绝对不同于您曾经遇到过的任何事物,则如果您从未使用过任何类似的东西,您如何“知道”如何使用某物呢?
想想看:孩子们试图打开门,不是因为他们“知道”门把手如何工作,而是因为他们看到其他人这样做...通常他们会将把手向错误的方向旋转,或者太早拉动。他们必须学习如何使用门把手。然后在不同但相似的情况下应用此知识:打开窗户,打开抽屉,打开几乎所有大件物品的大型把手。
即使对我们来说似乎很直观的简单事物对其他文化的人来说也根本不直观。如果有人将手臂伸到前面,在手臂保持静止的同时在手腕上下挥动手...他们是在招手吗?除非你在日本,否则可能是这样。在那里,这个手势可以表示“来这里”。那么谁是对的?当然,在他们自己的背景下都是对的。但是如果您去了两个地方,您需要知道两个地方...用户界面设计。
我试图找到已经“熟悉”的项目潜在用户并围绕它们构建UI:以用户为中心的设计。
看看苹果的iPhone。即使您讨厌它,您也必须尊重其中投入的思考量。它是完美的吗?当然不是。随着时间的推移,物体的感知“直观性”可能会增长或完全消失。
例如。几乎每个人都知道一条黑色带有两排孔的东西看起来像电影胶片...或者他们?
问问您平均9或10岁的孩子他们认为它是什么。您可能会惊讶于现在有多少孩子很难将其识别为电影胶片,尽管它仍然用于代表好莱坞或任何与电影相关的内容。过去20年的大多数电影都是数字拍摄的。我们上次拿着任何类型的电影或照片胶片是什么时候呢?
因此,对我来说,它归结为:了解您的受众并不断研究以跟上“直观”事物的趋势和变化,针对主要用户并尽量不要惩罚缺乏经验的用户,而是支持高级用户或减慢高级用户的速度以便给新手提供帮助。
最终,每个程序都需要一定程度的用户培训才能使用。需要做出的决策之一是需要哪个级别的用户接受多少培训。

根据目标用户的过去经验水平(作为人类、计算机用户、学生或其他), 有些东西对他们来说更或多或少是熟悉的。

我只是针对正态分布曲线上最高峰,尽可能地吸引更多的人,但也意识到我永远无法取悦每一个人....


4
我知道微软在自己的指南中有些不一致,但我发现阅读他们的Windows设计指南确实对我很有帮助。我在我的网站上有一份副本这里,只需向下滚动一点即可查看Vista UX指南。它对我在颜色、间距、布局等方面都有所帮助。

+1 阅读平台的设计指南绝对是应该做的事情(并发现微软自己经常违反他们的规则 ;))。 - Oskar Duveborn
此外,还要阅读苹果的《人机界面指南》。它们包含更多基础和原则。这使您了解什么应该是通用的,什么是特定于平台的。 - Stephan Eggermont
顺便提一下,也要阅读GNOME HIG。通过这三个方面的了解,就可以开始看出什么只是单个平台的特定事物,以及哪些是普遍好的想法。 - mghie
大多数这些都是基于IBM的,但现在已经相当过时了。例如,标准的剪切和粘贴命令是Shift+Del和Shift+Ins(顺便说一下,它们仍然有效)。 - Simon Buchan

4
我认为主要问题与不同的人才或技能无关。主要问题在于作为开发者,你对应用程序的功能和运行方式了解得太多,因此你会自动从具有该知识的人的角度设计用户界面。
然而,用户通常最开始对应用程序一无所知,并且永远不需要了解其内部工作原理。
很难甚至几乎不可能不使用你所拥有的知识。这就是为什么一个 UI 不应该由开发它背后的人来设计的原因。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接