用户是好奇而脆弱的对象


 

     近日,笔者忽然来了兴趣,写了个小小的Excel工具。主要实现两个功能:

    1、查找一个Excel表里的重复记录,并将重复记录从源表中分离。

    2、对于两个结构相同的Excel表,查找出两个表不同的记录。包括:一个表相对于另一个表的增加/减少记录;相同的记录中部分字段信息不同。


    从功能上讲,笔者已经顺利完成。但是完成了功能并不等于就是可用的产品,于是笔者对界面及代码进行整理,以期能够满足真正的需求。任何一个项目开发,都是为满足用户需求而来。用户的需求是很复杂的,既有功能上的需求,也有性能上的需求,还有可用性、稳定性等方面的需求。虽然从学开发之初,不管是教材还是老师,都言必称需求分析,但真正做好需求,却又不是很简单的事情。


    从一个技术人员的角度,似乎完成了所需功能,提交给用户就可以了。但是用户在很多时候却并不象开发人员想象中那样去使用软件,开发人员觉得很简单的问题,可能到了用户那里,却变得难以理解。用户是好奇的,他会采用各种不同的方法、顺序、环境来使用软件。如果开发人员考虑不周,必然会使软件运行出现问题。同时用户又是脆弱的,在开发人员看起来很小的一点不方便,可能在用户心里就是一个疙瘩。有时即便是被迫要使用这个软件,却总是如梗在喉,一旦在另一款软件在这个方面处理得稍好一点,用户就可能对先前的软件弃之而去。当然,这里排除了投资和成本的因素。与此同时,用户还是苛刻的,他既想用起来方便,又不想花太多的时间去学习和适应。正如微软推出Vista操作系统,尽管大肆渲染它有多么重大的改进,安全性又提高了多少。但对于我来讲,Vista确实不方便。很多在windowsXP下熟悉的操作,进了Vista就有点找不到北,头痛眼累,每一个程序的运行都进行确认,似乎提高了安全性,却让我多了无数次点击。在心里,排斥总是伴随着操作。如果不是万不得己,我是断然不想成为它的用户的。


    基于此,软件的开发必须全面照顾用户的情绪,除了功能之外,有很多工作就是为了用户使用的方便性和多样性而做。这一点,在我整理这个小工具时感受颇深。以分离Excel表的重复记录为例:我按照用户的操作流程在窗体的右侧做了一个导航,以帮助用户顺利完成操作。如下图:



 

图:ExcelRepeatedRowsTool

 

    看起来,这很简单,只要将各个按钮的功能完成了,用户按照流程一步一步操作,应该是没有什么问题的。但是,如果站在用户的角度,如果不按预想的流程操作,会出现什么情况呢?

    比如:

    1、用户点了打开Excel表,却在选择文件对话框中没有选文件,取消了打开操作,这会导致什么结果呢?


    2Excel表打开了,但用户在点击“分离重复记录”之前,点击两个导出按钮,又会出现什么情况呢?


    3、用户在已经打开了Excel表之后,又点击打开文件,并选择了一个Excel表,会不会和第一次打开完全相同?


    事实上,对于这样的有操作流程的软件来说,前面的操作会成为后面的操作的条件。因此,在软件开发时,必须考虑到用户并不按流程操作的情况(如12种情况)。如果没有进行特殊的处理,就会出现错误。就象调用未初始化的对象会导致错误一样。流程越长,需要考虑的异常情况就越多。在第1种情况中,点击后面的按钮前,就需要对文件是否正确打开进行检测。如果没有,则不能进行后面的操作,并给用户以提示。在第2种情况中,如果没有操作重复记录分离,就得不到重复的记录集和去除了重复的记录集,因此导出操作不应该进行,必须提示用户进行重复记录分离操作。第3种情况,再次点击打开,如果打开了文件,但没进行重复记录分离,此时由于对前一个Excel表进行了重复记录分离操作,此时不进行重复记录分离就导出,可能会得到错误的结果。因此要求在第二次点击打开按钮时,必须对以前的数据进行清理。


    在导航的最下面,笔者加了一段小小的文字。原因在于导出数据到Excel时,由于调用了Excel程序,用户等待的时间较长,可能会给用户产生软件死掉了的误解。用这段文字提示用户,可以减少用户误判。当然,用进度条或许更好一些。


    以这个简单的例子,整理了我对用户的看法,即:用户是好奇的、脆弱的、苛刻的。在进行设计之时,要跳出自己的理想世界,从多个角度看用户,会使软件的可靠性、易用性得到提高。

 

Excel工具下载地址:http://download.csdn.net/source/960368

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值