Zoharwolf

这里是一个宅腐基程序员的随笔集合,偶尔可能会有自制游戏的相关讯息

思考令用户满意的软件设计——《设计心理学》读后感

前记:这是去年投稿在公司杂志上的文章,虽然有些稚嫩但是仍有可圈可点之处,文中有些理论目标我至今也没有很好地做到,故发以自省。相比投稿的版本有过修改,屏蔽了一些会透露信息的文字。

随着我之前参与开发的某系统一 期在客户方上线及投入使用,客户也对系统提出了许多修改的意见和建议。其中最让我们觉得大跌眼镜的并不是系统有什么逻辑错误和效率问题,或者诸如此类我们程序员会关心和预见的东西。用户觉得系统某些地方不知道怎么用、操作不合理、不符合自己的习惯,因此而带来的一连串的修改工作,这才是最让我们觉得头疼的问题。
在开发二期项目之余,读了一本名为《设计心理学》的书,作者唐纳德•A•诺曼是美国知名的认知心理学家、计算机工程师。书里列举了一些设计不佳的日常用品,并借以表达作者的设计心理学相关理论。虽然这本书出版时间是80年代末,但是书中的理论在当今看却仍然毫不过时,对我们的软件开发设计也有很多值得参考借鉴的东西。本文总结一些自认为很有帮助和学习价值的理论和观点。

设计原则
书中所述的良好设计有三个原则:良好的可视性、正确的概念模型和匹配、良好的反馈。虽然理论性较强,但是结合实际例子则很容易理解。
良好的可视性,即是指用户一看便知物品的状态和可能的操作方法。说到这个就想到我们的系统刚上线的时候,在用户流程流转的时候强制要求用户上传某附件。基于系统的框架内置功能,为了实现起来方便,设计成用户没上传附件时便不显示提交下一步的按钮。结果用户在实际使用的时候,发现没有提交下一步的按钮,也没看到任何关于上传附件的提醒,就不知道应该要继续做什么了,向我们打电话求助。了解这一现状之后,我们把系统改成下一步按钮一律可见的形式,但是点击时会弹出提醒用户上传附件的警告。通过这件事可以清楚地认识到,可视性是在设计中相当重要的一个要素。把本应该给用户看到的东西隐藏起来,缺乏相应的提醒,是让系统变得复杂难用的一个很重要因素。
正确的概念模型和匹配,使用户可以判定操作与结果,控制器与其功能、系统状态和可视部分之间的关系,进而可以预测操作行为的效果,而不只是死记硬背地记住每一步。作者唐纳德在书中举了一个他家中电冰箱的例子。电冰箱提供了“冷冻”和“冷藏”两个旋钮供用户调节温度,但是无论想调节冷冻室还是冷藏室的温度,却都需要同时转两个旋钮才可以实现,只旋转一个并不能成功。因为这两个旋钮其实是同时控制两个室的温度和冷空气流量的。尽管这冰箱提供了详细的调节说明书,但是这个设计无疑是失败的,因为它给用户造成了“只需要调节一个按钮即可”的错误印象。做系统也是如此,每个操作都是做什么的,必须足够准确,彼此之间的联系足够清晰,让用户对系统的功能结构形成一个正确的概念模型,才不会使客户想当然地随便进行操作,造成各种操作上的错误。
良好的反馈,就是说用户能接收到有关操作结果的完整、持续的反馈信息。用户在使用系统时,如果能够及时收到相关操作的反馈,让用户知道自己操作的这一步是真实有效的,就可以避免因为用户不知道自己的操作有效与否而反复地进行操作。比如发送短信,发布新闻之类的操作,如果用户因为没收到反馈而反复操作,还会给其他人造成麻烦。

