软件工程中的经济学规律(2)
一、 新型ROI
1、 应用程序和ROI:
在商业应用软件开发领域中,好的观点、技术和设计方案通常不足以使得项目获得批准。商业世界的现实情况决定了软件开发是一种投资。对于任何一项投资,它都包含了一定的风险并且其目的就是为了得到相应的回报。
当然,投资的回报往往不能以量化的经济方式度量。但是,通常除非有可测的经济利益,否则要证明一个应用软件开发实践的正确与否是很困难的,尤其是要得到金融部门对此实践活动的批准更难。现在的软件开发方法通常是当开发项目得到批准后才开始运作,也就是说,在经过了关于ROI的讨论并运用了度量ROI的常规方法之后才能开始运作。
假设您会您的客户想为一个零售银行建立一个电子帐单支付系统。您估计这将使顾客付账的速度比ATM快两到三倍,比排队将付款支票交给银行出纳员快十倍。您从直觉上确信这个系统将令顾客很高兴并对银行更加信赖。遗憾的是,上述任何一项理由或动机都不能阻止金融部门取消这个项目的决定。虽然这些好处听起来很有趣,甚至可能是很吸引人的,但是它们不是以可度量的方式出现的。金融人士们所寻求的是一个数字,一个由上述好处转化而来但不超出公司账目利润的底线指标。这个指标如此重要,以至于它可以使项目完全停工或流产。
ROI的计算最终是为了从时间上比较几种不同选项(投资方式)的金融影响。实践是最基本的因素。没有它,ROI是没有意义的。这里列举一个具有代表性的问题:
“我们是要花费100万元用两年的时间开发一部分系统呢,还是花费150万元用三年的时间来开发整个系统呢?”
类似这种问题的答案出自商业案例。一个商业案例最好被描述成以事实、结构化的假设和逻辑学为基础的特定金融过程。这里需要一些金融工具,通过它们我们可以检验所作出的选择的金融影响,并得出结论。
2、重要金融分析工具
现金流量预测——它是商业案例的中心环节,使一个在时间段上特定金融头寸(头寸:POSITION,这里指在一帐户或策略中的特定的金融产品)的计算序列。为了建立一个现金流量预测模型,我们需要看到每个时间间隔(通常以月为单位,但视项目情况也可以季度为单位)上的净金融状态。现金流量预测的关键是,对于每个计算点,所有的成本和所有的利润都要考虑进去。假设我们正在考虑建立一个CRM项目,最终目的是撤去呼叫中心。很显然,最主要的好处就是取出了与呼叫中心相关联的成本,但是为了分析现金流量,我们需要知道哪些成本何时从综合因素中去除。从利润角度来说,我们需要确定一些因素,例如客户体验了CRM后满意度提升,以及吸引来新客户所带来的额外收入等其它因素。在现金流量分析过程中,这些正面和负面的因素在分析过程中的每个周期都作了计算。将这些因素综合起来,我们就能确定这个项目在其开发周期中到底是盈利还是亏损。
未来货币的现值——很显然,金钱有时间上的价值。一个在一年内产生一百万元价值的软件比一个在20年内产生一百万元价值的软件会使人们更感兴趣。这样的话,我们如何将下一年一百万元的价值和未来20年内的一百万元价值进行比较呢?在某种程度上,未来现金的价值可以在假定折现率(Ic)下对其进行折算来衡量,即考虑未来现金的现值(PV:Present Value)。计算方法如下:PV = ¥x /(1 + Ic)n
净现值——通过计算开发周期中每个时间周期的现金头寸,然后对现值修正量求和,可以对项目的净现金头寸作出一个全面的衡量指标。含现值修正量的这样一组现金头寸就是现金流量贴现值(DCF:Discounted Cash Flow),而这些头寸的和称为净现值(NPV:Net Present Value)。由于NPV使我们能够衡量软件开发的总价值,即使其回报值位于一个时间段内,DCF也趋向于成为一种软件开发项目的预测成本值及预测利润值的度量方法,这个度量值比净现值和ROI更有用。一般说来,我们提到现金头寸时,就意味着DCF。
折现率——折现率Ic是投资者期望的最低的投资回报年复利利率。实际上,任何一个投资者在投资之初,都有一个最低期望值,只有当最低期望可以满足时,才能考虑进一步研究。而这个最低期望值的名义是折现率Ic,实际是投资者期望的最低的投资回报年复利利率,当把投资者确定的Ic代入后,NPV>=0,则说项目可以满足投资者的最低回报要求,反之,则说项目不能满足投资者的最低回报要求。Ic的构成三要素如下:
- 要素1 = 注册资本中真正自有资金改在银行储蓄、买债卷等低风险投资上的平均利润率和注册资本中需外筹部分的筹资利率的加权平均利率;
- 要素2 = 在项目管理中因体力和脑力的付出,每年期望得到的最低管理报酬 ÷ 项目注册资本
- 要素3 = 在项目建设经营中因承担各种风险,每年期望得到的最低风险报酬 ÷ 项目注册资本
在理性认识上,Ic = 要素1 + 要素2 + 要素3 ,但各要素的精确具体表述在不同的书上不尽相同。
损益平衡时间——在DCF的计算过程中,一个重要的度量点就是“损益平衡时间”,或说软件开发周期中项目达到“损益平衡状态”的这一点。这是起伏的NPV值从一个负值到一个正值的转折点。一个已达到损益平衡状态的项目已经在商业运行中真正赚到钱了。因而,损益平衡时间标志着回收期的结束和获利周期的开始。
回收期——当一个项目开始获得收益时,在项目结束之前,投资流动值会减少并很可能变为零。当投资流动值为零时,我们称项目变为“自我供给”状态或已经达到“自我供给”状态。此时,不再需要商业运行过程中的资金注入来维持项目的运行。这并不意味着项目已经达到一个损益平衡点,它仍然可能还有要偿还的债务等。我们称自我供给状态和损益平衡状态之间的这一段时期为“回收期”。
内部回报率(IRR)——即在项目的NPV变为零时的折现率。仅有NPV不能给我们足够的信息来判断项目是否值得开发,它不能告诉我们,和其它可能的赚钱方式相比,这是不是最好的方式。这时,IRR就成为我们评估正NPV的一个有用的标准。
3、一个例子:
以一个5年为周期的软件开发计划为例,典型的ROI分析表如下:
|
描述 |
周期 |
合计 | ||||||
|
1 |
2 |
3 |
4 |
5 | ||||
|
收入 |
收益 |
|
0 |
0 |
0 |
100 |
380 |
480 |
|
节约 |
|
0 |
0 |
0 |
20 |
60 |
80 | |
|
总收入 |
|
|
0 |
0 |
0 |
120 |
440 |
560 |
|
支出 |
资本 |
硬件 |
70 |
2 |
2 |
20 |
2 |
96 |
|
软件 |
30 |
0 |
0 |
0 |
0 |
30 | ||
|
总资本 |
|
100 |
2 |
2 |
20 |
2 |
126 | |
|
操作成本 |
工资 |
24 |
36 |
55 |
36 |
11.2 |
162.2 | |
|
数据设备 |
3 |
3 |
3 |
3 |
3 |
15 | ||
|
支持因素 |
14 |
12 |
12 |
15 |
15 |
68 | ||
|
市场因素 |
0 |
0 |
10 |
20 |
30 |
60 | ||
|
总操作成本 |
|
41 |
51 |
80 |
74 |
59.2 |
305.2 | |
|
总支出 |
|
|
141 |
53 |
82 |
94 |
61.2 |
431.2 |
|
资金 |
|
|
-141 |
-53 |
-82 |
26 |
378.8 |
128.8 |
|
投资 |
|
|
-141 |
-53 |
-82 |
0 |
0 |
-276 |
|
ROI |
|
|
|
|
|
|
|
47% |
(单位:万元)
现在我们转入对PV的分析来考虑项目的NPV影响。分别使用折现率5%、10%、12.8%计算。我们采用了标准的NPV惯例,即假定在每个周期末生成先进或消耗成本。
|
周期 |
|
1 |
2 |
3 |
4 |
5 |
|
|
资金 |
|
-141 |
-53 |
-82 |
26 |
378.8 |
|
|
自我供给状态 |
|
|
|
|
X |
|
|
|
|
|
|
|
|
|
|
NPV |
|
DCF |
5.0% |
-134.3 |
-48.1 |
-70.8 |
21.4 |
296.8 |
650 |
|
|
起伏的NPV |
-134.3 |
-182.4 |
-253.2 |
-231.8 |
65 |
|
|
|
损益平衡状态 |
|
|
|
|
X |
|
|
|
10% |
-128.2 |
-43.8 |
-61.6 |
17.8 |
235.2 |
194 |
|
|
起伏的NPV |
-128.2 |
-172 |
-233.6 |
-215.8 |
194 |
|
|
|
损益平衡状态 |
|
|
|
|
X |
|
|
|
12.8% |
-125.1 |
-41.7 |
-57.2 |
16.1 |
207.9 |
0 |
|
|
起伏的NPV |
-125.1 |
-166.7 |
-223.9 |
-207.9 |
0 |
|
(单位:万元)
由此,我们可以得到下列关于应用软件开发项目的结论:
- 项目在5年内产生了560万元的价值,总成本430万元。
- 整个投资周期的不同时间点上的商业投资总共为276万元
- 项目还清了投资并在5年后为此商业过程返回了128.8万元的附加值。
- 在此周期中,最终得到的ROI为47%。
- 项目在第4年实现了自我供给状态。
- 在第5年大体达到了损益平衡状态。
- 假定年折现率为5%,则项目的NPV是65万元。
- 假定年折现率为10%,则项目的NPV是19.4万元。
- 项目的IRR是12.8%。
尽管ROI具有明显的吸引力,但IRR表明,只有在我们没有发现在5年期内投资资本获利高于12.8%的其他投资方式的时候,这个项目才值得接受。如果预感到项目是有风险的,那么IRR就不足以说服CIO去进行项目的开发。而另一种IRR为10的低风险投资选择可能会被认为更有吸引力。最终的结果,在这个IRR值和现在的市场条件下,项目很可能不会得到批准。
想像一下能否更早获得收入?这如何对ROI模型产生影响?
现在,我们假设此应用程序的总功能可以分成4个MMF区域。设想我们可以顺序开发MMF,目的是在项目的第2、3、4年和第5年每年向市场推出一个MMF。就本例而言,我们假设每个MMF的价值都是相等的。显然,存在一些与MMF的打包和早期发布相关的附加成本,因此这需要在金融模型中去考虑。在MMF级别上的附加测试还造成了附加的人工成本。考虑到这些问题,再一次利用粗略估计的方法,我们可以得到改进的项目回报值,如下表所示:
|
描述 |
周期 |
合计 | ||||||
|
1 |
2 |
3 |
4 |
5 | ||||
|
收入 |
收益 |
|
0 |
7 |
14 |
210 |
280 |
700 |
|
节约 |
|
0 |
0 |
0 |
20 |
60 |
80 | |
|
总收入 |
|
|
0 |
7 |
14 |
230 |
340 |
780 |
|
支出 |
资本 |
硬件 |
70 |
2 |
2 |
20 |
2 |
96 |
|
软件 |
30 |
0 |
0 |
0 |
0 |
30 | ||
|
总资本 |
|
100 |
2 |
2 |
20 |
2 |
126 | |
|
操作成本 |
工资 |
24 |
36 |
55 |
36 |
11.2 |
162.2 | |
|
数据设备 |
3 |
3 |
3 |
3 |
3 |
15 | ||
|
支持因素 |
14 |
12 |
12 |
15 |
15 |
68 | ||
|
市场因素 |
20 |
20 |
20 |
20 |
20 |
60 | ||
|
总操作成本 |
|
61 |
71 |
90 |
74 |
49.2 |
305.2 | |
|
总支出 |
|
|
161 |
73 |
92 |
94 |
51.2 |
471.2 |
|
资金 |
|
|
-161 |
-3 |
48 |
136 |
288.8 |
308.8 |
|
投资 |
|
|
-161 |
-3 |
0 |
0 |
0 |
-164 |
|
ROI |
|
|
|
|
|
|
|
188% |
(单位:万元)
运用同样的方法进行PV分析,如下:
|
周期 |
|
1 |
2 |
3 |
4 |
5 |
|
|
资金 |
|
-161 |
-3 |
48 |
136 |
288.8 |
|
|
自我供给状态 |
|
|
|
X |
|
|
|
|
|
|
|
|
|
|
|
NPV |
|
DCF |
5.0% |
-153.3 |
-2.7 |
41.5 |
111.9 |
226.3 |
223.6 |
|
|
起伏的NPV |
-153.3 |
-156.1 |
-114.6 |
-2.7 |
223.6 |
|
|
|
损益平衡状态 |
|
|
|
|
X |
|
|
|
10% |
-146.4 |
-2.5 |
36.1 |
92.9 |
179.3 |
159.4 |
|
|
起伏的NPV |
-146.4 |
-148.8 |
-112.8 |
-19.9 |
159.4 |
|
|
|
损益平衡状态 |
|
|
|
|
X |
|
|
|
36.3% |
-118.1 |
-1.6 |
-190 |
39.4 |
61.4 |
0 |
|
|
起伏的NPV |
-118.1 |
-119.7 |
-100.8 |
-61.4 |
0 |
|
(单位:万元)
渐进交付所生成的开发项目分析结论如下:
- 项目在5年内产生了780万元的价值(与560万元相比),总成本是471.2万元(与431.2万元相比)。
- 商业投资总额为164万元(与276万元相比)。
- 项目偿还了投资并在5年后为此商业过程返还了308.8万元(与128.8万元相比)。
- 在此周期中,最终得到的ROI为188%(与47%相比)。
- 项目在第3年(与第4年相比)达到了自我供给状态。
- 在第5年达到了损益平衡状态。
- 假定年折现率为5%,则项目的NPV是223.6万元(与65万元相比)。
- 假定年折现率为10%,则项目的NPV是159.4万元(与19.4万元相比)。
- 项目的IRR是36.3%。
很显然,此例中MMF渐进交付的运用改变了这个项目。运行此项目只是花销多了一点,但其总利润、5年期ROI和IRR的效果还是很吸引人的。
上述金融分析时被过分简单化了的,有一些变数没有考虑进来,其中最重要的因素之一就是风险。风险量化对一个MMF的可预见值由直接影响,因此必须纳入金融因素的考虑中。
另外,例子中只有几个MMF,它们很好识别,在收入方面都是等价的,并且都用相同的时间来开发。这种理性情况下,哪个MMF优先开发的问题就不会出现。在现实世界中,事情是十分不同的。将用例进行分组来创建MMF的工作从某种程度上来说既是一门艺术,也是一个运用特定方法的过程。MMF的开发顺序能从根本上影响项目的金融模型。
参考文献:《价值驱动的软件开发》、《软件成本估算 COCOMOII模型方法》
浙公网安备 33010602011771号