我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?
同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?
我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?
同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?
当前回答
我认为他们的技能非常不同。优秀的设计师了解人类行为、颜色和字体的心理等。我认为这就像同时做营销人员和开发人员一样。非常有挑战性,但也不是不可能。
我会试着找一些用户界面专家,看看他们的学习建议是什么。除非你设计的是像谷歌这样极简主义的东西,否则如果这是一个重要的项目,你最好雇佣那些研究过UI艺术的人。
也就是说,如果你正在设计一款非常实用的应用,我认为你可以试着专注于界面的简单性和清晰度——我认为这至少是谷歌成功(以及堆栈溢出)的一半关键——即它是直观的,使用起来很愉快。
其他回答
用户自上而下地思考,而程序员在开始创建UI时通常是自下而上地思考。
我们(程序员)正在努力地思考如何创建一个数据模型来完成这项工作,并保存所需的数据等等。我们创建UI来整齐地映射到底层模型。以至于我们经常忘记观察我们的用户如何处理相同的任务,而没有进入他们的流程和思维方式。
我们很自然地期望系统的用户以与我们相同的方式思考问题,我们如何存储和处理他们的数据,因此也理解UI期望如何工作。
这通常与他们对任务的看法(和期望)不匹配。
如何解决?我认为一种方法是在向(潜在的)用户展示任何东西之前,实际地询问他们期望程序如何工作。永远不要给他们任何关于我们将如何实现某个功能的提示。与他们一起在纸上创建UI原型,让他们告诉你他们的期望和需求。不要认为任何事情都是理所当然的。
掌机的设计更加自上而下:
在开始开发之前 飞行员,据说是霍金斯带的 一块木头,大小 潜在的飞行员,在他口袋里 的一周。(摘自本文)
他会在木头上模拟要做什么,而不会考虑如何将其实现为代码。每次有了新想法,他就在那块木头上“试试”。
当然,你需要一些指导方针来处理你想到的一些想法,也许不是所有的想法都需要解决,即使我们技术上可以……
请参见要点1(消除选项)和要点3(承诺不足,兑现过多)。
左脑对右脑。有些人没有艺术感。
我敢打赌,通过学习和勤奋,任何人都可以在界面设计方面做得更好。这并不意味着你会成为一流的美工或设计师。
我认为改进总是有可能的。
我发现UI设计中最好的工具是观察第一次使用该软件的用户。做大量的笔记,问他们一些问题。永远不要指挥他们或试图解释软件是如何工作的。这是UI(以及编写良好的文档)的工作。
我们在所有项目中始终采用这种方法。看到一个用户以一种你以前从未考虑过的方式处理软件总是令人着迷的。
为什么UI设计这么难?一般来说,因为开发者和用户从来不见面。
吃自己的狗粮实际上并不是最好的方式。缺乏对用户关注的关注,虽然这是事实,但也不是故事的全部。同样,随着您的专业知识的增长,您也会逐渐远离正常的用户关注点。我认识的大多数开发人员都想在开发解决问题的软件方面做得很好。
这种脱节发生在想象力的失败。我们人类没有能力思考所有的可能性和组合。当然,我们试图用“更好的”方法来克服这个问题。
我发现唯一有效的方法就是让自己置身于接收用户反馈的火线上。通过这种方式,我了解到我正在解决的问题,不仅仅是一次,而是在用户使用我的软件的过程中持续不断地进行。
这不是一个简单的解决方案。你不仅要成为一名优秀的程序员,还要擅长X,因为X是你试图解决的任何问题。通过擅长X,你可以获得必要的经验来理解可能性和局限性。你可以开始在你的代码中考虑到这一点,从而在你提供的功能和UI设计中产生更精致的软件。
这不是重新训练你的大脑,而是获得有效解决问题所需的经验。如果你要做的是像Stack Overflow这样的全新游戏,你就必须负责用户反馈才能获得游戏体验。
我认为主要的问题与不同的才能或技能无关。主要的问题是,作为一名开发人员,您对应用程序是做什么的以及它是如何做的了解太多,并且您自动地从具有这些知识的人的角度来设计您的UI。
而用户通常一开始对应用程序一无所知,也不需要了解它的内部工作原理。
不使用你拥有的知识是非常困难的,几乎是不可能的——这就是为什么UI不应该由开发它背后应用程序的人来设计。