执行和评估阶段的鸿沟
执行阶段的鸿沟,某种产品的操作系统是否与用户所设想的操作方法相一致?执行阶段的鸿沟是指用户意图与可允许操作之间的差距。衡量这一鸿沟的方法之一就是看某种系统能否让用户轻松地做他想做的,是否提供了符合用户意图的操作方法。评估阶段的鸿沟反映出用户在解释系统工作状态、决定自己所期望的目标和意图是否达到时需要作出的努力。如果用户很容易得到、并可轻松地解释系统提供的有关运转状态的信息,同时这些信息与用户对系统的看法又相一致,那么,这一系统的评估阶段的鸿沟就很小。
针对这一点,书中提到了亚里士多德的通俗物理学与牛顿的现代物理学。我觉得这个例子非常生动形象,也很适合类比到我们程序员平时开发系统的情况上。
亚里士多德认为,物体要想运动必须有一个力一直作用在它的上面,一旦力没了,物体就停止了。他之所以这样认为,是因为这是生活中随处可见的现象:人要想推动箱子,必须一直用力推,一旦停下来,箱子也就停了。但是学过物理的人都知道,后来的牛顿的物理学理论才是正确的,物体想运动不需要有力一直作用,在没有摩擦力等阻力的作用下,只要这个物体有速度,它就可以一直永远地运动下去,不会停止。但是世界上哪里会有不存在摩擦阻力的地方呢?如果把这些理论讲给一个在码头推箱子的工人,他可能完全不会接受,无论它如何正确。
我们做产品,最终是给客户使用的。我们是专业人员,我们懂得这系统里所有玄妙的原理。但是客户他不懂、不清楚,他使用系统完全基于的是他的生活经验、习惯。这就类似通俗物理学和现代物理学的矛盾,无论我们推崇如何正确、合理的设计,但是如果这个设计对于客户来说,不懂、不习惯、不会用、不理解、不接受,那么这个产品在设计上就是失败的,即使它是正确、合理的。设计人员和用户之间存在着各种各样的意识偏差。
因此,我们需要去迁就用户的习惯,无论这习惯是否合理。一个更贴近生活的例子,我们现在用的大部分键盘,都是肖尔斯键盘。上面的字母按照qwert排列。之所以这样,是因为最初这个排列是为打字机设计的,把轴容易相互卡住的键位故意设计的距离远一些,避免了打字机在打字过快的情况下频频卡住,提高打字效率。在现在这个打字机早已淘汰的时代,这个设计显然已经过时,有许许多多比肖尔斯键盘设计得更加合理、更有助于提高我们打字速度的键盘设计。但是这些都没有办法推广,就是因为肖尔斯键盘已经成为了全世界的习惯。任何不迁就这个习惯的配件生产厂家,最后的下场肯定是关门大吉。
去尽量了解和熟悉客户一向的习惯,这种了解十分重要。最初我们系统因为有些地方不太符合原来客户在OA系统养成的使用习惯,后来都被强烈要求修改。如果一开始就能充分了解客户的使用习惯,这种重做的工作就可以大大避免。

失误研究设计
所谓失误研究设计,就是一些可以良好处理操作失误的设计。大致分为预防失误和纠正失误两种。预防失误正像是楼梯、天桥上的护栏一样,可以避免很多悲惨的意外的发生。纠正失误的设计则是一种及时挽救错误的有效措施,这样的设计也是很必要的,它不会让人在使用产品时提心吊胆、小心翼翼。最经典的设计就是Windows里的回收站了,可以轻松地把误删的文件找回来。
在我们的系统中最典型的预防失误措施就是在用户启动流程之前做一遍验证,防止用户在启动流程之后点了浏览器的后退按钮,在缓存中启动流程的按钮还没被屏蔽,用户可以再点击。这样会给系统带来一些很恼人的bug,处理起来也异常麻烦。增加验证有效地把一切麻烦扼杀在摇篮之中,是很有必要的。在客户的要求下,我们的系统中也和其他系统一样,新增了撤销流程的功能。这也是一种典型的纠正失误的设计。

设计人员误入歧途的原因
《设计心理学》这本书在中后期总结了三条使设计人员误入歧途的原因,我觉得很不错,拿出来共同分享之。
美观新颖至上,为追求新奇走向大破大立。在时间充分和资金充足的条件下,设计时很容易就会开始走向创新,而创新很可能就会建立在突破传统的前提上。设计者也很容易因此陷入自我陶醉,没办法及时发现设计上的重大缺陷。其实美观新颖要想取得成功,是必须建立在好用易用的大前提上的。
与用户的角度不同,难以预知自己产品的弊端。就如之前说的通俗物理学和现代物理学的矛盾一样,因为和用户所处的角度不同,设计出来的产品过于专业,不符合用户的使用习惯,没有办法使用户快速上手,也没有办法让用户接受,最后导致失败。
取悦直接客户,忽视了最终的客户。因为平时直接沟通的是客户中的几名代表,很可能是客户那边的几位领导。但是最终做出来的产品却有可能是给客户那边的普通员工使用的。领导和员工的习惯和认知是否会有严重的不一致?就算暂时能让领导觉得满意,待到客户的员工使用后觉得不好而向领导抱怨时,领导也会产生不满,还会给我们带来许多不必要的rework。

通过阅读《设计心理学》这本书,我知道了许多以往虽然有依稀地意识到,但是无法系统地、全面地、深刻地认知到的内容。虽然书中所讲的大部分是日常用品的设计,但是其参考价值和意义远不止如此,对我们平时开发软件产品也有很大的帮助。作为开发人员,除了学习那些计算机软件开发相关的技术知识,也多多了解一些设计方面的知识,才能做出更加体贴、人性化的产品,让客户满意,防止使我们的许多工作成了白做工。也能让我们的产品在客户眼里更加出类拔萃,大获成功。


评论(1)
热度(8)

© Zoharwolf / Powered by LOFTER