我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?
同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?
我们中的一些人只是在UI设计的软方面遇到了困难(尤其是我自己)。“后端编码器”注定只设计业务逻辑和数据层吗?我们是否可以做些什么来重新训练我们的大脑,使其更有效地设计出令人愉悦和有用的演示层?
同事们给我推荐了《网站设计》、《不要让我思考》、《为什么软件很糟糕》等几本书,但我想知道其他人在这方面做了什么来弥补他们的不足?
当前回答
用户自上而下地思考,而程序员在开始创建UI时通常是自下而上地思考。
我们(程序员)正在努力地思考如何创建一个数据模型来完成这项工作,并保存所需的数据等等。我们创建UI来整齐地映射到底层模型。以至于我们经常忘记观察我们的用户如何处理相同的任务,而没有进入他们的流程和思维方式。
我们很自然地期望系统的用户以与我们相同的方式思考问题,我们如何存储和处理他们的数据,因此也理解UI期望如何工作。
这通常与他们对任务的看法(和期望)不匹配。
如何解决?我认为一种方法是在向(潜在的)用户展示任何东西之前,实际地询问他们期望程序如何工作。永远不要给他们任何关于我们将如何实现某个功能的提示。与他们一起在纸上创建UI原型,让他们告诉你他们的期望和需求。不要认为任何事情都是理所当然的。
掌机的设计更加自上而下:
在开始开发之前 飞行员,据说是霍金斯带的 一块木头,大小 潜在的飞行员,在他口袋里 的一周。(摘自本文)
他会在木头上模拟要做什么,而不会考虑如何将其实现为代码。每次有了新想法,他就在那块木头上“试试”。
当然,你需要一些指导方针来处理你想到的一些想法,也许不是所有的想法都需要解决,即使我们技术上可以……
请参见要点1(消除选项)和要点3(承诺不足,兑现过多)。
其他回答
“从屏幕的两面进行设计”是程序员发现UI设计困难的一个非常简单但深刻的原因:程序员被训练成从边缘情况考虑问题,而UI设计师则被训练成从常见情况或用法考虑问题。
因此,从一个世界到另一个世界当然是困难的,如果其中一个的默认训练是完全相反的。
"其他人做了什么来消除他们的 这方面的不足?” ——克里斯·巴兰斯
与你能找到的最少的电脑储蓄终端用户一起工作。(一个从未见过你的软件的新手)。 从他们那里得到反馈,看看是什么让他们觉得糟糕。 解决这些问题,把它交给另一个不懂电脑的用户, 重复这个过程。
当有足够多的新用户可以使用你的产品时,你就知道你已经完成了你的工作。
(此外,你的软件可能看起来很像微软的,你可能不会喜欢使用它…)
但这不是重点!关键是最终用户可以使用它,并且喜欢使用它!
不是开发者!
同时阅读这篇文章,我发现它在这个领域很有帮助。它基本上是说你应该向用户的需求让步。
换句话说……
你必须看看用户已经在尝试做什么……
人行道和学生
在我上大学的那个校园里,有一条学生们在上下课时留下的小径。当学校注意到这条小道时,他们在人们已经走过的地方竖起了栅栏。学校做错了。你想在学生们已经步行的地方建一条人行道!
视频商店和Netflix
再举一个例子,想想最近的音像店历史:很久以前有很多音像店:Block Buster video等等……人们不喜欢那些音像店的什么地方?当然是滞纳金。所以Netflix出现了,取消了滞纳金,因为它更符合客户/最终用户的需求。
现在,“积木老兄”和其他收费音像店一样,都要破产了。
这个更难做吗?让你的大脑停止运转,给人们他们想要的?当然是……这是让你的意志屈从于他们……这总是比较困难,但最终实现的目标是为最终用户提供他们想要的东西。
用户自上而下地思考,而程序员在开始创建UI时通常是自下而上地思考。
我们(程序员)正在努力地思考如何创建一个数据模型来完成这项工作,并保存所需的数据等等。我们创建UI来整齐地映射到底层模型。以至于我们经常忘记观察我们的用户如何处理相同的任务,而没有进入他们的流程和思维方式。
我们很自然地期望系统的用户以与我们相同的方式思考问题,我们如何存储和处理他们的数据,因此也理解UI期望如何工作。
这通常与他们对任务的看法(和期望)不匹配。
如何解决?我认为一种方法是在向(潜在的)用户展示任何东西之前,实际地询问他们期望程序如何工作。永远不要给他们任何关于我们将如何实现某个功能的提示。与他们一起在纸上创建UI原型,让他们告诉你他们的期望和需求。不要认为任何事情都是理所当然的。
掌机的设计更加自上而下:
在开始开发之前 飞行员,据说是霍金斯带的 一块木头,大小 潜在的飞行员,在他口袋里 的一周。(摘自本文)
他会在木头上模拟要做什么,而不会考虑如何将其实现为代码。每次有了新想法,他就在那块木头上“试试”。
当然,你需要一些指导方针来处理你想到的一些想法,也许不是所有的想法都需要解决,即使我们技术上可以……
请参见要点1(消除选项)和要点3(承诺不足,兑现过多)。
我尽量与设计相关的网站和文本保持联系。我发现Robin Williams的著作《the Non-Designer’s Design book》在这些研究中也很有趣。
我相信设计和可用性是软件工程中非常重要的一部分,我们应该更多地学习这方面的知识,不要再为我们不应该做设计找借口了。
每个人都可以偶尔成为设计师,每个人也都可以成为程序员。
真正帮助我改进设计的是找一个开发人员,QA人员、项目经理或任何碰巧路过的人,让他们尝试特定的小部件或屏幕。
当你看到别人第一次使用你的软件时,你会惊奇地发现