接活的人,特别是新人常常遇到的问题是如何报价,报低了觉得自己不值,报高了又怕对方不接受。本来我觉得这是挺私密的事情,或者说是商业机密,但看到最近混乱的市场我觉得痛心,压抑不住想要分享一下我的想法。

说到痛心,一是心痛我们搞软件的技术人员,寒窗苦读十多年,由于木讷口拙(说木讷口拙也不恰当,不信你在攻城狮堆里喊一声:拍黄片是世界上最好的语言),甘于自降身价,自称码农(说好听是自谦、自嘲,其实是自卑,自卑也就算了,还连累人家农民,这其实是对农民最大的侮辱,现代化的农民有自信,有自尊,有知识,有收入,知道袁隆平、褚时健不);二是心痛我们的客户,明明我是出了钱,为什么没有达到我的效果呢?悔不当初啊!其实有时候也不是客户不愿意出钱,是我们行内人没有对客户进行专业的建议和基础知识的普及,软件工程所涉及到的流程、环节、知识等等并不像在屏幕上随意输入几个字、拖动几张图片,几个控件那么简单,甚至我们自己都没有反思自己的价值所在,没有真正从客户的需求出发,低价中标的还有能力为客户后续持续运行考虑吗?;三是心痛我们行业,由于低价中标,由于胡乱压缩工期,导致无法提供必要的资源保证开发质量,最终导致的是客户对整个行业的误解,损害的是整个行业的健康。

关于最低#

所谓最低报价,我指的是正常交易情况下在保证基本项目质量时所需最低配置的报价。我所谓的正常交易不是说熟人交易、战略交易、饥饿营销等市场策略,这些市场策略说白了是需要投资来换取后期的回报,前提是你得有投资的资本,第二后期回报的概率高,既然你接单了,即便不赚钱也不能亏,不要轻信任何后期的口头许诺,环境条件是变化的,口头许诺大多是未慎重思考的虚幻感觉,当下合同价值才是真金白银的。

另外,要报出一个稳定的低价,需要一个清晰的目标和一个熟悉的技术领域和成熟应用模式,对于变化过多的情形报价的因素也复杂一些,这里不作讨论。

基础价格#

软件开发是一个成本中心,本身不直接产生价值,主要通过节约成本,提高效率等提供附加价值,而这其中,人力资源占据一大部分成本。软件工程中也常用人月、人天来计算资源。

软件开发行业是知识更新最快的行业,其他专业的人可能一项技能的就干一辈子了,软件从业人员要一直更新自己的技能树,一不小心长歪了就会影响很长一段时间。这也是为什么计算机专业的人,转行的人多,从事开发的人少的原因,也是为什么这个苦逼的行业工资稍高的原因。

前面说过,要压低成本,就是要最低配置,就需要对软件过程进行裁剪,不要有啰哩啰唆的其他东西,最好是能有包治百病的灵丹妙药,成熟的人都知道这样的东西是不存在的,但是作为对现实的妥协,软件人创造了全栈工程师这样的概念,所谓全栈应该就是万精油了吧,而且由于这个职位知识面广上升空间大,还是挺热门,很多人努力的方向,但是这个需要学习大量知识和经验,说白了是时间和精力熬出来的,大浪淘沙啊,所以工资也还不低,目前这个职位的成本比中级开发人员高,比高级专业开发人员低,按照经验和目前的市场我给出一个20000-30000/月的一个水平,这不是按一个专职开发包含固定工资、奖金、福利、过节费、医保、社保、公积金、年终奖来算的,仅是一个最小经验值。

题外话,我觉得整个行业的技术氛围还是应该往专业化发展,软件人员的核心竞争力是技术,应该用技术解决问题,当然横向发展属于应用创新也没有什么不可以的。

说到专业我有次厕所漏了,按照挨踢届的思维,随便找个游击队员,搭把手就把钱挣了,但这种思维在游击队市场还真找不到人,开挖、防水、抹平、铺砖各司其责,加钱搭把手我也不干。我感触很深,觉得挨踢届的专业化水平还真不高,虽然软件工程最初是借鉴了工程管理的思想,但有些东西还是没有学到。

说了这么多,价格到底该报多少呢?别虚头巴脑的了!好吧,我把自己估算的方法分享下:

  • 人天成本估算
    首先,按前面的价格,我取月成本折中一个数字25000,按每月20天算(码农不是机器人,每周休息才能保证效率和质量,为什么正常的休息都要解释?),每天成本约为 25000/20=1250;

  • 功能点成本估算
    按照比较熟悉和成熟的技术体系,一个增删查改功能至少需要3-4天。有人可能只需要1天,但那不是开发是练手,一个再精简的软件开发过程也包括了设计、编码、验证、测试、修改等阶段。还有人认为,这些工作高中生就可以做了,但这些人说着这样的话,只做到了一半,就是只愿付出高中生的成本,真相却是招聘都是本科、硕士生。

  • 管理费
    管理费在不同的团队,不同的公司理解不同,这里是确保项目正常运转所需要的沟通、协调、组织等成本。这里我的经验值大约是10%左右。

  • 维护费
    通常一个项目,都会有至少一年的升级维护期,正常情况这样的改动应该不会超过5%;但是由于过程,工期等压缩,还有事实上人情因素的改动,我的经验值是10%,超过这个数就只能是自己抗了。

  • 利润
    谁接活不是因为钱的,请站出来我不打死你。利润和具体的项目、项目价值等因素有关,这里就不做讨论了。

  • 按人天算
    人天成本 X天数X (1 + 10% + 10%) + 利润

  • 按功能点算
    人天成本X3X功能点数X(1 + 10% + 10%) + 利润

按人天还是按照功能点来估算呢?从成本来说按人天比较精确,但存在故意拖延的情况;按功能点来计算,又存在各功能点难易程度不同的情形,不能一概而论;比较理想的方法是仔细分析每个功能点的情况,以人天来算,但怎么都难尽人意,具体根据实际情况分析吧。

真的是最低#

回到最低的话题,这不是一个绝对值,只是一个关乎项目成败的经验边界,这个价格是目前(以后的钱是值钱还是不值钱呢?)个人或工作室能承受的最低成本,让他们生活在水生火热之中,还没有包含设备、差旅、培训、水电、房租、利润、风险、变更等等其他的成本,如果公司运作这个成本会更高,反思一下为什么现在很多软件公司倒闭了,很多客户系统烂尾了又花了更多的钱,我希望大家能理性报价实现共赢。