软件开发按工时收费的荒谬之处
软件开发的行业标准是按照工时收费。
企业一般按照下列公式来计算收费、成本和毛利润的。
收费额度 = 估算的开发工时 x 工时单价
直接成本 = 开发工时 x 工时平均成本
毛利润 = 收费额度 - 直接成本
如果开发投入工时和估算的工时相等的情况下,毛利润 = (工时单价 - 平均成本) x 投入工时
那么,企业在某个人身上全年的收益按照如下公式计算
收益 = 单价 x 有工作的工时 - 成本价 x 全年的时间
所以,开发企业为了提高收益率,往往会关注一个指标:稼动率(即:工作饱满度)
稼动率 = 有工作的时间/全年的时间
全年的时间是个固定值,所以雇主会尽量的增加员工的有工作时间,以保持利润水平。当然,降低员工工资也是提高收益的一个方式。
在这种情况下,按工时收费的公司的员工工资就很明确的定下来了:即不可能超过那个对外的单价,否则雇主就不赚钱了。
上述公式还没有包括:管理人员的费用、场地费用、员工福利等各种开支。
所以,第一个弊端是:单价限制了人才的水平。
第二个弊端是企业会朝着低效率方向“改进”。
对于企业来说,提高收入的方法有如下两种途径:
A. 增加工时
B. 提高单价
一旦单价决定之后,很难再提高,那么提高收入的方式只有增加工时。既然要增加工时才能够增加收益,所以,高效率的方法会降低收益而遭到排斥。这并不是工业发展应该朝向的方向。
这样做的副作用是:员工没法成长。
第三,毁坏了良性竞争
假设有一个标,若干个企业来投标。
A企业属于上述情况的企业,他们的投标价格是 2万元/人月 x 100人月 = 200万
B企业属于高效率企业,他们的投标价格是6万元/人月 x 30人月 = 180万
C企业属于和A企业差不多的企业,他们的投标价格是2.2万元/人月 x 90人月 = 198万
D企业属于完全失控性企业,他们的投标价格是2万元 x 20人月 = 40万
那么对于甲方来说,上述企业的报价意味着什么?
1. 工时差不多应该是在100人月左右吧
2. 工程总价差不多在200万左右吧
注意语气,甲方往往都是根据各个投标方的价格进行综合评定,而不是自己心中有数——也很难做到心中有数。
于是,不合格的D企业被排除了,能够胜任工作的B企业也被排除了。A和C之间选一个,掷个骰子,假设A中标。
实际开发中花费了120个人月才完成——这是这类企业的惯例——无法按时完成工作,成本总是超支。
于是他们列出了很多证据(这是经验总结的,每次项目都会这么干),证明延期和超支是因为甲方没有明确一部分需求造成的(事实的确如此,因为没有谁能够完全明确需求),他们又向甲方请求了40万元的费用。
此时的B企业仍然在寻找着他们的订单。
在这样一个环境下,高效意味着没有竞争力。
第四,按工时收费在浪费甲方的钱
对于一些专业的甲方来说,他们对项目的规模也有一个自己的估算,也会给出一个参考人月数,但是由于甲方并不了解高效的工作方式而导致投资额上升的情况也比比皆是。
同样对于上面的例子来说,甲方无论如何也难以相信B公司的报价——因为他给出了一个超出想象的人月数——给甲方的直接印象就是——这是不可能的!
那么B公司应对这种情况,对自己的报价人月数都采取x3策略。
那么报价就是 6万元/人月 x 90人月 = 540万。价格是其他公司的2倍还多。仍然没有竞争力。
原本可以采用高效的方式用30个人月就能够完成的工作,非要用100~120个人月来完成,这就是现状。