软件设计是怎样炼成的(8)——用户感觉好才是真的好(用户体验设计)

摘要:

软件的UI是客户直接体验软件的地方,好的用户体验可能比追求新技术和追求漂亮设计更加重要,优秀的软件应该是既有外在美也有内在美的。但大部分用户是“外貌协会”的,你和用户说你的软件如何OO,用了多少种设计模式,客户是不鸟你的,客户关注的是用户体验!

 

大纲:

1.什么是优秀的设计?
2.优秀的设计能节省项目工作量
3.优秀设计从分析需求开始
4.软件系统不是木桶型的
5.软件设计的“大道理”
6.规划系统骨架——架构设计
7.打造系统的底蕴——数据库设计
8.细节决定成败——详细设计
9.用户感觉好才是真的好——用户体验设计
10.持续提升设计水平

 

本文章是系列文章之一,如果你还没有看过之前的文章,建议先看完前面的文章再看本篇,这样效果更好。

 

9.用户感觉好才是真的好——用户体验设计

 

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)重要人物会使用的界面,如报表。
……


 

9.5 技术人员应该怎样对待用户体验设计
 
N年前,我作为面试官面试一位程序员,该程序员是来自竞争对手的公司的。我问他为什么离开原来的公司,他说:原来那个公司代码很不规范,很多 If Else,很多 Select Case,每一次遇到需求变化都需要去折腾,这些代码已经无法改下去了,我想到更规范的公司工作!
程序员追求进步是好事,但如果我告诉你另外一个让我们惭愧的事实,你可能不一定愿意加入我们公司了。这个让我们惭愧的事实就是:竞争对手的软件销量比我们的软件高多了,这是因为他们的软件好用,用户体验好!我们的软件更多是面向软件工程师,而不是面向最终用户。
如果这个事实还不足够让你震撼,那么和你的薪金挂钩,相信就会震撼到你的小心脏了!你的软件卖的好,你的薪金高,你能获得高额的提成,你会介意去处理那些If Else吗?还是喜欢去干程序结构良好,但用户体验很差,软件卖不出去,工资高不到哪的工作?
回到本文开始的那个例子,决定客户是否买软件的决定因素就是用户体验,而不是你的程序如何OO,如何用了多少种设计模式?
 
上述文字可能有些极端,并不是鼓励你只追求用户体验设计,而不需要关注软件的内部结构,而是希望作为技术人员的你,能更多关注一下用户体验设计。
 
 
 
9.6 用户体验设计小结
 
架构设计、数据库设计打造的是软件“内在美”,详细设计主要打造“内在美”同时也需要考虑“外在美”,而用户体验设计主要就是针对“外在美”的!
软件的UI是客户直接体验软件的地方,好的用户体验比追求新技术和追求漂亮设计更加重要,优秀的软件应该是既有外在美也有内在美的。当然我还要啰嗦一句,大部分用户是外貌协会的,不要企图用“某软件是吸血鬼”的说法来恐吓客户,让客户不买竞争对手的软件,只买你的软件噢!
 
 

 

10.持续提升设计水平

这是本系列文章的最后一篇了,软件设计有无尽的可能性,绝对不是几篇文章或者是一本书就能帮助你升仙的,多实践多尝试才能帮助你更上一层楼。工作中的设计挑战可能不丰富,难度不够,你自己需要为自己多找一些案例来挑战,多写代码,多做总结,建立你自己的代码重用库。

如果你是公司的管理层,你可能不仅仅考虑的是个人能力提升的问题,而是更多地考虑让整个公司设计能力提升的问题,可能想到设计流程制度化、设计文档模板化等工作思路。公司领导要更多考虑需求积累、技术积累,打造公司的核心产品线,核心技术等,打造代码重用库、组件库等等,要达到一定的高度都不是靠爆发的,而是靠长期的积累。积累达到一定的层次,“后人”就可以利用“先人”的智慧达到更高的高度。我们这些现代人可能并不比古代人聪明,我们能干很多古代人不能干的事情,是因为我们利用了先祖为我们积累的大量文明成果。

 

 

11.后话

我正式出版的一本书《火球——UML大战需求分析》中提到,我打算将来写一本《活用UML——软件设计高手》,一些朋友问到这本书什么时候出版?

我很不好意思,这本书出版没有排到日程上,但“软件设计是怎样炼成的”这个系列文章其实是此书的浓缩版,我打算将这个系列文章连同其他文章,编进一本软件研发及管理最佳实践的书中,此书还没有最终定名。此书将会覆盖软件研发的方方面面 ,目标就是培养厉害的软件项目经理,让你装备周身刀,把把锋利!

我还会在博客中为大家陆续分享文章,谢谢你的支持,请继续捧场!

 

本文是系列文章的最后一篇,谢谢你的支持!

 

如果本文对你有帮助,麻烦点一下“推荐”啦,谢谢!

 

 

作者:张传波

创新工场创业课堂(敏捷课程)讲师

软件研发管理资深顾问

CMMI首席专家

《火球——UML大战需求分析》作者

软件知识原创基地创办人

 

posted on 2014-03-06 23:38  张传波(Fireball)  阅读(2671)  评论(9编辑  收藏  举报