为什么对于一些开发人员来说,好的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个回答

4
"从屏幕两侧设计"这个概念很简单,但深刻地解释了为什么程序员觉得UI设计很难:程序员的思维训练是针对边缘情况,而UI设计师的思维训练则是针对普通情况或使用情况。
因此,如果默认的训练方式完全相反,从一个世界走向另一个世界肯定会非常困难。

3
说编程在UI设计上表现不佳是错失重点。问题的关键在于,大多数开发人员接受的正式培训都深入技术。人机交互并不是一个简单的话题。我无法通过提供一个简单的一行声明来向您“精神融合”,使您意识到“如果我做x而不是y,用户将更有效地使用此应用程序”。
这是因为您缺少UI设计的一部分:人类大脑。为了理解如何设计UI,您必须了解人类思维与机器的交互方式。明尼苏达大学有一门优秀的课程,由心理学教授教授,名为“人机交互”。这描述了UI设计如此复杂的原因之一。
由于心理学基于相关性而不是因果关系,因此您永远无法证明UI设计方法在任何情况下都会起作用。您可以说明许多用户会发现特定的UI设计吸引人或高效,但是您无法证明它将总是具有普遍性。
此外,许多人似乎忽略了UI设计的两个方面。有审美吸引力和功能工作流程。如果您追求100%的审美吸引力,确实可以吸引人们购买您的产品。然而,我非常怀疑美学是否会减少用户的沮丧感。
这个主题有几本好书和课程可供学习(例如比尔·巴克斯顿的《 Sketching User Experiences 》,以及爱德温·哈钦斯的《{{link2:Cognition in the Wild}}》)。许多大学都设有人机交互专业的研究生课程。
然而,回答这个问题的整体答案在于如何教授计算机科学。这完全基于数学、逻辑,而不是用户体验。要想达到这一点,除非您获得了心理学专业的辅修并强调人机交互,否则需要更多的4年计算机科学学位(除非您的4年计算机科学学位在心理学专业上小修)。

我不同意:计算机本质上是基于数学和逻辑的。任何关于计算机编程的教学都必须基于数学和逻辑。 - Paul Nathan
1
是的,保罗,你说得对。计算机是数学和逻辑。但 UI 设计涉及到人的因素,历史证明它远不像数学和逻辑那样可靠。 - jwendl
它们并不是缺少数学和逻辑基础,而是它们背后的数学和逻辑更加复杂,大多超出了今天任何人的理解范围。话虽如此,我敢打赌好的用户界面设计在某种程度上都是基于几何学的。 - Tikhon Jelvis

2
你提到了《不让我思考》这本书。我强烈推荐阅读它。

2
让我们转变一下你的问题-“UI设计师”注定只能设计信息架构和呈现层吗?他们可以做些什么来重新训练自己的大脑,以更有效地设计令人愉悦和高效的系统层?
看起来,“UI设计师”们必须从完全不同的角度出发,他们必须从盒子内部向外看;而不是从盒子外部向内看。
Alan Cooper在他的《The Inmates are Running the Asylum》中认为,我们不能成功地同时采用两种视角-我们可以学会善于戴好一顶帽子,但我们不能随意切换帽子。

2
UX设计和软件开发绝不是互相排斥的技能。相反,它们都需要常识和逻辑思维、注重细节并能够看到大局。因此,如果你是一位优秀的开发人员,那么你很有可能成为一名出色的UX设计师!
它们可能看起来互相排斥,因为许多开发人员没有UX设计经验,反之亦然。此外,如果你在考虑架构、框架或语言之前就开始思考UX设计,那么可能会引导你走向错误的方向。

2

我认为这是因为一个好的用户界面不是逻辑性的,而是直觉性的。

软件开发人员通常在“直觉性”方面做得不好。


