建议初学者阅读“编程规则”,资深者阅读“软件之道”
最近看了《软件观念革命—交互设计精髓》这本书,作者(美)Alan Cooper,是一位有25年IT经验,10年交互设计咨询经验的卓越权威。
该书提到软件开发领域的三次革命:
1. 高级语言 20世纪50年代,使软件开发从机器语言的束缚中解放出来。
2. 软件工程 20世纪70年代,使软件开发的注意力从语言拓展到开发过程。
3. 人机交互 20世纪90年代,人机交互理论改变了一般商用软件的设计开发流程和方式
人机交互(Computer – Human Interaction)设计被作为软件开发的第三次革命提了出来。
我觉得这本书写的很好,但本书内容繁多(500多页),涉及各种软件类型,就企业应用软件而言,如下内容最为关键:
作者认为目前的软件糟透了!主要原因就在于软件的交互界面设计的太糟糕了,这些界面都是技术人员设计的,他们更习惯于和CPU打交道,而不善于与人交流,这些界面往往纠缠于技术实现,而忽略的软件的最终目标—为人服务。
交互设计要面向用户使用目标,而不要纠缠与技术和功能,用户目标是稳定和清晰的,功能仅是为了实现目标,万不可本末倒置,如果你能够用最少、最简洁的功能实现用户目标,就是好的设计。记住UI设计要目标导向。
作者提出了附加工作的概念,非常有启发性。并举了一个例子,说明什么是附加工作:
你开车去上班,需要开车门、发动汽车、挂档……等,这些动作相对你上班的目标而言,都是附加工作,如果“大黄蜂”把你抱入汽车送达办公室,就更好地完成了你的目标。
当我们以用户目标为导向思考和设计界面时,会发现过去的许多界面设计都是复杂、累赘和别别扭扭的,我们会对UI设计上升到一个新的层次。
软件要让用户使用的过程流畅,不要经常打断用户,例如弹出窗口,要求用户对他的行为进行确认或者报告程序的错误或状态。这里作者也列举了实际生活中的例子:
当你在超市出口结账时,如果结账员喋喋不休地问:这瓶可乐你确认要买吗?这块腊肉你确定要买吗?你一定火冒三丈了;当你发动汽车时,汽车的导航屏幕上提示:您确实要发动汽车吗[Yes,No]?,(你关的时候它也会问:你真的要关吗?)你可能挥拳砸向你的爱车!但我们的软件却自以为是地这样做着。你可能会问:如果用户误操作了怎么办?可以撤销吗!不要把用户当傻瓜(他们都非常聪明,但很忙),他们能够对其行为负责,但是软件要体贴,当用户不慎做错了什么,你要能够帮助他挽回损失,这才是软件应该做的。
另外,作者提出了软件应该是体贴的,并给出了体贴软件的特征:
1) 体贴的软件对用户感兴趣
要记住用户的工作习惯和行为方式,帮助你的用户记住一些辅助信息,以方便他以后的使用,记忆本身就是计算机的长项,努力让用户感觉到你是他忠实的勤奋的秘书。记录他全部的操作过程。记住那些可以记住并在下次使用时自动带入。
2) 体贴的软件是恭顺的
软件要努力按人的意愿去做,而不是相反。
3) 体贴的软件是乐于助人的
软件不仅可以执行或回答用户的指令,而且在必要的时候恰当地给出更多有价值的信息。
4) 体贴的软件具有常识的
要知道有关的业务常识,比如不要打印金额为0的支票。
5) 体贴的软件预见需求
用户做了某件事情,要预测他可能需要其它什么,抽空提示一下。
6) 体贴的软件是尽职尽责的
比方说在写一个新文件时,你要先检查是否存在同名的文件,如果存在,你或者将新文件加上新的日期,或者提醒用户重命名。
打印输出时能够立刻终止打印,而不是响应了“打印已经终止”,但打印机还在疯狂输出!。
7) 体贴的软件不会因为它自己的问题增加你的负担
服务行业的规则是不提客户的问题(过失),而只关心和解决客户的问题。同样体贴的软件也要遵守这样的原则,不要用错误信息抱怨用户,不要用确认对话框打断用户,不要用一下不必要的通知来向用户夸耀(文件保存成功!上传成功!等等)
8) 体贴的软件会及时通知我们
虽然我们不希望软件因为它的小恐惧和小成功不断纠缠我们,但是却希望它能对关系我们的事时及时通知。比方对重要的动态信息在显眼的地方显示,对客户某项错误的选择及时提示,而不是等到提交时再抱怨,当然如果让客户不会做出错误选择,是更好的办法。
9)体贴的软件有理解力的
10)体贴的软件是自信的
不要什么事都要用户确认,你点击打印一份文档后,就去喝咖啡,但当你回来时,看到的是一个“你真的想打印它吗?”
11)体贴的软件不问许多问题
不要让用户感到被审问或被胁迫
12)体贴的软件失败也不失风度
总之,为了让用户使用方便舒适,软件可以(在背后)多做些事情,因为你只是费一次力气,而用户却要长时间使用啊!
希望我们都努力做出体贴的软件,为人类更好的服务。
请关注:
建议初学者阅读“编程规则”,资深者阅读“软件之道”