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

1

为您的母亲设计它。


1
十年前,我在UI设计方面真的很糟糕...我想帮助我逐渐变得更好的是谦虚和追求完美的健康结合。
底线:永远不要对自己过去或现在的成就感到太满意。从自己和他人的错误中学习。

1

我使用我所谓的“奶奶测试”。

  • 如果您亲爱的老奶奶无法使用它,则存在问题。
  • 假设她知道程序的内容,例如,知道如何报税并尝试使用Quicken。

1
就像音乐一样: 有时候人们可以是技术上很出色的音乐家,但不是艺术家。我的经验法则是始终只向用户呈现他们当前所需的UI。我注意到很多后端开发人员在制作UI时会将每个可能的选项都挤满屏幕。虽然这些类型的思维喜欢先了解所有细节,然后慢慢忽略他们不需要的部分,但这对大多数最终用户来说并不起作用。

1
一本很好的书,提供了许多关于用户界面及其重要性的思考,它就是Neal Stephenson的《开始之初》。并不是每个人都需要图形用户界面,只有许多不会编程的人需要。这就像迪士尼世界的动物王国和亚马逊雨林之间的区别一样。

1

“良好的UI设计”实际上有两个问题

  1. 获得正确的设计
  2. 正确地实现设计

这两个问题都很难。根据我的经验,这两个问题应该并行探索,以免在项目后期出现不愉快的惊喜(“为什么我们性感的拖放在IE8中超级慢??你是说它无法修复吗???”)

要获得正确的设计,您需要探索可能性。书籍可以指导您尝试对您的情况最有意义的事物-当然,经验更好。此外,您绝对需要来自真实用户的反馈-否则,您怎么知道设计已经正确?(肯定不能告诉..继续阅读!)

“正确地实现设计”则是下一个问题,因为这意味着您找到的适当设计必须得到实施。

那些与“用户体验 / 图形用户界面”有关的事情很难,因为找到正确的答案涉及理解人类想要什么-而他们无法客观地告诉你,而你自己也无法从“外部”得知。这意味着(体验)引导的试错方法是唯一可行的方式。


为了更清楚地回答你的问题:

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

对于专业的开发人员来说,一个大问题是他们对软件工作原理的理解与用户认为的工作原理非常不同(例如URL“www.stackoverflow.com”应该写成“com.stackoverflow.com”,如果你了解DNS的工作原理,但试着销售一个期望像这样的URL的浏览器 :))。

顺便说一句:我建议你研究“体验设计”而不是“用户界面设计”,但那是另一回事。


你的倒数第二段第3行是不是指的是"com.stackoverflow.www"? - Darkwoof

1
吃自己的狗粮实际上并不是最好的方法。虽然确实缺乏关注用户问题,但这也不是全部。随着专业知识的增长,与正常用户关注点越来越远也是一样的。我认识的大多数开发人员都想在创建解决问题的软件方面做好工作。
断电发生的地方是我们想象力的失败。我们作为人类无法想到所有可能性和组合的能力。当然,我们试图用“更好”的方法克服这一点。
唯一我发现行之有效的方法是让自己置身于接收用户反馈的火线。这样我可以了解我正在解决的问题,而且不仅仅是一次,因为用户使用我的软件是持续的。
这不是易如反掌的解决方案。你不仅要成为一个好的程序员,还要擅长解决X问题,X是你要解决的任何问题。通过擅长X,您可以获得必要的经验,以了解可能性和限制。您可以开始在代码中考虑这一点,从而在您提供的功能和UI设计方面获得更加精致的软件。
这不是重新训练你的大脑,而是获得解决问题所需的经验。如果您正在做像Stack Overflow这样的全新项目,经验只能通过用户反馈来获得。

0

我为社交圈之外的人设计了一个程序,并观察了他们的行为。在这个过程中,我不再受到朋友的偏见、自己的骄傲和自我影响。通过改进应用程序,我变得更加谦虚,对设计问题更加敏感。我学会了任务导向设计的重要性,以及简单性的重要性。我也明白了拥有太多功能的代价。随着经验的积累,你也会明白。

以下是我强烈推荐的一些参考资料:

  • joelonsoftware jef raskin's "the humane interface"
  • robin william's "a non-designer's guide to design"
  • alistapart上的大部分UI文章
  • jwz的编程博客
  • 苹果人机界面指南

以下是我强烈建议您忽略的一些参考资料和理念:

  • "主题"
  • 桌面应用程序,除非您需要驱动程序/文件系统访问
  • “越多越好”的想法

0

一般来说,程序员在UI设计方面往往不擅长。当开发商业软件/网站/娱乐等时,应该尊重那些专门从事可用性和UI设计的设计师。

大多数程序员的问题在于他们无法超越自己的眼界,意识到什么能让事情更容易理解和消化。

最好的UI设计原则之一是始终将接口设计为简单易用,适合您的目标用户。

一个很好且简单的例子是电梯。通常,您按按钮打开/关闭门以及穿过建筑物的楼层。如果您必须翻转旋钮和开关才能从1楼到2楼,或者必须滑动面板才能访问三个关键开关,这些开关有三个彩色钥匙,您必须按特定顺序旋转才能到达某个楼层,您能想象吗?

您可以快速看到糟糕接口的困难程度以及良好接口的简单易用性。


0

我相信所有计算机科学程序员都有能力产生良好可用的设计,因为可用性设计要求开发人员沿着某些路径和规则思考。而对于某些程序员来说,开发出一个好看的设计几乎是不可能的。这并不意味着两者不可避免地相关联。就像莫扎特能够创作美丽的音乐,但并不擅长足球一样。


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