写点什么

如何评估一个软件的项目费用

用户头像
石云升
关注
发布于: 刚刚
如何评估一个软件的项目费用

经常会遇到一些朋友微信发我个信息说:“我想做个 xx 类型的 app,大概需要多少钱?”


我一般只会回复说,要看你具体需求。几千到几十万的都有。


在他们的认知里,做个 app 不复杂,有经验的人应该能一眼就能算出多少钱。确实也有这种估算法。但一般这种只适用于 OEM,这个 app 乙方以前做过,默认甲方的需求跟现有的一样。这样己方给出的价格一般也会很低。但这种情况不常见,大部分甲方都是有很多自己的新增需求,新增需求是需要定制开发的,定制需求会比较贵。


行业里通用的评估方法是根据功能点评估,又叫需求评估法。


这个方法的难点在于,如何把需求搞清楚。这里最难的是,你需要把甲方默认你知道的需求给挖出来,不然很容易出现做着做着甲方又提出一些你没有实现的需求。


所以评估软件费用的第一步就是理清需求

step 1:理清需求

如果甲方有需求文档,那一切都好办,按需求文档里的需求评估就行。就怕甲方自己都没想明白要什么。比如


甲方说:我就要个有电商功能的 app,多少钱?


乙方:具体需要哪些功能?


甲方:像淘宝一样能购物就行。


乙方:淘宝其实很复杂,你需要多个商家入驻吗?


甲方:是的,我有很多品牌店。用户进入后默认显示最近的一家店铺。


乙方:每个店铺的页面显示风格需要自定义吗?还是默认几个模板就可以了?


甲方:不需要自定义,统一一个样式就可以了。


乙方:需要秒杀、团购这些功能吗?这些活动是统一设置,还是单个店铺自己设置?


甲方: 既可以统一设置,也可以单独设置。


乙方: 那有冲突了怎么处理?


甲方:.........


前期这种沟通就是帮助甲方明确自己的需求,把大而全的描述,落实到一个一个具体功能点上,但这种方式有两个坑:

  1. 甲方自己没想清楚,你当时问的问题,在之后就变了。

  2. 乙方很大可能会漏掉一些需求。因为没问到,最后整出需求文档后,甲方发生有些没有,又需要改。


为了减少需求变动导致增加沟通成本和开发成本。尽量多花一点时间在这个阶段上,沟通时间越长,需求越清晰。乙方也要把所有功能清晰的列出来给甲方确认,我的经验是,用描述用户使用场景的方式来确认需求,这样甲方会更容易理解。当然现实是签字后,需求还是会变,但至少不会变太多。


现实里,确认需求这一部分大多都不收费。加上甲方也是找了很多个乙方在评估。己方前期的付出很可能打水漂,所以一般我是不建议接这种没有需求文档的项目。

step 2:评估工作量

一般情况下,研发人员都能估算得出功能点的大概工作量。工作量以日为单位,一天按 8 小时计算。当然这个评估是以个人经验为基础的。所以,不同研发人员评估的总工作量还不一样。

step 3:计算成本

对公司而言,成本有直接成本和间接成本。我不讲太复杂,这里最主要的还是人力成本。项目参与人员评估工作量后就可以算出他们的人力成本。


举个例子,如果是开发一个 app 系统,需要安卓、苹果两个移动端,加上一个运营管理后台。参与的开发人员就需要好几个。安卓开发工程师、iOS 开发工程师、web 开发工程师、后台开发、产品(前期沟通需求的)、测试、ui。每个岗位都会评估自己的岗位的工作量,这个数量乘以日薪。比如,安卓开发工程师月薪 2 万,这个 app 需要开发 1 个月。那就是 2 万。测试需要 5 天,日薪 500,那就是 2500。所有岗位算出来的金额汇总,就是总的人力成本。假设是 10 万。


考虑到公司还有很多非人力成本,比如办公场地、社保公积金、项目奖金等等。公司算的总成本可能会是 15 万,这个成本加上预期的收益,假设是 5 万。那最终对外报价就是 20 万。


