刷新Oldschool GUI设计
我已经开发了10多年的桌面软件,主要是简单的数据输入软件。我的问题是,它看起来总是一样:左边的树形视图和右边的许多文本/数据字段,这取决于当前正在处理的数据类型。有没有新的想法,如今这种软件应该是什么样子?
为了进一步说明:
它是非常分层的数据,主要用于电子设备。有一些数据元素为设备提供了静态设置,还有一些部分描述了设备的某种"程序"。有很多(超过30个)不同的输入掩码。当然,我使用组合框和上/下输入字段。
解决方案
让所有软件看起来都一样是一件好事。使人们易于使用软件的最佳方法之一是使其外观与用户已经知道如何使用的其他软件完全相同。
对于如何处理大量数据,基本上有两种常见的策略。第一种是在一页上有很多数据输入字段。接下来是在一种向导样式的界面中只有几个数据输入字段,但是有很多页面。专家用户发现后者的使用要慢得多,就像一遍又一遍地输入数据的用户一样。但是,向导样式的界面对于新用户而言不那么令人困惑,因为它一次提供的元素较少,并且倾向于提供有关它们的更多详细信息。
我确实建议使用基于自动完成功能的组合框替换尽可能多的文本字段。这使用户可以输入与文本框完全相同的数据,而且还允许用户在键入部分数据后通过单击向下键滚动浏览选项来保存键入。
提供有关正在输入什么数据的更多详细信息,可能会得出更具体的答案。
如果行得通...
根据数据所发生的情况(即是分层的还是相当平坦的),我们可能希望尝试使用基于选项卡的隐喻,或者也许是" Outlook样式",并在其侧边栏显示各节的应用程序。我最近使用的另一个概念是"对象桌面",这是我最初看到的,由Scott Ambler提出(构建有效的对象应用程序)。在这种情况下,我们可以显示项目的集合,或者用户可以"剥离"单个记录以便于访问。
我们提供的信息不足以真正建议我们使用其他接口。但是,我可以用一个问题回答问题吗?为什么我们认为必须更改它?顾客有抱怨吗?如果没有,客户似乎对软件的当前运行方式感到满意,因此我不会对其进行更改。如果客户对此有所抱怨,他很可能不仅会说"不好",还会说"为什么看起来不...",这将为我们提供一个更改方法的想法。
我曾经不得不重新设计一个非常过时的商品管理系统。旧版本是为现在已失效的数据库系统编写的,该系统仍在MS-DOS下运行。客户建议我应该创建一个原型,这种重新实现的样子,然后由他决定是否获得这份工作。我用现代的MySQL数据库替换了旧的,失效的数据库,用客户端服务器方法替换了有问题的共享对等访问,并且我选择用Java重写UI,因为使用了不同的OS,并且移植成本最低。到目前为止,这个概念似乎不错,客户喜欢它。但是,当他问员工对此有何看法时,他们问:"到目前为止,这很好,但是我们有一个问题:为什么它看起来不像旧的?"。实际上,事实证明,即使使用了所有现代技术,他们也希望该界面看起来像旧的一样,并且能够像旧界面一样操作。因此,我不得不用Java重新构建一个1986年的可用性噩梦MS-DOS UI,因为没有其他UI被接受。
对我而言,最重要的是干净,可用,合乎逻辑的设计。如果程序对用户有意义,不笨拙且按广告宣传,那么与UI相关的所有其他操作本质上就像在粉刷房屋。有时,我会推出一个新版本的程序,该程序的本质上是相同的控件,但外观不同。
我们之所以选择树状视图,是有原因的,因为这样做可能很有意义。根据语言的不同,各种UI库中提供了不同的容器和控件,但是我倾向于坚持熟悉的习惯,因为用户可能会了解树控件的工作方式以及组合框的工作方式。
我还要回答一个问题,那就是问我们考虑改变的动机是什么?像其他海报一样,我同意一致性也有一些价值,但是在不忽略自己的内心深处感觉中也有很强的价值。也许我们觉得用户的效率不如我们希望的那样,或者我们已经听取了客户对此的反馈意见,或者我们只是想为自己的兴趣添加一些创新。在我看来,抓痒是开发人员的一个很好的特征。
我提倡的一件事是进行详细的用户研究。我们对用户如何使用所创建的界面了解多少?我们知道关键任务,整体工作流程吗?我们是否知道一项任务经常消耗用户60%的时间,或者某个任务每月仅执行一次?很好地了解用户的实际行为(而不是他们所说的所做的事情)是开始思考可能值得进行哪些更改的好地方,尤其是如果我们可以重构任务以获取质的不同用户体验时,尤其如此。
我们可能希望在重新定义UI中包括的几个特定的替代设计可能是方面浏览(非常适合在层次结构中进行搜索和浏览),或者建立默认值/过去响应的数据库,以便文本框可以使用预测性完成。但是,我认为我的出发点将是用户研究。
伊恩
用户界面必须是可用的,只是不要因为将它看起来更好(沿这条路而行)而误将其更改为适合花哨的内容的内容...
- 确保添加的小部件/控件确实增加了业务价值
- 确保添加的小部件/控件不会使体系结构混乱(过多),并使应用程序更难以管理/维护
- 尝试保持平台标准以执行操作(例如,Vista ux准则)
:)
// W