注册 | 登录

[原创]需求分析:什么样的软件算好软件?

更多关于软件需求分析、产品设计的内容,欢迎关注杨长春新书《实战需求分析》(清华大学出版社)

 

好软件在大家的工作、学习、生活中俯拾皆是,百度、淘宝、QQ、微博、微信、Office等等,使用好软件的感觉就是一个字——爽,看起来舒服,使用起来流畅,不拖泥带水,不磕磕绊绊,功能总是出现在你需要的地方,总是能解决你的问题,等等。但究竟什么是好软件呢? 本文分析了好软件(主要针对管理软件)应该具有的特点,这可以作为管理软件的产品经理、项目经理、需求分析师、开发者的努力目标。

 

--------------------------------------

【好软件是有用的】

有用的软件解决问题而不是制造问题。可以用软件解决的问题很多,小到简单地保存某种信息,大到为企业建设管理平台。但要知道,在用软件解决问题的同时一定会带来全新的问题——软件本身的问题,对于一个不是搞软件的企业来说这种问题处理起来可真不容易。见过太多的单位,好像是为信息化而信息化,目的不是解决现实问题,而是为了面子好看,结果导致使用软件不但没有解决问题,反而带来了许多额外问题。还有的时候,软件真的解决了某些小问题,但相对这些被解决的问题来说,软件本身带来的问题要严重得多,得不偿失。

 

有用的软件可以提高工作效率。计算机的长处在于运算更快、更准,存储更多、更久,分享更全、更易,无论你的要求多么无理它也不会闹情绪,利用好计算机的这些特点,没有理由不提高工作效率。如果软件不能提高工作效率,绝对不能说是有用的软件。提高工作效率一般体现在这些方面:同样一件事情,完成的速度大大提高了;或者经过软件优化后,有些工作根本就不需要了;或者有些工作需要的人力资源大大减少了;或者相同的人员,可以完成更多的工作;或者可以降低工作难度,等等。

有用的软件可以降低资源消耗。利用软件来降低资源消耗体现在许多方面:例如,可以通过库存管理减少仓库物料的无故丢失;可以通过计划管理软件提高库存的周转率降低资金的积压;可以通过办公管理软件降低办公物品的消耗;可以通过生产管理软件降低生产材料的消耗;可以通过调度软件让任务安排得更科学,降低生产能耗,等等。

软件的有用性还表现在很多方面,如规范流程、提升客户感知、增加企业核心竞争力、帮助决策等,这里不再赘述。

有用,是好软件的最基本条件,其它方面做得再好,如果缺少有用性,这个软件怎么着都不能说是个好软件。软件开发之前为什么要进行需求调研呢,最重要的目的就是为了保证软件的有用性。

 

--------------------------------------

【好软件是易学的】

好软件充分考虑到易学性。所谓易学,就是指软件功能方便学习,容易上手。对于易学性,需求分析者的终极目标是,你所设计的软件功能不需要任何培训,用户看着你的界面就可以学会操作,用户通过自学习有什么问题他们都能自己解决。当然,管理软件与面向公众的社交软件还是有很大区别的,要想达到这个境界不大可能,但在做设计的时候,脑中应该时刻提醒自己,这里如果我再努力一把,是不是用户就可以不用学习了?或者,是不是可以减少用户的学习难度。容易学习的功能,对于用户来说,使用中会觉得是一种享受,也就更加容易接受你的软件,对于后面的实施来说,可以大大减少培训成本。

 

比起十多年前,如今的用户对软件的易学性要求是越来越高了。由于一批又一批软件人的努力,现在的用户对软件体验的要求越来越高了,对软件的期望也越来越高了,对于学习软件的耐性却越来越少了。这些因素决定了,在易学性方面下多少功夫都是值得的。

 

--------------------------------------

【好软件是易用的】

好软件充分考虑到易用性。所谓易用,就是指软件用起来舒服、趁手,处理问题全面、容易、方便、快捷,犯了错误容易纠正。请注意易用性与易学性之间的区别,易学性指软件容易学会,而易用性指学会之后,使用软件处理问题的感受,这是两个完全不同的概念。有些软件容易学会,但确实不易用,也许它容易学习的原因只是因为功能简单罢了,而功能简单往往预示着处理问题不全面,也就是说有一些问题甚至很多问题处理不了。

 

软件的易用性一般体现在以下这些方面:在操作层面,界面美观大方,录入或操作快速、方便,功能出现在需要的地方,处理同一件事鼠标点击、键盘击键次数最少;在业务层面,处理问题容易、快捷,不需要切换一大堆界面,处理问题全面,一些异常业务也可以方便处理;在性能层面,软件反应速度快,占用资源少。

