估算软件项目成本
[背景]
软件项目一般来说可以分成两种:
A. 客户定制系统
B. 研发产品化系统
目前,国内绝大多数的都是在做A类型的客户定制系统,从接客户的单,到做客户的需求,拿到客户的合同,做开发,做实施,做后期维护之类的工作。
另外一种B类的,做产品研发的工作,国内涉及的人不多,而且它的项目估算里面涉及的问题很多,这里就不展开谈了。
做一个正常的软件项目,作为经营者和管理者,都想清楚地知道,这个软件项目有多大,要花掉多少成本,我能拿到的利润有多少,所以能不能准确地估算出软件项目的规模就显得很重要的。
下面我们来剖析一个小小的软件项目的规模估算。
[项目的需求文档]
假设现在,我们接到了一个项目,项目的名称是×××会员综合管理平台,决定采取传统的B/S架构来设计,我们首先要干的事情就是具体的分析这个项目的需求文档,只有在熟悉需求的情况下才能知道整体的规模。
需求文档:
|
大项目 |
中项目 |
小项目 |
人日 |
||
系统设计 |
数据库设计(大概10张表左右) |
------ |
6 |
||
系统结构设计 |
------ |
6 |
|||
画面demo |
------ |
10 |
|||
系统开发框架搭建 |
------ |
3 |
|||
开发作业 |
会员管理子模块 |
会员开卡画面 |
1.5 |
||
会员开卡确认画面 |
0.5 |
||||
会员信息检索画面 |
1 |
||||
会员信息修改画面 |
1 |
||||
会员休息修改确认画面 |
0.5 |
||||
批量生成卡号 |
1 |
||||
会员积分输入和修改 |
2 |
||||
会员卡延期画面 |
2 |
||||
会员卡挂失画面 |
2 |
||||
商品管理子模块 |
商品录入画面 |
1 |
|||
商品录入确认画面 |
0.5 |
||||
商品检索画面 |
1 |
||||
商品信息维护画面 |
1 |
||||
库存管理 |
库存检索画面 |
1 |
|||
库存新建画面 |
1 |
||||
库存修改画面 |
1 |
||||
库存信息确认画面 |
0.5 |
||||
~省略~ |
|||||
测试作业 |
测试数据和计划的准备 |
------ |
3 |
||
分模块测试 |
分画面测试 |
~省略~ |
|||
后期维护 |
系统上线安装 |
硬件安装,布线 |
1 |
||
环境安装,项目部署 |
1 |
||||
简单的客户培训 |
3 |
||||
维护 |
日常数据的维护 |
4 |
|||
BUG的修正 |
5 |
||||
总计 |
大约7人月以上 |
||||
[项目规模的概算]
我们大家都知道,正常的软件开发模式,比如瀑布开发模式的话,会分成
A. 需求分析
B. 基本设计
C. 详细设计
D. Codeing
E. UT
F. CT
G. RT
H. 后期维护
这么多阶段和步骤。但是根据,我所了解到的,国内除了少部分对日的大型公司会严格按照这种流程来做事情之外,绝大多数的国内公司还是随着自己的性子来。其中不乏,东软,联创之类的著名企业。所以我在制定项目概算的时候,还是按照国内的开发步骤来做:
[结论]
软件公司在算钱的时候有几种方法:
A. 国内的比如联创之类,用项目分段方法收钱,做到哪一个阶段,或者完成了一个模板的上线就算前
B. 外包公司一般采用一个人月多少钱来收钱,比如对日外包一般是1万~2万一个人月。
对于老板而言,他要计算出项目的成本,也要这样算,比如以下:
(总人月:7人月) |
项目成本 |
对客户收费 |
总价 |
7万(市价:1万/人月) |
>=8万 |
# 为什么项目成本里面,一个人月会有1万呢
因为如果我们假设项目的成员构成如下:
职位 |
月工资 |
PM |
60,00 |
SE |
45,00 |
PG(5人) |
25,00×6 |
公司日常运营费用(包括文职人员,会计,场地租金,旅游福利,公司上层的工资,电脑设备,和客户打交道的关系费-----) |
500,00 |
于是我们就能得到:
月开销合计 |
75,500 |
平均一个人月 |
10,786 |
# 为什么项目最后的售价一定会大于8万呢
在今天的IT市场上,一般来说作客户定制系统的公司,利润率只有10%~20%,厉害一点的比如联创,日恒一般也就15%。
特别是现在每年5%的通货膨胀率,如果一个企业不拿到10%以上的利润,那这个公司一定会完蛋。
所以,7万×(最起码的利润率)10%>=8万。
证明完毕