9.20号,社河项目开发的某省药监局的项目,1.0版本终于上线测试了,该项目使用了MVC,Spring.net,工作流,Nhibernate等系列的前沿技术,早就拭目以待,迫不及待的想要学习了,终于等到了这天,一睹庐山真面目。
测试结果并不理想,系统的各个功能都实现了,但在提高用户体验度上做得有点差强人意,让我们的大Boss没有看完就喊停了。但起码这个1.0还是跑起来了,只需要我们在提高程序的易用度和友好度上,多下点功夫,相信下一个2.0会让我们耳目一新。现在我们应该脑补一下,关于如何提高用户体验度的知识,为我们的下一个版本做好准备。
子非鱼,焉知鱼之乐?
其实像今天这样的问题,也是我们在IT道路上一个不得不迈的坎儿。大多时候,我们习惯用拿自己对业务理解,来做需求分析,忽略了用户现实需求和对电脑的熟练程度,甚至于替用户决定如何来做程序,牵着用户的鼻子走,最终导致用户(还有Boss)抱怨:这不是我想要的,根本就不好用!其实这很大一个程度上是因为:我们不是用户,"子非鱼,焉知鱼之乐"哇。
首先我们和用户对计算机的熟练程度不一样。我们作为程序员,计算机就是我们战斗中的枪,那必然是非常熟悉,而且整天24小时至少会有十几个小时在和计算机打交道,每个人熟悉的软件至少也会有十几种。而作为客户,可能只是在上班的时候使用,而且使用的软件非常有限,一般就是Office,加上有限的几个软件。
我们和客户对业务知识的掌握不一样。客户的业务知识就是他所从事的行业的知识,比方说对于一个保险公司的业务人员来说,他们的业务知识就是与保单、代理人、承保、理赔、保全相关的各种内容,而对于贸易型企业来说,他们的业务知识就是与采购、销售、产品、订单等相关的内容。如果我们没有做过相应的行业软件的话,那么我们的业务知识就很差。
但是面对这样的客观现状该怎么去面对呢?
子非鱼,须知鱼之乐!
1.从客户下手,学习业务,沟通客户。不同时间、不同地点、不同的环境中,客户的想法也会有所不同,这也正是需求的变更,我们不能要求客户提出的需求是一成不变的,Boss说过,变是永远不变的!想要解决这个矛盾,我觉得最有效的方法就是沟通,这样的话,如果客户的需求有了变化,我们会在第一时间了解,并为其做相应的工作,这样可能就会节省出很多的时间和精力。
2.从我下手,平衡功能和易用性。程序的功能已经足够多了,但易用性和功能往往存在冲突,这时候产品设计就变成了一个取舍的问题。拿一台复印机的设计过程举例,刚开始的时候可能会是这个样子:
简陋不过很方便使用,想打印,一眼望去,就这一个键,直接一按就可以去打印了。
随着功能的不断完善出现了这种情况:
该有的功能的都有了,可是用起来就麻烦多了,从一堆按键里找到复印键,有点不易了。加入对人使用习惯的分析,经过统计,我们发现使用复印机80%的操作只涉及复印一张纸,很少时候,有其他的要求。通过优化我们就可以设计成这样了:
突出显示复印按键,其他按键统统归纳到高级功能中。在现实中高级选项这块儿可以做成独立一块儿小面板。这样一来就达到功能和易用并存了。这样变得更加人性化了,因为加入了对人的使用的分析。
总结:程序设计是涉及程序员和用户两方面的,一方面我们要充分了解用户的使用习惯,一方面我们要将我们的编程加入对人类行为的分析,平衡功能和易用性。达到程序猿和用户双赢!