软件用户界面设计——分析问题——传授方法林锐博士@chinaspis.com上海漫索计算机科技有限公司Page2参考书:《Web软件用户界面设计指南》,林锐等,电子工业出版社,2005Page3目录1.咨询流程2.软件用户界面设计的重要性3.现状、问题和原因4.用户眼中的好软件5.软件用户界面设计的要素5.1界面适合于展现功能5.2界面适合于用户群体5.3容易理解5.4及时反馈操作信息5.5防错和出错处理5.6一致性和个性化5.7最少步骤、最高效率5.8合理的布局5.9合理的色彩5.10国际化Page41.咨询流程1.1流程图持续提升企业的软件用户界面设计能力1.调研2.用户界面诊断3.界面设计培训4.集体练习5.总结与改进Page51.咨询流程1.2步骤第1步调研。咨询师访谈公司领导、界面设计人员、软件开发和测试人员,以及阅读产品开发的相关资料(例如需求文档、设计文档),了解用户界面设计的能力现状。第2步用户界面诊断。咨询师对公司实际软件产品的用户界面进行诊断,找出不合理的设计,记录案例。第3步设计方法培训。咨询师讲解软件用户界面设计方法,同步进行案例分析(从第2步获得)。帮助学员了解并掌握软件用户界面的10个设计要素。第4步集体练习。软件产品的所有相关人员在学习用户界面设计方法之后,进行集体练习:–根据“检查表”诊断软件用户界面,发掘问题,阐述观点;–给出改进建议第5步总结与改进。咨询师总结所有的“问题和建议”,相关人员有计划地改进软件用户界面。Page62.软件用户界面设计的重要性2.1发展趋势软件用户界面的发展经历了从简单到复杂、从低级到高级的过程,用户界面在软件系统中的价值比重越来越高。如果编程之道是完美的,那么操作系统就是完美的;如果操作系统是完美的,那么编译程序就是完美的;如果编译程序是完美的,那么应用程序就是完美的。于是,用户满意之极,和谐应运而生。——《编程之道》开篇语2.2开发竞争得益于互联网的发展和普及,软件开发的技术门槛在不断下降,大部分软件企业的技术手段也趋向于雷同,“软件设计”变得越来越重要。当大家都掌握了相似的技术和需求信息后,企业之间的开发竞争“比的就是设计”。–软件用户界面设计要综合考虑“易用性设计”、“艺术设计”和“技术实现”,很有挑战性。2.3用户挑剔用户界面在很大程度上影响着软件的命运,因为广大用户对软件的评价主要来源于他们操作用户界面的感受。同类软件越多,选择余地越大,购买者对软件用户界面就越挑剔。–尤其是互联网的软件和服务(免费或收费)。Page73.现状、问题和原因3.1不容乐观的现状尽管国内有很多技术出色、聪明过人的软件工程师,但是不少人开发出来的软件产品却既难用又难看,客户很不满意。导致经常要修改软件的用户界面,造成极大的生产力浪费。到处是用户界面设计缺陷:–不可原谅的过失!(小偷和神父的故事)–界面措辞含糊,甚至有错别字。连简单的消息框都设计不好,可能存在文不对题的语病。–界面布局混乱,缺乏逻辑,凡是能放的东西都堆集上去,让用户不知从何下手。–没有防错处理,不对用户输入的数据进行检验,不根据用户的权限自动隐藏或者禁用某些功能。执行破坏性的操作之前,不提醒用户确认。总之,如果用户执行了错误的操作,那他活该。–不提供进度条、动画来反映正在进行的比较耗时间的过程,对于重要的操作也不返回结果,让用户干着急。–我们见到的用户界面缺陷不胜枚举……失败的案例–某企业的电子政务软件–某银行的网上支付软件Page83.现状、问题和原因3.2问题和原因之一:教育缺陷国内绝大多数大学的计算机学科没有开设软件用户界面设计的课程,也没有开设相关的如人机工程学、美学、心理学等课程。理工科人士天性喜欢钻研技术,不太关心用户需要什么。由于学生们接受的教育几乎全是科学与技术,他们不知道怎样才能设计易用、美观的用户界面,很多人甚至想都没有想过。当他们毕业后真正参与软件产品开发时,只好凭着个人的经验与感觉设计软件的用户界面,这样产生的界面往往得不到大众用户的认可。最近几年,国内计算机相关专业的毕业生太多了,呈现“供大于求”的局面,很多毕业生难以找到合适的工作,刚毕业的普通程序员的工资低到仅供糊口的地步。另一方面,大部分软件公司都需要招聘软件用户界面设计师,可是招聘不到人。建议:–任何人,只要在工作中发现了自己的知识缺陷,他都应该及时学习,弥补不足。同时,企业应当设法邀请软件用户界面设计专家给员工们培训,努力在最短的时间内有效地提升员工们的用户界面设计能力。Page93.现状、问题和原因3.3问题和原因之二:服务对象错位开发人员在设计用户界面方面不仅存在先天的教育缺陷,更加糟糕的是还常常犯“错位”的毛病。他以为只要自己感觉用户界面漂亮、使用起来方便,那么用户也一定会满意。俗话说“王婆卖瓜,自卖自夸”。当开发人员向用户展示软件时,常会得意地讲:“这个软件非常好用,我操作给你看,……是很好用吧!蛮漂亮的吧!”用户出于礼貌可能会不断地点头,但点头并不表示赞同。用户总不好意思说他还没有看明白怎么回事,请开发人员慢慢地再演示一遍吧?总不能在别人面前显得自己很迟钝吧!漫索公司软件人员在开发“集成化项目管理系统”的错位感受(林锐经历)。Page103.现状、问题和原因3.4问题和原因之三:混淆网站与Web软件的用户界面Web软件和网站的运行环境和技术几乎完全相同,但是两者的用途和特征很不相同。网站主要用于浏览信息,面向大众用户,主页面的内容随时会更新,不存在统一的网站用户界面格式。因此“个性化”和“不断变化”是网站的用户界面的特征。Web软件本质是软件,只不过它在Web环境下运行、以页面的方式展示功能而已。软件用于处理有固定流程(逻辑)的业务,而不是仅仅让人们浏览信息用的。软件用户界面的设计要素有合适性、可理解、一致性、出错处理、及时反馈信息、最少操作步骤、合理的布局和色彩等等,所以软件与网站的用户界面的特征是有很大差异的。–不少企业都有自己的网站,也有不少基于Web的管理系统,例如人力资源管理系统、办公自动化系统、ERP系统等等。开发人员看惯了网站,不知不觉地把网站的用户界面风格套用到Web软件上。结果Web软件的用户界面上到处是花花绿绿的超级链接和闪动的图片,让人不知如何下手。–网站并不关心业务流程,几乎没有出错处理,倘若Web软件也没有业务流程、没有出错处理的话,试问谁乐意用这样的Web软件?Page113.现状、问题和原因3.5谁来设计软件的用户界面毫无疑问,应当由用户界面设计师来设计应用软件的用户界面。问题是目前国内大学没有用户界面设计这样的专业,软件行业还没有形成“用户界面设计师”这样的职业。–职业化的用户界面设计通晓“易用性设计”、“艺术设计”和“技术实现”,很难寻觅此人才。–所以在目前,所谓“用户界面设计师”还只是一种“角色”而不是“职业”。如果软件企业里没有专职的用户界面设计师,那么请软件开发工程师和美工人员共同设计用户界面。建议如下:–相比较而言,让软件开发人员学会用户界面设计,要比美工人员学会软件开发容易得多。–对软件开发工程师进行用户界面设计的培训,然后让软件开发工程师负责应用软件用户界面的设计和实现,请美工人员做锦上添花的美化工作。很多人有疑虑,让软件开发工程师从事用户界面设计,他们能做好吗?–回答是肯定的,只要软件工程师不自我封闭,追求上进,那么他肯定能够学会用户界面设计,绝对比他原先做的用户界面好。–软件工程师的智商都不低,只要他不懒惰,勤于学习、实践和思考,那么他就能够成为某些领域的行家乃至专家。–论据:我从来没有学过美工,也没有人指导我如何设计软件用户界面。通过自学和实践之后,我自己可以总结用户界面设计方法论,编写著作,还给很多企业提供咨询和培训。Page124.用户眼中的好软件4.1“好”的软件意味着“实用、易用、美观”如果软件的功能不实用(不能为用户解决问题),那么不管该软件是否易用和美观,用户一般都不愿意购买该软件,除非用户没有选择余地。如果两个软件的功能和价格都相似,那么用户会挑选更加易用的那个软件。如果两个软件的功能、价格、易用性都差不多,那么用户会选择更加美观的那个软件。4.2谁来评价“好或差”用户才真正有资格说软件“好或坏”。如果用户对软件很不满意,开发人员不要有逆反情绪:从哪里找来的笨蛋用户!其实不是用户笨,是自己开发的软件太笨了。当用户真的感到软件很好用时,一股温暖的感觉油然而生,于是就用“界面友好”来表扬这个软件。–软件行业很少发生那么感动人的场景:用户热切地握着开发人员的手,连声称赞“你们开发的软件真是好用、真是漂亮啊”。可是我们看到的大多是相反的场景:用户满腹牢骚,开发人员垂头丧气。Page134.用户眼中的好软件4.3应当站在用户的立场看待软件很多公司都在宣扬“以人为本”,可笑的是人力资源部往往最不懂得“以人为本”,能够不“与人为敌”已经不错了。开发机构宣扬“以客户为中心”,但是却撇开客户只顾忙碌地开发软件,做出客户不会用的东西。很多软件开发人员不能够一次性地完成某些开发任务,主要原因不是技术水平低下,而是他们没有真正理解用户的需求,也没有站在用户角度看待软件。如果用户不满意软件的功能和界面,那么开发人员将被迫重新开发。重新开发的代价显然要比修改Bug大得多。如果软件企业能够真正重视并且下功夫提升“需求分析”和“用户界面设计”的能力,通常会显著地提升软件生产率和客户的满意度。Page145.软件用户界面设计要素5.1界面适合于展现功能,并且符合市场需求软件的功能需要通过用户界面来展现。毫无疑问,用户界面一定要适合于软件的功能,这是最基本的要求。如果用户无法通过这个界面来使用软件,“易用性”根本就无从谈起。–例如,对于一个三维建模软件而言,如果用户不能使用鼠标对模型进行旋转、移动、缩放等操作,那么这个用户界面就不适合该软件的功能。如果不改进用户界面的话,即使软件的内核功能很强(如算法很先进),这个软件也很难卖得出去。“用户界面适合于展现功能”是首要的设计原则,它提醒设计者不要片面追求界面外观漂亮而导致华而不实。开发团队要分析产品的核心价值:“最吸引客户的属性;最赚钱的属性”。要把主要精力用在对经济效益贡献最大的地方,使“投入-产出”最大。–普遍存在的“80-20”的现象–注意,免费软件的“吸引客户的属性”和“最赚钱的属性”可能不是同一回事情。产品的所有功能和界面对用户而言都是必要的。可以锦上添花,但是不能画蛇添足(否则得不偿失)。Page155.软件用户界面设计要素图5-1(a)。搜索不是上网助手的功能,对上网助手没有帮助,反而可能是用户跳离本软件的页面。但是搜索却是本公司真正赚钱的功能。所以要把“搜索”放在最现眼的界面顶部。图5-1(b)。“免费看美女看笑话”不属于上网助手的功能需求,这个低俗广告将分散用户的注意力,降低软件品牌。但是低俗广告却是互联网免费软件主要收入来源,所以被迫将低俗广告放在上网助手中。示例分析Page165.软件用户界面设计要素5.2界面适合于用户群体一个软件产品可能有许多类型的用户,例如有些用户对计算机比较外行,有一些用户可能是计算机的行家。在设计用户界面时应当尽可能多地了解不同类型用户的使用习惯和水平,努力使不同类型用户在操作软件的时候感觉不到困难和麻烦。(理想境界)如果不能使所有类型的用户都感到满意,那么重点满足以下类型的用户:“主流用户”,“有影响力的用户”–“主流用户”是指占最大比例的那种类型的用户。主流用户可能不是水平最高的用户,他们对界面的评价影响软件产品的命运。•我曾经为杭州某工厂开发“生产管理软件”,采用了很好的B/S技术构架,界面也很美观。但是工人不适应B/S软件界面,无法有效地进行生产管理,最后报废这个软件。–“有影响力的用户”可能不是主流用户,但是他们会影响其它用户对软件的印象。例如互联网论坛版主、作家、传媒人士等。努力提升用户群体对软件产品的好感,