假设现在甲方找了 5 个乙方评估。报价是 10 万,20 万,20 万,25 万,100 万。你觉得哪家靠谱?


这个问题本身就有问题,哪家靠谱其实跟价格无关。经历过一些事,才知道这里面的坑有多深。我给你分析下


1. 你找个报价最低的。那他成本肯定会比报价低。你就要考虑,为什么他成本低?如果你答不出来,你敢选吗?除了以前做过类型项目外,降低成本的方式无非是降低产品质量。招一些新人来做,用最简单的方案实现,你找不出来的问题,就不是问题。一切以验收为目标。


2、找个价格最高的。这种思维,无非是贵有贵的理由。其实也是自欺欺人。我自己就经历过一次这样的外包,公司给到乙方的费用是 100 万,结果对方找了 2 个新人,月薪不到 2 万的那种。两个人用了 2 个多月才完成(原计划要求 1 个月)。一切都以验收为目的,用得最简单的方式。拿过来之后,还是要推倒重作。


所以光看价格并不好选。我也没有好的办法,能给的建议就是找熟人,找人品好的熟人。人还是相对好识别的,相处时间久了,一个人靠不靠谱还是比较好判断的。

经验总结

人力外包风险最小

如果甲方有直接开发人员,只是资源不够,需要外包一部分功能。那这种最好使用人力外包,找外包人员到公司来办公。一个三年以上经验的外包开发人员,一线城市要价 1000/天不算贵。2000 的都有。这个好处在于,你可以当面试一下选择外包人员。你可以会觉得外包人员比招聘贵,短期看是这样,但招一个人,你每个月都得付钱,外包只需要付一个项目周期的钱。

验证商品模式找现成品

如果没有自己的开发团队,甲方一定要先把核心需求写出来,哪些是必须要有的。然后再去找现成品,现成品的好处是即省钱,又省时间。缺点在于,有点受制于人,后期要改什么,说多少钱基本都对方说了算。而且后期项目做大了,自己招人也还是得重新做。外包有源代码其实没多大用。除非你把对方的开发人员挖过来,不然代码拿着你以后也用不了。不要去赌对方做一个外包,会把代码写得有多好。


对于外包的要求就两点:

1、满足核心需求,用户能正常使用,能够验证商业模式;

2、后期重写项目的时候,保证数据可以迁移;


现成品哪里找?可以试着去淘宝搜一下,把自己的核心需求给到对方,让提供一下现成品的体验链接。觉得哪个最能满足自己需求就选哪个,觉得价格贵的,多找几家同样一个软件的商家。没有找到现成品,就找满足大部分的。小部分功能定制开发。但是定制开发价格不透明,懂行的人去谈更好。


如果有两个商家提供的 app 都能满足需求,一个功能比较少,一个功能比较多。我建议选择功能比较少的。功能简单,维护简单,bug 也越少。


在合同里可以要求乙方免费维护一年软件的正常使用。而在这期间,甲方项目要是做起来了,要想办法自己组建团队。如果项目赚钱不多,达不到招团队的要求。那么就每年分一部分利益给外包公司,让其维护。

有以下几类情况的外包软件不要接

1、甲方的需求对接人不懂互联网,沟通起来很费力的。

2、不愿意沟通需求,直接要求报价的。

3、需求确认后,不愿意把需求签到合同里的。

4、不愿意付预付款的。

有以下几种情况的外包公司不要找

1、价格远高或远低于市场价的。

2、什么都不问,直接就给你报价的。

3、沟通后发现乙方并不能理解需求的。

发布于: 刚刚阅读数: 6
用户头像

石云升

关注

做时间的朋友,用文字记录成长。 2017.11.30 加入

InfoQ首批签约作者、年度最佳内容作者、年度功勋人物。 微信公众号:石云升SYS 职场、成长、学习等相关问题,欢迎你留言和我交流。遇到喜欢的文章记得点赞,评论。

评论

发布
暂无评论
如何评估一个软件的项目费用