业务专员

业务专员是软件公司向开发人员提供用户的业务支持的岗位,也是软件公司和用户之间业务沟通的桥梁。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

需求也有例外

Posted on 2011-03-29 08:21  一孔之见  阅读(1989)  评论(20编辑  收藏  举报

需求也有例外

很多项目开发人员只重技术,不重业务,认为只要技术好,项目看看需求就可以做了,完全不主动去做任何业务准备。有的需求几乎一看就懂,似乎很简单,但是正确理解并不简单,因为需求也有很多例外。

下面是一个计算个人贷款利息的实例,多年前曾因遭客户投诉而闹的沸沸扬扬:

用户需求:一年期短期贷款的到期利息按合同规定的年利率计算,提前还款按实际天数计算利息(每年按12个月计算,每月按30天计算)。

根据需求,开发人员就有以下几种方式对利息进行计算:

方法一:(到期还款按年利率计算,提前还款按日利率计算,):

日利率=年利率/12/30=年利率/360

到期还款利息=本金*年利率

提前还款利息=本金*实际天数*日利率

方法二:(全部用日利率进行计算)

日利率=年利率/12/30=年利率/360)

到期还款利息=本金*365*日利率

提前还款利息=本金*实际天数*日利率

方法三:(到期还款按年利率计算,提前还款按日利率倒减计算):

日利率=年利率/12/30=年利率/360

到期还款利息=本金*年利率

提前还款利息=(本金*年利率)-本金*(365-实际天数)*日利率

这三种方法从需求理解上看似乎都没问题,这就是一个简单的计算,结果是银行遭到提前还款客户的投诉,并且投诉到报社,报社到各家银行去采访,发现好几家银行都有此问题,有的提前还款比到期还款利息还多,有的到期还款利息计算也多。

我们看一下问题究竟出在哪:

客户贷款10万元,提前三天还款(实际天数362),当时的年利率5.31%

按方法一:

到期还款利息=100000*5.31/100=5310元

提前还款利息=100000*362*(5.31/100/360)=5339.5元

结果:提前三天还款,反而要比到期还款多付29.5元利息。

按方法二:

到期还款利息=100000*365*(5.31/100/360)=5383.75元

提前还款利息=100000*362*(5.31/100/360)=5339.5元

结果:提前还款要多付29.5元利息,就是到期还款也要多付73.75元

按方法三:

到期还款利息=100000*5.31/100=5310元

提前还款利息=100000*5.31/100-100000*3*(5.31/100/360)=5265.75元

结果:提前三天还款,比到期还款少付44.25元利息。

同一个需求得出不同的结果,而且是错误的结果,其原因:

因为:日利率=年利率/360(每年按12个月计算,每月按30天计算的误导)

实际天数计算又是按365天,(有5天的误差)

所以:在360后提前还款就会出现明显问题

结果:方法一和方法二因多收客户利息遭投诉

方法三的隐性错误是,如果客户在贷款1-5天时就来提前还款,利息算出来就是负数或0

正确的方法应该如下:(任何时间提前还款都没问题)

到期还款利息=本金*年利率

日利率=年利率/365

提前还款利息=本金*日利率*实际天数

按此方法计算:

到期还款利息=100000*5.31/100=5310元

提前还款利息=100000*362*(5.31/100/365)=5266.36元

    结果:提前三天还款,比到期还款少付43.64元。

看了以上的分析,就可知道出错似乎是因为按完全按需求做而产生的,这就是需求例外,这种情况在需求中时有发生。所以一个好的开发人员看需求决不能盲从,因为用户只从纯业务角度谈需求,而我们是站在业务和技术实施的两个角度去看需求,要从大到小,从粗到细的去分析。

对于需求判断是否是例外,首先要看需求点是否符合逻辑(在一个计算中,一年有的按360计算,有的按365天计算不符合逻辑),其次要看是否符合常理(提前还款多还息肯定不符合常理),只要我们真正理解了需求,那需求例外也就不会成为意外了。