你如何构建软件的用户界面?

时间:2009-10-07 15:06:06

标签: user-interface

当您获得为部门创建软件的任务时,您如何创建一个非常好的用户界面?

8 个答案:

答案 0 :(得分:12)

用户不知道他们想要什么

根据我的经验,用户通常不知道他们想要什么,即使他们认为他们这样做。很多好的设计都遭到用户的影响,实际上:“这就是我们所说的我们想要的东西,但在长期开发周期结束后收到产品后很难用它做一些关键的事情。”

尝试“工作阴影”

如果您正在创建的系统将替换现有系统,请尝试“将您的未来用户作业遮蔽”。当他们使用旧系统时,请在工作中跟随他们,并仔细记录他们如何使用旧系统。询问用户有关他们为何做特定事情的问题,以此作为查找笨拙或缺少UI功能的方法。当用户遇到困难时,询问用户:“你希望它如何工作而不是你现在所困扰的东西?”

或者将您的软件开发方法更改为更敏捷

您可能无法更改软件开发方法,但如果可以,我建议您使用agile software development方法进行调查,例如Feature Driven Development

敏捷开发需要建立和维护,并且需要未来用户的一定程度的承诺和参与。但是,如果您可以管理这一点,敏捷开发允许您对产品进行小的(廉价)更改,引入最简单的工作,从对用户最重要的事情开始,并从用户那里获得关于什么的快速反馈会更好。这种迭代方法可确保您制作的内容与用户期望的内容之间不会存在巨大差距。另一个好处是,如果项目的预算被削减,即使产品不完整,您的用户也会留下可以工作并实现关键功能的东西。

修改
正如Scott A. Lawrence在他的评论中提到的那样,在迭代GUI设计时,使用草图/模型以及来自客户端的关于该功能应该做什么的描述性信息是有用的。

答案 1 :(得分:3)

倾听用户的需求,然后找到真正新的或经过验证的旧方法,为他们提供所需的信息。

如果您不熟悉界面设计,请先了解Joel Spolsky的the articlesInterface Hall of Shame

答案 2 :(得分:3)

我从纸质草图开始。在Bill Buxton阅读Sketching User Experiences之前,我不会先建议草图。但是,一旦我们实际为项目做了这件事并根据用户的反应对草图进行了更改,结果比不使用草图的方法要好得多。

草图的价值不仅仅在于它们比实际代码更容易改变,而是它们为用户提供了一些有形的陈述是(或否)并在代码之前将大量有用的问题带到表面是写的。在整个界面上绘制草图或讲故事,可以让您在使用难以更改的实际代码走上路径之前思考应用程序的实际工作方式。

答案 3 :(得分:3)

在进行接口时,没有任何替代方法可以与用户交谈。无论你做什么,都要向实际用户展示潜在的界面,而不仅仅是他们的经理!

让他们完成他们将用于完成现有界面工作的过程,并按照步骤使用建议界面的草图。寻找改进的领域,例如,如果他们需要从表单输入数据然后确保界面上的字段与纸质表单的顺序相同,那么您将极大地减少数据错误。

与他们讨论当前流程使他们烦恼的原因以及当前延迟的位置以及他们看到的数据中的错误类型。这将告诉你一些你需要知道的事情,以避免这次犯同样的错误。

在这个阶段,与用户交互几个小时可以节省数百个编程时间。这是项目成功的关键任务。

答案 4 :(得分:2)

针对真实用户测试界面,倾听他们的批评,然后明智地进行改进。

答案 5 :(得分:1)

看看你是否可以至少与专业的界面设计进行讨论。他们会知道你不会做的事情。这是一个庞大而复杂的领域,有很多关于这个主题的书籍。

