AI 浪潮下,功能点计价法过时了吗?效率真相与人力迷思
过去几年,众多客户常向我提问:当软件厂商采用低代码或无代码技术时,项目该如何合理定价?其潜台词往往是:如何利用这一趋势压低厂商报价,从而实现降本增效的目标。
如今,这一问题的前半段已演变为:当使用 AI 进行编程时,造价该如何评估?
此话题进一步延伸出:是否仍需度量软件规模?功能点计数法是否依然有效?乃至行业终极拷问:在 AI 时代,我们究竟变得更忙碌还是更清闲?团队究竟需要更多程序员,还是更少?
首先,让我们引用一组实验数据。
2025 年,美国非营利机构 METR 开展了一项随机对照试验。他们招募了一批在开源项目中拥有平均五年贡献经验的资深开发者,将其分为两组:一半使用 AI 工具辅助,另一半则不使用,随后记录完成特定任务的实际耗时。
结果显示:使用 AI 的那一组,完成任务的时间反而比未使用 AI 的组别增加了 19%。
更令人玩味的是,他们在实验前后分别进行了主观问卷调查。
实验前,开发者们预测 AI 将使他们的工作速度提升 24%。
实验后,AI 组的成员依然坚信 AI 帮助他们提速了 20%。
主观感知与客观现实之间,竟隔着高达 39 个百分点的人为幻觉。
为何引入 AI 后效率反而下降了?
AI 确实加速了“编写代码”这一环节。针对某些标准化功能,大型语言模型(LLM)仅需数秒即可生成语法正确、结构规范的代码。这部分效率的提升是真实存在的。
然而,软件开发绝不等同于单纯写代码。
代码生成后,必须验证其是否真正满足了业务逻辑,而不仅仅是语法无误。
必须确认其在边界条件下不会崩溃,检查其是否在隐蔽处影响了其他模块。
必须判断其是否引入了安全漏洞——根据 CodeRabbit 的调查数据,AI 生成代码引入漏洞的概率是人工编写代码的 2.74 倍。
这些工作,目前 AI 要么难以胜任,要么生成的结果让人不敢全然信赖。
因此出现的情况是:写代码的工时减少了,但验证、纠错和集成的工时却显著增加。
总工时不降反升,但其内部构成已发生根本性变化。
此外,还有一个更为隐蔽的新增工时,被称为“提示工程”。如何精准描述需求,引导 AI 生成真正符合预期的内容,本身就是一种需要反复迭代的技能消耗。
今年发表在 Frontiers in AI 上的一篇论文将这一现象定义为“迭代推理轮次”——并非代码错误导致返工,而是为了让 AI 理解意图,人类需要与其进行多轮对话。
这一点,或许又要让我们重温《没有银弹》的观点。
在传统软件工程时代,整个生产链条上最大的痛点在于——产品经理难以产出准确的需求规格。
现在回归软件工程造价的核心议题:在 AI 时代,规模度量(即功能点分析)是否依然必要?
先明确什么没有改变。
软件交付给用户的实际功能规模,不会因代码是由人编写还是由 AI 生成而发生改变。
一个 ERP 系统需要处理多少种事务、维护多少个逻辑数据,这些数字是客观存在的,不受开发方式的影响。功能规模是软件对外展现能力的总量,而非开发实现的过程。
这一点在 AI 时代不仅没有失效,反而变得愈发重要。
原因在于:当开发过程本身变得更加不透明——你无法知晓供应商有多少代码是 AI 生成的,也不清楚他们是否进行了充分的验证——功能点数值便成为了唯一与开发方式无关的客观锚点。
说完未变之处,再探讨变化所在。
传统的估算模型逻辑如下:
功能规模 → 工作量(人天)→ 造价
该模型的核心假设是:功能规模与工作量之间存在相对稳定的转换关系,可从历史数据中归纳形成基准,即各类软件研发的生产率数据。
当前的问题是,这种“生产率”的稳定性正在瓦解。
同样是 100 个功能点的系统,一个大量采用 AI 辅助开发的团队与一个纯人工开发的团队,其实际耗时可能天差地别。
更棘手的是,这种差异并非线性:前述论文提供了一组反直觉的数据:
传统上被标记为“高复杂度”的任务,在 LLM 辅助下,78% 的情况仅消耗了预期人工工时的 25% 以下;而传统上标记为“低复杂度”的任务,约 22% 的实际耗时却超过了预期工时的 180%。
难的任务变简单了,简单的任务反而变难了。
这意味着历史积累的生产率基准,正在出现局部失效、不均匀失效,甚至方向不可预测地失效。
在传统估算模型中,至少需要补充以下几个新维度:
该项目中 AI 介入的程度和方式究竟如何?
哪些功能点对应的任务是 AI 擅长的标准模式,哪些是需要大量人工验证的遗留系统集成?
验证和纠错的工时是否独立核算,还是被淹没在“开发工时”这个大池子里?
我们需要建立一套全新的成本动因分析框架,才能对模型进行校准。
回到最初的问题:在 AI 时代,我们是更忙了还是更闲了?
忙碌的人确实更忙了,因为他们在使用 AI 生成代码的同时,还需承担验证、纠错及处理 AI 引入的新型问题,而这些工作缺乏历史基准和行业标准,无法定价,只能自行承担。
清闲的人也确实存在,他们跳过了验证环节,全盘接受 AI 生成的内容,将隐患留给了系统上线之后。
两者的区别在于,是否有人真正在负责质量管控。