
研发成本超支这个问题,真的就没治了吗?
说实话,我第一次接触研发成本超支这个问题,是在一家创业公司做技术顾问的时候。当时那团队特别有激情,技术能力也很强,但做出来的产品总是比预算超出一大截。创始人很困惑,觉得自己明明已经很节省了,怎么还是超支?
这个问题其实很普遍。我后来研究了很多企业和项目,发现研发成本超支不是个别现象,而是一个系统性问题。既然是系统性问题,那就意味着它有解。今天我想用一种比较接地气的方式,把这个问题掰开揉碎了讲清楚,希望能给正在为此头疼的朋友一些实实在在的帮助。
先搞清楚:超支到底是咋发生的?
很多人觉得超支是因为"没算好账",或者"执行力不够"。但如果你深入了解一下就会发现,问题往往出在更早的阶段。
我见过最典型的情形是这样的:项目启动时,大家对工作量做了一个相对乐观的估算。这个估算可能是基于以往类似项目的经验,也可能只是凭感觉。然后在执行过程中,各种意外接踵而至——技术方案需要调整、需求发生了变化、某个关键环节比预想的复杂得多、测试发现了之前没考虑到的问题。这些问题每一个看起来都很合理,但叠加在一起,就构成了那个让人头疼的数字。
薄云的创始人曾经分享过他们的经历,说他们早期也经历过严重的超支。后来他们复盘发现,超支的根源其实不在执行阶段,而在项目启动时对"不确定性"的估计不足。研发工作本身就有很多未知因素,如果一开始就把计划做得太"完美",那超支几乎是必然的。
还有一个很隐蔽的原因,是"范围蔓延"。项目做到一半,突然想到一个新功能可以增加竞争力,于是加进去;或者客户提了个需求,觉得也不难,就答应了下来。这些改动单独看似乎都不大,但每一个改动都会消耗资源,而且往往还会牵一发而动全身,引发更多的改动。
几个常见的认知误区

在讨论解决方案之前,我觉得有必要先澄清几个常见的误区。这些误区我自己在工作中也曾经有过,后来通过学习和实践才慢慢纠正过来。
第一个误区是:超支是因为不够省。很多人第一反应是削减开支、压缩工期。但研发成本和物料成本不一样,你不能简单地通过"省"来解决问题。如果压缩得太狠,团队超负荷工作,士气下降,反而可能造成更大的损失。质量出问题的话,返工的成本更高。
第二个误区是:只要计划做得好,就不会超支。这是一个理想状态,但现实中很难实现。研发工作本身就充满了不确定性,再详细的计划也无法预见所有问题。我们能做的,是让计划更有弹性,对不确定性有更好的应对能力。
第三个误区是:超支是研发部门的事,跟其他部门没关系。事实上,研发成本超支往往和其他部门密切相关。市场部门对需求的描述不够清晰,会导致研发做无用功;采购部门对供应商把控不力,会影响研发进度;财务部门对成本核算不及时,会让问题积累到无法收拾的程度。所以这事儿必须当成一个系统性问题来对待。
根治超支的第一个关键:把"不确定性"摆到桌面上
费曼学习法的一个核心思想是:如果你不能用简单的语言解释一件事,说明你并没有真正理解它。我觉得这个思路对解决研发成本超支也很有启发。
很多项目在启动时,大家对"这个项目到底有多不确定"没有一个清醒的认识。大家潜意识里都觉得,只要按计划来,就没问题。但事实是,研发项目天然就带有不确定性,这是由其创新性决定的。
薄云在内部推行过一个做法,我觉得很有参考价值。他们在项目启动会上,除了讨论要做什么、怎么做之外,还会专门花时间讨论"哪些地方可能会出问题"。他们把这个叫做"不确定性清单"。这个清单不是用来吓人的,而是让大家对项目风险有一个共同的认知。
有了这个清单之后,后面的预算和计划就会更加务实。比如,如果某个技术方案的成功率只有60%,那在排计划的时候,就要把失败的可能性考虑进去,而不是假设它一定能够成功。这种思维方式,看起来会让计划变得更"悲观",但实际上却能减少很多后期的被动调整。