对于您正在开发的平台,应该有一些官方UI指南。看看他们。 (考虑查找其他平台的指南。)阅读AskTog(和Jakob Nielsen's site等网站上的文章,如果这将在网上)。查看您喜欢和不喜欢的UI,并尝试区分它们。尽可能多地学习。你将无法在合理的时间内成为专家,但你可以给自己一个很好的机会来建立一个良好的界面。

设计完成后,将其草绘在纸上,并将其显示给使用它的人。 (在我工作的一个地方,分析师会通过与用户的经理交谈获得UI要求.Ick。)一旦你准备好实现某些东西,通过要求典型的用户执行一个典型的任务来快速进行可用性测试。要记住的事情是(a)不指导用户没有绝对的挫折感,(b)做好记录(录制会话是最好的),以及(c)每个版本不要超过三个用户。< / p>

对于内部使用的软件,你不会有足够的资源来做好工作,而你真的不需要一份非常好的工作。争取“不讨厌”;无论如何,这可能比他们期望的还要多。

答案 6 :(得分:1)

就个人而言,我发现最有价值的事情是去他们工作的用户,并要求他们指导他们如何执行目前的任务。你要做的是获得足够的信息,你可以成为像他们这样的(初级)用户。对于目前尴尬的东西或皇家PITA,要特别注意。

这使得如此有价值的是,如果你只是与用户交谈,他们只会想要他们已有的东西,但也许会有所改善。他们通常不知道什么可以用软件做什么,什么是简单的,什么是真的很难。

一旦您既是用户又是开发人员,您可以看到他们无法做到的事情。您可能会看到重组整个过程的方法,以便在计算机上更好地工作。您可能会意识到,在流程的不同阶段(或者只是为他们填写)提供证书信息将以他们无法想象的方式大幅改进。

我可以给出的一个例子是我们被要求计算水阀控制面板的项目。现有的面板是一串涂漆线(代表管道),其中有物理按钮控制可打开或关闭的阀门。一位工程师对此进行了愚蠢的数字化处理(配有图形按钮)。不满意的是,我花了一个午餐时间用GUI工具制作一个图表,其中包含在打开和关闭图片之间切换的阀门的实际图片,以及根据各种阀门的状态显示空或充满水的管道横截面。这不仅仅是他们所拥有的东西的副本,而且更好地可视化系统中有水流的地方。在我不知情的情况下,当时有一些动向要求我们签订合同。当PE看到重新设计时,他很兴奋并说“这个会卖掉系统!”

当然,通常的考虑因素是使普通操作变得容易且不常见(但不会使普通界面混乱)。但恕我直言,这些是次要的。

答案 7 :(得分:1)

需要构建用户界面时?我个人抱怨并抱怨我是开发人员。不是设计师,不是图形艺术家,不是Photoshop商店。

编程和UI设计彼此orthogonal。它与编程和营销需要完全不同的技能组合的方式根本没有区别。当然,这并没有真正阻止人们让我设计UI,我总会把一些看起来很合理的东西放在一起。真正有用的提示:

  • 在菜单后面很少使用命令。例如,用户更倾向于使用粗体和斜体文本而不是将其转换为小型数据。

  • 业务线应用程序,数据输入应用程序或具有大量字段的任何内容都应该完全可以通过键盘导航。通过用户界面切换,确保焦点以合理的方式进展。如果可能,允许用户使用箭头键进行导航,以便按下向下箭头将焦点移动到下面的控件(用户更喜欢通过大量控件水平跳转)。

  • 用户不喜欢让人看着他们的肩膀,所以使用screencapture或视频软件来记录他们的互动。当您的用户停止时,笨拙地使用鼠标在字段之间移动,搜索特定功能的几分钟,您知道自己有问题。

  • 用户讨厌模态窗口。 “我想做的就是更改我的密码,为什么这个模态窗口会锁定整个应用程序?”

  • 由于您的代码在最终产品中不可见,因此就用户而言,UI 应用。在编写一行代码之前,在纸上设计UI有时会很有用。

  • 很多时候,开发商店会为他们的应用程序的v1.0创建一个纸质用户界面,但不会为v1.1,1.2,2.5等的模型打扰。最终的结果是可以预测的:在您推出漂亮的软件试用版本一年半之后,您的用户界面已成为一个不稳定的混乱和垃圾。在纸上更改设计比在代码中更容易,因此在对UI进行修改之前,记录模型中的所有更改非常重要。


话虽如此,如果你想要一个非常出色的用户界面,你需要说服你的老板,应用程序开发和用户体验设计不会重叠。 Developers can't design software,最终用户和商业用户自相矛盾地无法设计出体面的用户体验,而您办公室的平面设计师并不知道交互设计的第一件事。

按照Apple的例子,聘请专业的用户体验设计师。它的成本要高一些,但是你得到的质量保证是你无法从开发人员那里得到的。