优秀的观点需要大脑的另一侧 - Chris Ballance
UI并不存在所谓的直觉。虽然有类似于我已知的东西,但那还是有些不同。 - Stephan Eggermont
一切都是在学习中获得的,没有什么是“本能”的。商人常用“本能”这个词来让程序员感到不安。 - Bernard Igiri
说得像个真正的程序员...这就是问题的根源。 - Gregor Brandt
@gbrandt 直观(Intuitive)是“熟悉”和“简单”的某种组合。虽然这仍然是一个值得追求的目标,但可用性的难点在于对于某些人来说直观的东西并不一定对其他人也是直观的。@Stephan 正确指出,“直观”不是某种硬性的“事实”,而是相对于用户而言的。 - TM.

2
一种有用的思路是积极地考虑你正在设计一种沟通过程。在非常实际的意义上,你的界面是用户必须用来告诉计算机要做什么的语言。这导致考虑以下几点:
  1. 用户是否已经使用过这种语言?使用高度独特的界面就像使用你从未说过的语言进行交流。因此,如果你的界面必须具有某些独特性,最好用最简单的术语和少量干扰介绍自己。另一方面,如果你的界面使用了用户习惯的惯用语,他们会从一开始就获得信心。
  2. 噪音是沟通的敌人。听觉噪音干扰口头交流;视觉噪音干扰视觉交流。你能够从你的界面中削减掉的噪音越多,与它的交流就会越容易。
  3. 与人类对话一样,重要的通常不是你说了什么,而是你说话的方式。大多数软件通信的方式都很粗鲁,如果它是一个人,那肯定会被打。如果你问别人一个问题,他们坐在那里盯着你几分钟,拒绝以任何其他方式回应,然后才回答,你会有什么感觉?许多界面元素(如进度条和自动聚焦选择)具有礼貌的根本功能。问问自己如何使用户的日子更愉快。
实际上,很难确定程序员认为界面交互是什么,除了一种沟通过程之外,也许问题在于它被认为根本不是什么。

2

已经有很多好的评论了,所以我不确定我能添加什么。 但还是有几点需要说明...

  • 为什么开发人员会期望能够设计出好的用户界面?
  • 他在这个领域接受了多少培训?
  • 他读了多少书?
  • 他设计了多少东西,花了多少年时间?
  • 他有机会看到用户的反应吗?

我们并不指望一个普通的“水管工”能写出好的代码。 那么为什么我们要期望普通的“程序员”能设计出好的用户界面呢?

同理心有帮助。分离UI设计和编程有帮助。可用性测试有帮助。

但UI设计是一门必须像其他技艺一样学习和实践的手艺。


我正想着同样的问题,"开发者"和"用户界面设计师"有什么关系? - Jorge Córdoba
@Jorge 这是它的相关性:很多开发者都必须为他们的雇主设计用户界面,即使他们并不是设计师。在我们公司,我们没有任何艺术家。我们的应用看起来也不错。在这种情况下,你需要进行团队评审等活动,以确保设计得到了很好的展现。 - TM.
@TM:设计并不一定是UI/UX设计。当然,它可能看起来很好,但这并不意味着它的功能也很好。 - Kevin Peno

2
我认为这两种技能非常不同。优秀的设计师了解人类行为、颜色和字体心理学等方面。我认为这就像同时成为市场营销人员和开发人员一样,非常具有挑战性但并非不可能。
我建议找一些UI专家,并听取他们的研究建议。除非你正在设计像谷歌这样极简主义的东西,如果是一个重要的项目,最好还是聘请那些以UI艺术为主修的人。
话虽如此,如果你正在设计一个非常实用的应用程序,我认为你可以尝试在界面上专注于简洁和清晰——我认为这至少是谷歌(和Stack Overflow)成功的关键之一——即它是直观的,使用起来很愉快。

2

开发人员并不一定擅长UI设计,就像他们不一定擅长编织一样;这很难,需要实践,并且最好有人在第一时间向您展示如何做。

大多数开发人员(包括我自己)开始“设计”用户界面是因为这是编写软件的必要部分。在开发人员付出努力成为优秀UI设计师之前,他们将无法掌握此技能。


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