摘要:程序员
软件的UI是客户直接体验软件的地方,好的用户体验可能比追求新技术和追求漂亮设计更加剧要,优秀的软件应该是既有外在美也有内在美的。但大部分用户是“外貌协会”的,你和用户说你的软件如何OO,用了多少种设计模式,客户是不鸟你的,客户关注的是用户体验!面试
大纲:数据库
1.什么是优秀的设计?
2.优秀的设计能节省项目工做量
3.优秀设计从分析需求开始
4.软件系统不是木桶型的
5.软件设计的“大道理”
6.规划系统骨架——架构设计
7.打造系统的底蕴——数据库设计
8.细节决定成败——详细设计
9.用户感受好才是真的好——用户体验设计
10.持续提高设计水平设计模式
本文章是系列文章之一,若是你尚未看过以前的文章,建议先看完前面的文章再看本篇,这样效果更好。安全
9.1 从“余额宝是吸血鬼”提及——用户体验设计的重要性服务器
某人写了一篇文章,说余额宝是吸血鬼,要取缔余额宝!微信
我大吃一惊,决定认真研究一下这篇文章,但愣是没有看懂!里面无非是说余额宝是银行的吸血鬼,会害死银行,害死金融市场之类的云云,反正没有看懂。我就纳闷了,咱们把钱放到余额宝,天天赚取几块钱,跟你文章说的内容有毛关系?!你银行收费多,利息低,存取钱麻烦,我干吗要将钱放到银行发霉呢?架构
这个事件跟用户体验设计有关系吗?我相信你已经有感受了,请继续听我道来。数据库设计
公司 A 开发的一个软件一直很好卖,但它的竞争对手公司 B 开发了另一个更好用的软件,用户很喜欢。很快公司 A 的软件销量直线降低,为了挽回颓势,公司 A 请了某人写一篇文章“恐吓”用户,说一大堆用户看不懂的话,比方说:公司 B 的软件不面向对象,安全漏洞多,会吃掉内存,会损耗CPU等等。你估计用户看了这篇文章后会怎样?我估计用户会多买两套公司 B 的软件压压惊!布局
不管是银行仍是余额宝,都为顾客提供一种资金投资的服务,但余额宝的用户体验比银行好多了,因此顾客会作出本身的选择;同理,软件给用户的感受好,能带来实际价值,用户天然就会选择这个软件,用户是不会计较你用什么开发语言、数据库,还有用了多少种设计模式的。
咱们来一个角色扮演,假设你是用户,你将会花钱买一套软件,你的购买标准是?
调查,你会选择怎样的软件?
A)你是软件开发狂热者,他比较偏好架构设计良好的软件,他甚至想获得设计文档和代码。对于软件,功能基本能用就能够了,有点错误也能够忍受。
B)你是惟美主义者,他要求界面要爽心悦目,功能能用就能够了,操做麻烦一点也没有关系。
C)你是实用主义者,界面不须要很花俏,关键是软件要容易上手,操做要方便,能高效地帮助他完成平常工做。
我想你应该不会这样变态选 A 吧?选 A 的话,恭喜你,你确实是软件开发的狂热者!
选 B 的朋友有木有呢?你是外貌协会的吧?
选 C 的朋友比较务实了,你会很珍惜你的每一分的血汗钱,软件须要物有所值,你才愿意投资!
9.2 什么是用户体验设计?
先说说什么是“用户体验”?
用户体验就是用户使用软件时给他的总体感觉,而用户体验设计就是针对“用户体验”的设计。
其实要让用户有好的感受,主要取决于如下三点:
1)软件能知足需求;
2)在1)的基础上,软件用起来很舒服;
3)软件的价钱是合理的,固然价钱 越便宜越好,最好是免费的。
咱们这里谈的用户体验设计,主要是针对第1)、2)点来谈的。
若是客户和咱们抱怨软件很差用,咱们首先要检查的是需求是否知足了?若是知足了,那么至少可能打60分了。在需求知足的前提下,再进一步提高用户体验,就会让你的分数上升到80分以上。那有没有机会满分呢?一般很难的,除非你的软件是知足需求、很好用,而且是免费的!
是否知足需求,解决软件能不能用的问题;用户体验设计是否能更上一层楼,能解决软件好很差用的问题。
用户体验设计,体现了前文提到的“由顶而下”设计思路的体现,见下图:
图9.1 由顶而下的设计思路
说明一下:此图中“规划界面”这个活动的输入是”用例/用户故事“和”业务流程图“,但其实”业务概念图“也是须要考虑的,此图画出的是主要的前后关系。
对于用户体验设计,可能会有人第一反应是美工负责的事情,实际上美工仅仅是其中一部分而已,用户体验设计须要考虑如下三方面:
1)总体界面规划
2)统一界面标准
3)易用性设计
下面分别说明。
9.3 总体界面规划
有没有曾经试过客户向咱们抱怨软件很差用,咱们询问客户哪里很差用,客户一时半刻说不出来;在咱们的耐心追问下,客户终于憋出一两点很差用的地方来,因而咱们立刻进行改进,但客户仍然说很差用;因而咱们再次耐心的追问,客户又憋出一两点很差用的地方来…… 周而复始,客户仍是以为很差用!
你以为问题在哪?你可能要从新反省界面的总体规划!
总体界面规划作的事情就是:规划软件须要什么界面,每一个界面能作什么事情,每一个界面之间是怎样关系等。这是用户体验设计的最关键、最核心、最重要的一环,这个作好了,基本上用户体验设计不会差到哪去,反之不管你在哪些细节上修修补补,很难在根本上改善用户体验。
咱们仍然用前文的”考勤系统“做为例子,需求请参考前文,连接:http://blog.csdn.net/fireball1975/article/details/18967945
下图是前面出现过的考勤系统的部署图:
图9.2 考勤系统的部署图
红色箭头指向的客户端是“PC”客户端,咱们要思考这个客户端的用户体验设计,咱们要回答两个问题:
1)什么角色将会使用这个客户端;
2)这些角色经过这个客户端能作什么事情。
因而咱们咱们发现,”员工“和”领导“这两种角色都会使用这个客户端,他们分别经过这个客户端能作的事情有:
员工:
1)查看所有人的请假外出状况
2)提出申请
3)查看申请进展状况
4)修改申请
5)删除申请
领导:
1)查看待审批的申请
2)审批员工的申请
根据上述信息,咱们能够规划出PC客户端的界面流:
图9.3 考勤系统PC客户端的界面流
小结一下总体界面规划的作法:
1)要熟悉需求。
2)在架构设计的基础上找出系统的客户端有哪些,这些客户端是指最终用户会接触到的机器,通常不须要考虑服务器端。
3)思考每一个客户端上的用户有哪些,这些用户分别在这些客户端上须要用到什么功能。
4)画出每一个客户端软件的界面流。若是以为难度有点大,可先针对不一样用户分别画他们的界面流,而后合并不一样用户的界面流,思考界面的判断逻辑,使不一样用户进去都能得到良好的用户体验,同时让程序工做量更小和弹性更好。
一般咱们的项目当中是没有人专门作总体界面规划的,大部分的状况是程序员作出来怎样就是怎样的,但程序员作出来的界面用户体验设计,你懂的……
若是你是程序员,请按照上述思路改善的工做!
若是你是项目的管理者,请思考这些工做谁来作更合适?有些公司可能有专职的用户体验设计工程师,有些公司木有,那么你能够考虑让需求分析师、测试工程师来负责,或者是做为项目经理的你来亲自负责。负责这个岗位的同事至少须要具有这样的一个素养:就是能从用户的角度来思考问题!若是能同时具有技术功底,能设计出用户体验极佳并且开发工做量少的界面总体规划,这样就最完美了!
9.3 统一界面标准
统一的界面标准主要包括三方面:形象、文字和行为。
美工负责的事情主要就是形象方面的,包括有:(可能列不全)
1)总体风格:系统需采用一致协调的美术风格,使用户感受是在使用同一个系统。如一致的色调、背景、图片等。
2)图片、图标、页面布局等方面的设计。
3)文字的样式、大小、字体等等。
4)界面上控件等各类元素的大小、颜色、风格等等。
文字方面主要是指文字的内容,与上述第3)有点不一样。
软件中出现的文字大概分两类:
1)操做性、提示性文字,如:增长、删除、确认、取消等操做性文字,还有一些相关的操做提示。
2)专业性、业务性文字,如医院系统,系统中出现的药名、病名等专业性文字。
这两类文字都须要统一而且易于理解,例如咱们常常犯的毛病:一个地方叫”新增“,一个地方叫”添加“,一个地方叫”增长“,这样就很不专业了。
如今说说行为方面要注意的事情:,举两个例子你就懂了。
例1:某些软件增长确认的提示很不明显,你点了一下”增长“,界面没啥反应,搞到你多点几下,后面发现增长了好几条记录了。
例2:某些软件删除以前没有提示,结果你一不当心就干掉数据了。
用户会在软件上作不少动做,常见的动做有:查看某条记录,查看某些记录,增长一条记录,修改一条记录,删除一条记录,删除一批记录等等。相似的动做,软件应该有合适的、易于用户理解的而且是一致的响应,这些都是对软件行为的设计。
9.4 易用性设计
咱们分析一下互联网网站注册页面的易用性,以此为例子体验一下易用性设计。
注册网站是黏住客户的第一步,你打算如何设计才能让更多网友愿意注册呢?下面看看几个阶段的演化:
1)“皇帝女不愁嫁”的阶段
好久好久之前(其实也不是好久,10多年前吧),互联网刚流行的时候,注册网站是比较麻烦的,要看用户条款,要填一大堆信息,还要分几页来填,最后一页还由于网速问题出错,折腾死你!但当时互联网网站太少了,你不介意多尝试几回的。
2)“忽悠你进来再说”的阶段
你只须要填个帐号,输两次密码,用户条款不须要看,你去打个勾就好了。
3)“简化到不能再简化”的阶段
如今有些网站,注册时输入用户名,但密码不须要输两次,一次就搞定了!但愿你没有输错密码吧,呵呵。
4)“用户名都不须要输入”的阶段
原本觉得3)的作法已是没法再简化的了,但竟然这么神奇,用户名都不须要输入,点个按钮就能够了!没错,这就是关联其余帐号,比方说用QQ帐户登陆、用微信帐号登陆等等,若是你如今已经登陆QQ,那么就能够一键关联帐号并登陆了!
你们为了争夺用户,注册这事情简化到使人发指的程度!
这仅仅是一个例子,系统中须要着重考虑易用性设计的地方仍是不少的,例如:
1)首页。
2)常常被使用的界面,如登陆、查询界面。
3)用来拓展业务的界面,如注册界面。
4)复杂的编辑界面。
5)带有运算功能的界面。
6)重要人物会使用的界面,如报表。
……
这是本系列文章的最后一篇了,软件设计有无尽的可能性,绝对不是几篇文章或者是一本书就能帮助你升仙的,多实践多尝试才能帮助你更上一层楼。工做中的设计挑战可能不丰富,难度不够,你本身须要为本身多找一些案例来挑战,多写代码,多作总结,创建你本身的代码重用库。
若是你是公司的管理层,你可能不只仅考虑的是我的能力提高的问题,而是更多地考虑让整个公司设计能力提高的问题,可能想到设计流程制度化、设计文档模板化等工做思路。公司领导要更多考虑需求积累、技术积累,打造公司的核心产品线,核心技术等,打造代码重用库、组件库等等,要达到必定的高度都不是靠爆发的,而是靠长期的积累。积累达到必定的层次,“后人”就能够利用“先人”的智慧达到更高的高度。咱们这些现代人可能并不比古代人聪明,咱们能干不少古代人不能干的事情,是由于咱们利用了先祖为咱们积累的大量文明成果。
我正式出版的一本书《火球——UML大战需求分析》中提到,我打算未来写一本《活用UML——软件设计高手》,一些朋友问到这本书何时出版?
我很很差意思,这本书出版没有排到日程上,但“软件设计是怎样炼成的”这个系列文章实际上是此书的浓缩版,我打算将这个系列文章连同其余文章,编进一本软件研发及管理最佳实践的书中,此书尚未最终定名。此书将会覆盖软件研发的方方面面 ,目标就是培养厉害的软件项目经理,让你装备周身刀,把把锋利!
我还会在博客中为你们陆续分享文章,谢谢你的支持,请继续捧场!
本文是系列文章的最后一篇,谢谢你的支持!
若是本文对你有帮助,麻烦点一下“推荐”啦,谢谢!
做者:张传波
创新工场创业课堂(敏捷课程)讲师
软件研发管理资深顾问
CMMI首席专家
《火球——UML大战需求分析》做者
软件知识原创基地创办人