我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?
同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?
我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?
同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?
当前回答
说程序在UI设计方面很糟糕是没有抓住重点。问题的关键在于,大多数开发人员所接受的正式培训深入了技术。人机交互不是一个简单的话题。这不是我可以通过提供简单的一行语句让您意识到“哦,如果我使用x而不是y,用户将更有效地使用这个应用程序”来“思想融合”的东西。
这是因为你忽略了UI设计的一部分。人类的大脑。为了理解如何设计UI,你必须理解人的思想如何与机器交互。我在明尼苏达大学上过一门关于这个话题的很棒的课程,是一位心理学教授教的。它被命名为“人机交互”。这描述了UI设计如此复杂的许多原因。
因为心理学是基于相关性而不是因果关系,你永远无法证明UI设计方法总是适用于任何给定的情况。你可以认为许多用户会发现某个特定的UI设计很吸引人或高效,但你不能证明它总是具有普遍性。
此外,UI设计中有两个部分似乎被许多人忽略了,那就是美学吸引力和功能工作流。如果你追求100%的美感,人们肯定会买你的产品。但我非常怀疑美学能否减少用户的挫败感。
有几本关于这个主题的好书和课程可供选择(如Bill Buxton的《素描用户体验》和Edwin Hutchins的《野外认知》)。许多大学都开设了人机交互的研究生课程。
这个问题的总体答案在于如何教授个人计算机科学。这一切都是基于数学和逻辑,而不是基于用户体验。要做到这一点,你需要的不仅仅是一个普通的4年计算机科学学位(除非你的4年计算机科学学位副修心理学,并强调人机交互)。
其他回答
吃自己的狗粮实际上并不是最好的方式。缺乏对用户关注的关注,虽然这是事实,但也不是故事的全部。同样,随着您的专业知识的增长,您也会逐渐远离正常的用户关注点。我认识的大多数开发人员都想在开发解决问题的软件方面做得很好。
这种脱节发生在想象力的失败。我们人类没有能力思考所有的可能性和组合。当然,我们试图用“更好的”方法来克服这个问题。
我发现唯一有效的方法就是让自己置身于接收用户反馈的火线上。通过这种方式,我了解到我正在解决的问题,不仅仅是一次,而是在用户使用我的软件的过程中持续不断地进行。
这不是一个简单的解决方案。你不仅要成为一名优秀的程序员,还要擅长X,因为X是你试图解决的任何问题。通过擅长X,你可以获得必要的经验来理解可能性和局限性。你可以开始在你的代码中考虑到这一点,从而在你提供的功能和UI设计中产生更精致的软件。
这不是重新训练你的大脑,而是获得有效解决问题所需的经验。如果你要做的是像Stack Overflow这样的全新游戏,你就必须负责用户反馈才能获得游戏体验。
UI设计和软件开发需要大脑的两个半球。这并不是说设计师在开发方面很糟糕,反之亦然,只是他们试图用错误的大脑来做。任何严肃的人都不会反对。
“我们能做些什么来重新训练我们的大脑,让它更有效地设计出令人愉悦、有用的展示层吗?”
是的——使用接口驱动的架构。首先根据业务需求设计用户流程——然后根据用户流程设计编程逻辑和数据库。如果你将中间层和后端设计成服务前端的结构,那么你将拥有一个以用户为中心的应用程序。
UI设计是一种完全不同的技能。它与视觉艺术密切相关——能够欣赏和创造视觉对称和美。不管出于什么原因,通常程序员都不擅长视觉艺术。我知道有例外,但作为一般规则,这是成立的。
所以真的(除非你是这条奇怪规则的例外)——这应该像处理其他你没有天赋的领域一样。你应该评估一下自己是否能和现有的技能很好地相处——或者甚至可以在有机会的时候花点精力来改进。然而,你最好在自己擅长的领域发展,也许可以寻求在你所不擅长的领域与高手合作。
Marcus Buckingham写的《现在,发现你的优势》是一本很好的书。这本书很容易读。
如果你读过《为什么软件很糟糕》这本书,你就会看到Platt的答案,这是一个简单的答案:
开发人员更喜欢控制而不是用户友好性 一般人更喜欢用户友好而不是控制
但你的问题的另一个答案是“为什么牙科对某些开发者来说如此困难?”UI设计最好由UI设计师来完成。
http://dotmad.net/blog/2007/11/david-platt-on-why-software-sucks/