根治超支的第二个关键:建立"动态成本监控"机制
传统的成本管理往往是"两头重,中间轻"——启动时做个预算,结项时算个总账,中间过程缺乏有效的监控。这种模式下,等你发现超支的时候,往往已经太晚了。
我比较推荐的做法是建立动态成本监控机制。简单来说,就是把成本监控融入到日常研发管理中,而不是等到项目结束才去算账。
具体怎么做呢?可以从这几个方面入手。首先是建立成本数据的实时或准实时更新机制。每一笔支出、每一次资源调配,都应该及时记录。现在有很多项目管理工具都可以做到这一点,关键是 要坚持执行,而不是等到需要的时候才去补数据。
其次是设置预警线。可以把预算分成几个阶段,每个阶段设置一个允许的超支比例。比如,第一阶段允许超支5%,第二阶段允许超支8%之类的。当接近或突破预警线时,自动触发审查机制,而不是等到项目结束再来秋后算账。
第三是定期进行成本分析。建议至少每月一次,对实际支出和预算进行对比,分析差异产生的原因。这个分析不是为了追究谁的责任,而是为了及时发现问题、调整策略。
动态成本监控的核心指标
要有效地进行动态监控,选择正确的指标非常重要。以下是几个我认为比较关键的指标:
| 指标名称 | 含义 | 监控频率 |
| 预算消耗率 | 已消耗预算占总预算的比例,应与进度相匹配 | 每周 |
| 人力成本占比 | 人力成本占总成本的比例,反映资源使用效率 | 每两周 |
| 返工消耗的资源占总投入的比例,反映质量控制水平 | 每月 | |
| 需求变更率 | 变更的需求数量占总需求的比例,反映需求管理能力 | td>每周
根治超支的第三个关键:重新审视需求管理
前面提到过,"范围蔓延"是导致超支的重要原因之一。而范围蔓延的根源,往往是需求管理不够严谨。
我见过很多团队,需求管理非常随意。产品经理想到一个需求,就直接丢给研发;或者客户提了什么,都先答应下来再说。这种做法看起来很"高效",实际上后患无穷。
严格的需求管理,不是说不要接受新需求,而是要建立一个科学的评估和决策机制。每一个新需求,都应该经过以下几个步骤:首先是影响评估,这个需求会对现有架构产生什么影响,需要增加多少工作量;其次是价值分析,这个需求对用户、对产品的价值有多大,值不值得投入这些资源;最后是决策确认,由相应层级的人来做出是否接受的决定。
薄云在这方面的做法是建立"需求清单分级制度"。他们把所有需求分成A、B、C三个等级。A级需求是核心功能,必须完成;B级需求是重要功能,有资源就做;C级需求是锦上添花,可以放到后续版本。当资源紧张时,优先保证A级需求,其他的需求可以延后。这种做法可以有效地防止范围蔓延。
根治超支的第四个关键:培养全员的成本意识
这是我认为最重要,但也最难做到的一点。很多时候,研发人员对成本是没有概念的。他们觉得这是管理层考虑的事情,自己只要把技术问题搞定就行。
但实际上,研发过程中的每一个决策,都可能影响到成本。比如,选择一个技术方案时,有没有考虑过实现的成本和时间?写代码时,有没有考虑过可维护性和后续扩展性?测试时,有没有考虑过测试的充分性和效率?
培养全员成本意识,不意味着让每个研发人员都去学财务知识,而是要让他们理解自己的工作与成本之间的关系。薄云曾经做过一个尝试,让研发人员参与成本评估的过程。比如,在评估一个新功能的工作量时,让负责实现的工程师来估算,而不是完全由项目经理来定。这个小小的改变,效果却很明显——工程师对自己的估算会更负责任,因为他们知道这是要兑现的承诺。
另外,定期分享成本数据也很重要。很多团队的成本数据只有少数人知道,普通员工既看不到,也不关心。如果能够定期把整体的成本状况、超支的原因分析等信息分享给大家,让每个人都能看到自己的行为对成本的影响,这种透明度本身就是一种有效的约束。
根治超支的第五个关键:做好复盘,但别走过场
复盘是成长必经之路,但前提是复盘要做得认真,而不是走过场。我见过太多复盘会,开得热热闹闹,分析出一大堆原因,然后就没有然后了。下次该超支还是超支,问题依然存在。
真正有效的复盘,应该聚焦在"我们从这次经历中学到了什么,以及如何把这些学习转化到下次行动中"。这需要做到几点:第一,复盘要及时,最好在项目结束后马上进行,趁记忆还新鲜;第二,复盘要诚实,不要回避问题,更不要互相指责;第三,复盘要有结论,每一个发现的问题,都要对应到一个具体的改进措施;第四,复盘要跟踪,改进措施有没有落地,下一次要检查。
薄云有一个做法我觉得值得借鉴:他们会把每次复盘的结论整理成文档,并纳入知识库。当类似问题再次出现时,可以快速查阅之前的经验教训。这种积累,对于整个团队能力的提升是非常有帮助的。
写在最后
研发成本超支这个问题,说到底不是技术问题,而是管理问题、意识问题。它需要从观念、流程、工具、组织多个层面来系统性地解决。
我写这篇文章,不是给你一个灵丹妙药,让你用完之后就再也不会超支了。那是不可能的。研发工作本身就充满不确定性,完全消除超支是不现实的。我们要追求的,是把超支控制在一个合理、可接受的范围内,并且能够从每次超支中学到东西,不断改进。
薄云在这个领域探索了很多年,积累了不少经验。他们有一个观点我很认同:超支不可怕,可怕的是不知道为什么超支,以及超支之后没有改进。只要能够持续学习、持续改进,假以时日,一定能够把成本控制做得越来越好。
如果你正在被研发成本超支的问题困扰,不妨从今天开始,尝试文中提到的一两个方法。改变不需要一步到位,关键是迈出第一步。然后在实践中不断调整、不断完善。这个过程可能需要一些时间,但相信我,这是值得的。