易学性是针对没有学会软件的新手用户,易用性是针对已经学会软件并可以熟练操作的老手用户。

 

--------------------------------------

【好软件是灵活的】

好软件充分考虑到灵活性。所谓灵活,就是指软件不仅仅满足于能够实现用户当前的需求,还会充分考虑到其它的特殊需求,充分考虑到软件的发展,让软件易于扩展,易于应对可能的需求追加与变更。无论开始的需求工作做得多完善,用户的需求终究会有变化的,或者需要修改某些需求,或者需要增加某些需求,或者需要取消某些需求,而灵活的软件具有柔性,即使用户的需求发生了变化,软件不修改也可以解决很多问题。

 

当然,任何软件都不可能解决所有问题,作为设计者,能做的是尽量设计出可以应对更多需求变化的软件,也就是尽量增加软件的灵活性。

 

--------------------------------------

【好软件是健壮的】

好软件充分考虑到健壮性。所谓健壮性,是指软件在用户使用过程中有很强的容错性,可以帮助用户少犯错误,犯了错误可以纠正,可以反悔,用户在使用软件的过程中没有心理负担。

在这里,“健壮”的反义词是“脆弱”,脆弱的软件,用户使用时需要小心翼翼,神经绷得紧紧的,数据不能录错,不能删错,操作顺序不能颠倒,不该点的按钮不能乱点,不该打开的界面不能随便打开,等等,一不小心犯了错误,就会付出很大的精力处理,有时候甚至只能由软件维护者在后台搞这搞那才能搞好,总之,软件中彷佛布满了地雷,一不小心就会引爆,轻者皮破肉烂,重者残废丧命。

 

--------------------------------------

【好软件是高效的】

好软件考虑到性能要求,追求功能的高效性。所谓高效性,指程序执行速度快,占用的IT资源少。IT资源一般包括数据存储能力、服务器运算能力、网络传输能力、客户端运算能力等方面,不同的业务系统,不同的架构方式,甚至针对不同的用户,关于这几个方面的考虑重点并不相同。

 

软件功能再强大,能解决的问题再多,执行起来如蜗牛般缓慢,让人等得几乎要崩溃,这怎么能算好软件呢?高效的软件会努力提高功能的运行效率,降低IT资源的消耗,让软件系统运行得更快速、更经济。

--------------------------------------

【好软件是方便交互的】

好软件方便用户与系统之间交互,具有交互性。交互性,指程序在执行过程中可以与用户进行友好沟通,让用户顺利获得应该知道的系统信息,让系统顺利获得用户应该提供的信息。

 

当用户在界面上操作时,一个友好的系统会将执行信息根据需要反馈给用户,有些信息只是告诉用户一段程序执行的状态,如常见的告诉用户保存成功的提示消息,而有些是用于接受用户额外指令的,如让用户确认是否删除某记录的提示消息。系统反馈给用户的信息,可以通过各种方式表达出来,如弹出消息框、显示在某固定区域、写入日志文件等,有的时候也会通过组件形状变化、位置变化、颜色变化、文字字体变化之类的方式向用户传达。

--------------------------------------

【好软件是可重用的】

好软件具有可重用性。可重用性,指本软件对不同环境的适应性。重用,可能是整个软件的重用,也可能是软件中某些功能的重用。有些产品型的软件,可以原封不动地用到多个企业中,不需任何修改,或者只需要进行少量修改,这就是整个软件的重用;有些软件的某些功能,可以复制到别的软件中继续使用,如很多团队的“用户管理”、“权限管理”之类的功能。

对于功能的重用,有些功能自成体系,跟本功能之外的功能、数据没有任何关系,具有最强的可重用性;有些功能隶属于某个环境,离开这个环境就没有任何意义,那么这种功能就没有任何可重用性。注意,这里所说的重用,是指功能级别的重用,跟代码级别的重用(封装函数、过程、类之类)是两码事,不可混为一谈。

 

 

--------------------------------------

更多关于软件需求分析、产品设计的内容,欢迎关注杨长春新书《实战需求分析》(清华大学出版社)

*************************************

作者:杨长春

微博:@无锡杨长春

微信公众号:yang_changchun

签名档
| 发表时间:2016/12/21 17:58:47 | 浏览数:1111 | 回复数:1
等级:经理
行业:计算机软件
职能部门:计算机软件
城市:南通市
金币:3351

出来了
| 发表时间:2016/12/22 17:39:03
等级:经理
行业:计算机软件
职能部门:计算机软件
城市:南通市
金币:3351
(共 1 条) 上一页1 下一页
您还不是圈子成员,不能对文章进行评论。请先申请加入圈子,待管理员通过申请之后才能进行评论。