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

0

关于用户反馈,如果你使用Mac电脑,Silverback ( http://silverbackapp.com/ ) 是一个非常好的工具。我建议创建一个任务列表(查找这部电影,观看预告片,查找这个演员的电影,购买等),然后让用户按照列表逐一完成。

最重要的是不要告诉他们如何完成任务,而是观察他们如何完成任务(例如第二个场景,他们是通过演员浏览还是按字母顺序查找场景?)。你可以从公司中选择一些不懂技术的人开始测试,然后在Craigslist上或者街头随机招募人员进行测试。


0

我要先说,我和问题提出者一样有同样的缺陷。尽管如此,我认为任何人之所以不擅长做任何事情,唯一的原因是:

  • 他们没有理解它,也从未学习过如何做以及为什么要这样做的理论知识。
  • 他们从未练习到足以成为专家的程度。

所以我的建议是首先获取描述该主题并学习它们所需的书籍和网页。这里有很多好的答案,我会将Tog On Interface加入列表中。还可以看看那些被认为很棒的 UIs,比如 Mac、iPhone 和 Google。

第二步就是开始创建 UIs。这听起来很容易,但如果这不是你的工作描述的一部分,你可能需要在自己的时间内完成。参与一个 Web 开发项目作为 UI 开发人员。也许是你自己的项目或别人的,但是变得擅长创建网页可以给你所需的经验,也不应该太难做到。祝你好运!


0
“别人是如何解决这个领域的不足之处的?” — Chris Ballance 1. 找一个最不懂电脑的用户来使用你的软件(最好是一个从未见过你的软件的新手)。 2. 向他们收集关于软件哪些方面让他们感到困难的反馈。 3. 解决这些问题,再找另一个不懂电脑的用户。 4. 重复上述过程。
当有足够多的新手用户可以使用你的产品时,你就知道你已经完成了工作。
(也许你的软件看起来会很像微软的,而且你可能不喜欢使用它……)
但这不是重点!重点是最终用户可以使用它,并享受使用它的过程!


不是开发者的问题!


还要阅读this post,我在这个领域发现它很有帮助。它基本上表明,您应该顺从用户所需的内容。

换句话说...

您必须看看用户已经试图做什么...

人行道和学生们

我上大学时,在校园里走路上课的学生创造了一条小路。当学校注意到这条小路时,他们在人们已经走过的地方竖起了篱笆。学校做错了事。您应该在学生们已经走过的地方修建人行道!

视频店和 Netflix

再举一个例子,想想最近的影碟租赁店历史:很久以前有很多影碟租赁店:Block Buster Video等...人们不喜欢那些影碟租赁店的什么?当然是滞纳金。 因此,Netflix推出了无滞纳金服务,因为这更符合客户/终端用户的需要。

现在,Block Buster连同所有其他收费视频店一起破产了。

这样做更难吗?关掉你的大脑,给人们想要的东西?当然,这是弯曲你的意志到他们那里去...这总是更困难的,但最终达到的目标是给最终用户提供他们想要的东西。


开始时可能会有些困难,但是随着经验的积累,一切都会变得更容易。我最初编写的软件是科学分析程序,后来转向了GUI开发。只有当你将自己的软件交给几个非技术人员并观察他们使用时,你才会开始看到他们如何处理你的代码 :-) - Jon Cage

0
有没有什么方法可以训练我们的大脑更有效地设计出令人愉悦和有用的演示层呢?
是的。观察用户尝试使用您的软件,不要帮助他们。这也被称为可用性测试。
可用性测试的基本思想是,您找一个与目标受众背景类似、之前没有见过您的软件的人,并要求他们执行一系列典型任务。理想情况下,他们应该尝试大声说出自己的想法,以便更深入地了解他们的思维过程。然后您观察他们的行为。关键是,无论多么难以抗拒,都不要帮助他们。结果可能会非常惊人和高度启示性。可用性测试可以非常花哨,例如单向镜子、摄像机等,但这并不是必要的,即使没有这些设备,也可以获得大部分好处。在Krug's excellent book Don't make me think: a common sense guide to web usability中有一个很好的描述如何进行可用性测试。他的大部分建议同样适用于测试桌面应用程序。

0

我认为我们无法设计用户界面的原因是因为我们是完美主义者,无法确定什么时候足够好。我个人就无法忍受设计用户界面,因为我总是怀疑自己并说:“不,这还不够好。”


0

没有人提出的建议,但可以极大地帮助你的是参加一门(通常是研究生水平的)人因工程课程。如果你不想上这门课程,至少去找到相关教材并阅读。


0
我认为其中一部分原因是因为UI设计和程序设计经常存在冲突的目标。当我编程时,我经常会想“最简单的方法是什么?”但是在设计UI时,最简单的方法并不总是最用户友好的。如果你两者都做,你可能会倾向于选择最简单的实现方式,这会对用户友好性产生负面影响。
我还相信程序员离产品太近,无法从用户的角度看待它。对于编写应用程序的人来说,似乎非常简单和直观的东西对用户来说可能并非如此。获取用户的意见是必要的。
UI设计也不是一成不变的。不同的人会以不同的方式评估UI。例如,有些人讨厌Office中的新“Ribbon”界面,而有些人喜欢它。有些人认为苹果的OSX界面很棒,而其他人则不喜欢它,并且觉得难以使用。无论你设计出什么样的UI,总会有人不喜欢它。

有时候程序员只选择编写最容易的代码,这通常会导致糟糕的用户界面。 - Bernard Igiri

0

很容易。

开发人员不是设计师。他们没有接受过设计培训或尝试学习设计,那么为什么他们应该擅长像UI设计这样的事情呢?这几乎等同于说“为什么会计对一些开发人员来说如此困难?”

UI设计本质上是设计,而设计是规则的视觉表现。擅长设计意味着你理解为什么某些东西应该以某种方式呈现、行动和表现(例如,为什么链接应该突出显示或为什么页眉应该在页面顶部)。

设计和开发是两个完全不同的领域,但都需要背景知识和实践工作。如果你不愿意花时间学习其中一个主题,那么无论你的程序/网站看起来多好,你都不会很擅长它。


0

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

这有点像问为什么足球运动员打篮球很难。


0

当开发人员考虑UI时,他们通常会想到可以用于此任务或那个任务的完美小部件(我指的是文本区域、组合框、交互式Ajax搜索字段等)。 UI,尤其是HCI,应该从更低的层次上进行思考。将关于UI的思考分为4个步骤是有趣的:

  • 任务和概念模型:这是开发人员难以理解的最困难的部分。您必须从反思中抽象出所有关于未来平台、您可能使用的语言的想法。[Paterno, 97]是这个领域的参考。您将您的任务定义为一棵树,其中任务具有子任务。 以下是导出任务的示例。

  • 然后您定义抽象UI:这涉及将任务和子任务分组到工作区中。
  • 具体的UI:现在您可以决定使用哪些交互器。您现在应该考虑平台(大屏幕、PDA、手机等)。这是关键。您的任务模型和抽象UI可以在多个平台上进行因式分解。
  • 最终的UI,实现在选择的编程语言中。

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