2007年2月28日星期三

客户需要什么样的软件

我在一个不大的公司作项目经理,作IT的人一定都知道,在这样的公司项目经理通常要负责软件的需求、设计等工作。作软件这么多年了,对客户到底需要什么样的软件有一些自己的想法。我认为一个成功的软件必须具备下面几点特征:1、功能性 正确的功能性说明软件可以做到用户他作的事,但是要达到这一点对分析和设计人员来说是一个挑战,有的时候客户并不能清楚的表达他们需求,又或者他们根本不知道自己到底需要什么,所以很多软件之后作出来之后客户才会不断的提出他们的需求,而这对于软件的设计和开发无疑存在很大的风险。所以说,为什么很多公司希望招聘到有经验的开发设计人员的原因也在这里(将可能的风险控制到最小)。有时候设计人员会陷入一种自以为是的“催眠状态”,他们常常会自言自语“是的,客户要的一定是这个功能”,“我的设计充分考虑了所有的可能”等等,这个时候你需要问问自己“客户要的真的是这个吗?”,“我没漏掉什么吧?”。正确把握程序功能性的一个有效的手段就是找来一个客户代表,当然他必须是熟知业务过程的(不是所有的客户都明白自己的业务:P),又或者是请一个行业专家,比如他以前就开发过类似的软件。总之,作为一个IT开发设计人员,最大的弱点就是只懂得软件开发,其他行业的业务缺知之甚少,所以,这里我们要作的就是,多听,多问,取长补短。2、直观的界面 有了正确(尽量正确)的功能性,之后马上面临的就是为客户提供直观的界面,这一点是不容小视的。这一点也体现在软件的易用性上。你的软件虽然具备了所有的功能,但是如果用户打开你的软件感觉一头雾水,不知从何下手,那么这个软件也是失败的。我的一个客户曾经跟我说过这样的话“你开发的软件要越简单越好,最好是我对着屏幕说一句话他就把活干完了”,呵呵,当然这样的软件估计目前还无法作出来,但是起码他体现了客户对软件易用性的一种心态。我的经验是如果用户在没有你培训的前提下通过菜单和按钮的提示就可以完成软件30%的操作,那么你的软件就是成功的。 这里还要提到另外一种情况,就是软件的升级,这种升级可以是对自己产品的升级,也可以是对其他厂商产品的替代。人都有惯性,对于以前熟悉的东西是不会轻易改变的。所以在你对产品升级的时候一定要注意,保持和原有软件界面的连贯性,对于操作习惯和界面显示不要作太大的改动,否则你的用户可能是无法接受的。3、健壮性 健壮性可能更多的体现在软件的架构设计上,近些年来不断涌现的各种新技术比如Struts,EJB,Hibernate,JSF等等都是为了在一定程度上提供一宗易于扩展的架构。所以我们在作设计的时候最好要考虑好业务逻辑的分层,不要把什么都放在一起。健壮性还体现在程序的稳定性和性能等方面,你的软件平均故障时间越长(MTBF),你的软件越“健壮”

没有评论: