今天在infoQ上读到一遍文章,
Alan Cooper会怎么做?这是一遍翻译自Naysawn Naderi的文章。
我觉得里面很多的一些想法真的很不错,值得我们学习。前段时间在研究用户交互设计,与几个朋友讨论到的一些内容,在此文章中也有涉及一些话题。虽然可能只是理论上的,实现起来比较困难,但是作为从事这行业的人,有责任提供给用户更加友好的体验。
所以下面把文章内容转载出来,供大家分享
无论使用的是桌面的,Web的或是手机上的应用程序,用户界面都在其中起着一个重要的作用。Alan Cooper,用户界面设计的思想领袖,在他的《About Face》一书中给出了一些有趣和有用的建议来帮助应用程序创建UI。下面是该书中的部分重要思想。
为中级用户(Intermediates Users)设计
Cooper认为,不管什么软件产品,它的绝大多数用户都可以归类为中级用户——即那些基本了解如何使用产品和一般使用产品重复进行同样操作的用户。他估计,这样的用户约占使用产品总人数的80%,而剩下的20%平均分布在初学者和高级用户当中。
尽管如此,他饶有兴趣地指出,虽然中级用户是产品的主要使用群体,但是他们的需求却往往在UI设计中被忽视。他指出,由于管理层经常与初学者打交道,因此 都倾向于满足初学者大部分的需求。而开发人员,应该定义为专家用户,他们在思考时都倾向于将终端用户也看作为专家用户。Cooper认为,虽然中级用户是 产品的主要使用群体,但是他们在这样的混乱情况下都显得很迷惑。
他解释到,三种类型用户的需求由他们熟悉产品程度的不同而不同。专家用户想要快速地干活并且可以定制应用程序,而初学者更多关注的是基本工具的概况。中级用户则倾向于使用工具来重复地做同样的事情,并且不希望界面妨碍他们的工作流程。
使用工具来帮助初学者成为中级用户
虽然只有10%的产品用户是初学者,但是所有的产品用户都要经历初学者的阶段。因此要特别注意去设计一些界面来帮助新手用户学会应用程序的基础。
虽然UI设计的目标是帮助初学者转移到中级用户,但是Coppe很快指出,一旦一名用户从最初状态过渡到了下一个状态,那么那些帮助都不再有太大用处。事实上,它可能会妨碍用户的工作流程。
大量产品可以帮助培养初学者,但同时它们也干扰着该产品的中级用户。例如在VS2008中,我们在生成的单元测试代码里加入注释来帮助初学者理解一个单元 测试的各个组成部分。虽然它们很好地达到了目的,但是一旦组成部分被理解后,它们就会妨碍用户。因此我们在VS2010中将它们移除了。
想要帮助用户成为中级用户,Cooper建议,可以在UI上添加一些概要信息,来帮助用户如何使用产品。他指出,当用户想要关闭这些信息时,它们应当可以被移除。这可以采用经典的“入门指南”视频的形式来概述产品的功能。
Cooper认为,在线帮助和工具提示实际上更好地满足了中级用户而并非初学者,因为他们的需求略有不同。他提到,中级用户会在帮助文档中查找参考资料,而初学者往往对文档的概要信息更为感兴趣。
少即是多
我喜欢一句话叫做:“不管你的界面有多酷,少一些会更好”。
有时在UI设计中,我觉得我们忘记了用户是将产品当做一个工具在完成特定的目标。有时我们也被很酷的导航工具所左右,将注意力过多地放在它上面。一个在黑暗中可以闪闪发光的紫色锤子,如果不能够有效的把钉子钉进木头的话,它仍然是毫无用处的。
Cooper是一个简约设计的主张者:在简约设计中每一个选项都应该有目的并且是直接的。Cooper主张减少用户界面中过多的直接选项。他认为,在一个精心设计的UI中,用户界面对用户几乎是透明的,因为它自然地符合了用户的思维模式。
为最可能的操作进行设计,为可能的操作提供方法
Cooper主张在设计产品和通过应用程序对主线流程进行优化时,应当按照用户的思维模式来做。虽然这常常意味着要在窗口中去掉很多程序员看来很舒服的选项,但是这并不意味着没有方法来做那些复杂精细的事情,而是说访问它们要困难一点。
Cooper认为,不管用户在应用程序工作流中的哪一个步骤,总会执行一两种活动类型。因此,界面应当被优化来帮助用户找到这些活动,并且通过工作流来指 导他们,而并非每次仅仅列出所有的选项。此外对于用户而言,也应当有方法来让他们访问到非主流的活动,但是UI不应当为此而进行优化。
我认为Office Ribbon在这方面做得很出色,它为最可能的操作进行了优化并且还允许其他可能进行的操作。在Ribbon中,用户最喜爱使用的条目只需要1次点击,使 用较少的条目需要2次点击,而那些不太可能用到的条目需要3次或更多的点击。可以很清楚地看到,他们为最可能的操作优化了UI。
移除错误提示和确认对话框
按照遵循用户的思维模式和移除所有妨碍中级用户工作流程的原则,Cooper主张移除掉产品中所有的错误和确认对话框。他认为从统计学角度来看,应用程序应该有着很好的正确率,它要做的是为用户提供一个撤销他们操作的选项。
Cooper说,用户都想看到对他们可用的选项,然后进行操作,并希望执行完后可以得到一个确认来告知刚刚的操作已经成功执行。如果一个操作结束后如果没 有确认的话,用户会想知道他们的操作是否已经真正地执行。为了能够与用户交流操作的结果,相比较使用一个弹出的提示框,Cooper更提倡使用内嵌的状态 提示和积极的听觉反馈。
虽然我同意移除所有环境下的确认对话框很理想化,但是要将他它们全部移除显得太过于鲁莽,这不是我的风格。想要实现Cooper的建议,开发者需要让用户 执行的每一个操作可逆,这样做不仅代价高,而且在我来看也不是很必要。我喜欢尽全力地移除确认对话框和让操作可逆,但是万一碰到暴力的(drastic) 操作,例如磁盘格式化和删除文件,弹出一个确认对话框看起来会更好,实际上这也是用户所期待的。
另一方面,我同意Cooper关于移除所有错误对话框的观点。尽管错误对话框对程序员来说很有意义,但是它们对终端用户的意义却很小。我看到很多用户在他 们的工作流被错误对话框破坏后变得非常泄气。Cooper提到,虽然它们可以用来标志代码的某个部分发生了错误,但是用户往往都将其理解为“我做错了什么 事情”。当用户被反复告知出错的话,他们会开始讨厌你的产品。我最近在和Mac UI打交道,并且很惊讶地看到它们似乎不断地吃掉了自己的异常。显然,出现了问题是不应该呈现给用户看的。