AI 编程需求要写多详细?瀑布开发会回来吗?

返回
Kevin Riedl

12 分钟 阅读 · 2026年11月10日
最近审核

下一篇
图片在你的设备上生成,不连接 Instagram。文章链接会复制到剪贴板,供链接贴纸使用。

计划获批后,几个月过去,用户还没用上成果,优先级却变了。如果 AI 能缩短这段实现时间,我们就有理由重新评估前期规划的价值。

AI 编程需求要写多详细,应先看做错后要付出多少代价。实现越快,一份合理的计划就越有机会在假设过时前发挥作用。我们的建议是:重要改动先明确目标、约束和验收标准,再交给智能体实现;也保留根据证据修改假设的空间。

前期规划是在实现之前把决定做清楚;瀑布开发则把交付组织成依次推进的阶段。采用前者,并不要求把所有需求冻结到最终发布。

研究截至:2026年11月10日。本文依据一手研究和假设算例提出建议。Wavect 没有开展瀑布与敏捷的对照实验,下文的 100× 编码速度也只是模型输入,不是行业实测结果。

AI 为什么让前期规划更值得投入?

当实现足够快,尚未做出的决定就可能成为交付的主要障碍。此时,前期规划更有价值:智能体拿到明确需求就能动手;如果没人定义什么才算正确,生成得越快,也可能留下越多需要否决或重写的工作。

例如,两个智能体可以并行开发客户数据导出的界面和 API。事先约定租户边界、数据结构和错误处理约定,它们才能做出相互配合的实现。只说“做一个导出功能”,就把这些选择留给了各自的猜测。

在初始不确定性相同的前提下,本周就能让用户试用的改动,比一年后才能完成的改动,更少受到期间环境变化的影响。缩短实现时间可以提高规划的回报,却不能让预测永远正确。

我们的AI、规格与软件工厂回归讨论了工程工作的整体变化。这里聚焦下一次实现之前,究竟应该先决定多少事情。

瀑布开发的问题只是代码写得慢吗?

实现缓慢会让计划过时,太晚发现问题同样会。即使代码瞬间完成,也可能满足了错误的需求。规划必须包含检验假设的方法,让团队在投入过多之前发现偏差,并在证据变化时修订决定。

Royce 在 1970 年的论文中已经警告:如果到后期测试才发现系统约束,就可能需要大幅返工。他也描述了开发阶段之间的反馈。用这篇大型系统开发原始论文为僵化、一次通过的流程辩护,并不合适。

Agile Manifesto(敏捷宣言)同样承认计划有价值,只是更重视响应变化。有了反面证据还继续照旧执行,即使实现很快,也可能白费力气。

AI 写代码已经达到原来的 100 倍速度了吗?

本文查阅的研究尚未证明,AI 能普遍让软件实现速度达到原来的 100 倍。结果取决于任务、开发者、工具和衡量指标。完成一道编程任务的用时、代码活动、发布数量和用户价值,分别回答不同的问题。

研究报告结果适用边界
2022 年开展的 Copilot 对照实验招募 95 名程序员;完成任务的参与者中,使用 Copilot 者平均少用时 55.8%。任务是编写一个 JavaScript HTTP 服务器,未测量完整产品交付。
METR 的 2025 年早期实验16 名经验丰富的维护者处理 246 个任务;允许使用 AI 时,完成时间增加 19%。对应特定代码库场景和当时的工具,不能视为当前通用的减速结论。
Writing Code vs. Shipping Code,2026 年 9 月修订版这项观察性研究覆盖超过 50 万名 GitHub 开发者,估计代码活动的增幅远大于发布数量的增幅。产出数量不等于耗时缩短,也不等于用户价值。

METR 在2026 年 2 月的后续说明中指出,样本选择和多个智能体并行时的计时问题,使其新一轮生产率估计不可靠。早期的减速结果不应成为对今天所有工具的定论。

我们仍可以认真检验 100× 这个假设:某项实现真能这么快,整个项目又能快多少?

编码速度变为 100 倍,整个项目会怎样?

在一个各阶段依次进行的假设项目中,100× 编码速度会让规划占比上升,但整体交付速度远达不到 100×。结果取决于实现原先占多少时间,以及其他工作是否也加快。这个算式不能替你决定最佳规划预算。

假设范围与验收标准不变,规划用 10 天,实现用 80 天,验证与发布用 10 天。只有实现加速,各阶段不重叠,返工和排队等待也不变。这些天数表示假设的阶段历时,不是 Wavect 项目数据或行业平均值。

总天数 = 10 + 80 / 实现速度倍数 + 10

实现速度倍数实现天数总天数整体速度倍数规划占比
1×801001×10%
10×8283.57×35.7%
100×0.820.84.81×48.1%
瞬间完成实现的极限情形0205×50%

100× 情形下,规划占了将近一半,但没人多花一天做规划。占比上升,是因为实现时间缩短。这并不能证明,把规划天数翻倍就会更好。

分析自己的交付流程时,要找出决定完成时间的关键路径,不能把重叠的时长相加。如果 AI 也改变了测试、评审或返工,应分别估计。最终要看多久能交付一项通过验收、真正可用的改动。

AI 编程需求要写多详细?

先写清那些一旦做错,就难以低成本撤回的决定:用户目标、责任归属、数据边界、接口、失败处理和验收标准。细节应足以约束下一次实现。对于改起来无关痛痒的局部选择,不必因为 AI 能写长文档就提前规定。

重要改动应请负责人回答:

  • 目标与范围:解决谁的问题,如何观察效果,哪些相邻需求暂不包含。
  • 约束:系统能访问哪些数据、执行哪些操作,必须保留什么,已有何种兼容承诺。
  • 接口:各组件接收和返回什么,失败时记录什么。
  • 验收与恢复:凭什么证据发布,由谁判断,发布失败时如何停止或恢复。

Epoch AI 与 METR 的2026 年 4 月 MirrorCode 结果展示了在可执行的参考实现和详细测试辅助下,智能体能够自主完成相当规模的重新实现。这支持可检验规格的用途,但这个范围有限的基准不能证明瀑布更优,也没有测出相对人类的速度倍数。

“妥善处理失败”很难验收。“服务商响应不确定时,保留操作标识,先核对状态,再决定是否重试”,才是可以检验的行为。

不同改动应该投入多少前期规划?

规划深度取决于不确定性和撤回决定的代价。需求明确、做错后果重的改动,值得详细准备;行为尚不确定、又容易修改的改动,适合尽早实验。如果两项都高,应先设计安全的求证方式,避免直接让整个系统承担后果。

需求不确定性撤回代价下一步例子
低低写清简短的验收约定,然后实现。已有明确示例、不改变存储数据的展示调整。
低高执行前明确依赖、失败情形和恢复方式。必须保留现有记录与集成的数据迁移。
高低提出待验证的问题,用可丢弃的版本实验。让有代表性的用户试用两种引导流程。
高高通过模拟或隔离试验降低不确定性,再正式投入。新分配规则先用合成数据评估,再考虑作用于真实账户。

如果智能体很快就能做出安全的原型,再花一周争论臆测中的界面,可能不划算。实现变快,既能提高明确已知约束的回报,也能降低提前猜测用户偏好的必要性,因为偏好可以直接观察。

撤回代价包括受影响的人、丢失的数据、已经做出的承诺、运营中断和工程投入。生成代码便宜,不代表所有后果都便宜。安全硬约束也不会因为收益表显示划算就失效。

规划做到什么程度就可以开始实现?

下一小步实现已有一致的目标、明确约束、负责人、可观察的验收标准和恢复办法,就可以考虑动手。把剩余未知及其验证方法记下来。只有当继续澄清一个决定预计能避免的损失,值得付出相应时间时,才继续增加规划。

看一个虚构示例:客服人员需要通过支付服务商发起全额退款。假设退款资格和审批规则已经确定。如果规则仍有冲突,先参考规格编写前如何解决业务规则冲突。

实现前要确定什么可检验的要求
权限只有获授权的客服角色,才能为自己所属租户发起已批准的退款。
操作身份为这笔获批退款持久保存一个稳定的幂等键,并选择支持跨重试复用该键的服务商。
并发同时点击或重复投递,不能为同一项获批请求创建多笔独立退款操作。
服务商响应不确定超时后,操作进入待核对状态。不能只因响应丢失就发起新的退款操作。
验收与恢复在测试环境中验证无权限时拒绝请求、重复请求和响应丢失的行为,并记录运维人员如何核对未决结果。

这些约定足以支持调查服务商行为,并实现一个范围有限的测试集成;它们不代表退款系统已经实现或验证。智能体可以选择辅助函数名,却不能悄悄改业务规则,或认定超时就意味着资金没有移动。

再开一次规划会,能否比这个小范围的安全实现更省成本地得到所需答案?如果只剩文档润色,就动手。

先规划再用 AI 开发,具体怎样推进?

先规划的 AI 开发流程,应让实现范围小到可以评审,让规格容易修订。先约定一项边界清楚的改动,再实现、依据独立审阅过的验收标准测试,并让用户或负责人检查结果,然后才开始下一次开发。

  1. 选定一个结果。写清用户是谁、可观察的变化是什么,以及谁有权验收。
  2. 澄清代价高的歧义。依据规划矩阵,检查约束与失败情形。
  3. 生成可评审的实现。按能够验证行为的边界拆分工作,记录偏离已批准约定之处。
  4. 检查实现与假设。测试正确性,审阅代码差异,并取得行为确实有助于目标用户的证据。
  5. 更新规格。下次开发之前,明确保留哪些行为、否定了哪些假设,以及下一个待解问题。

GitHub 的Spec Kit 介绍也主张持续修订规格,并拆成便于评审的小任务。具体工具见我们的Spec Kit 生产团队指南。规格有了结构,仍需独立判断其中的假设是否正确。

DORA 的小批次交付指南同样强调 AI 辅助开发中的快速反馈。每批工作应以能验证多少为限,不能只看智能体能生成多少。

怎样判断多做规划是否划算?

看通过验收的交付、返工和上线后缺陷。计时应从开始澄清需求到验收发布,包含规格评审和等待。编码用时缩短,只有在周边工作没有抵消收益、验收标准没有降低时,才对整体交付有帮助。

可以设计一个试点:对相似改动,分别使用简短任务说明和更明确的前期约定。记录规模、不确定性、撤回代价、团队熟悉程度与工具版本。条件允许时随机分配可比任务;否则只能作描述性比较,必须保留任务差异。

记录从启动到完成的时间,以及规划、实现、评审的人力投入。还要记录重开工作、发布后发现的缺陷,以及是否取得预期用户结果。这是建议采用的衡量方式,不是我们已经运行过的试点结果。

保持范围与质量标准一致。代码行更多,可能只说明生成量更多;发布次数更多,可能只说明每次打包更小。项目预算见AI MVP 成本指南。这里要判断的是,额外澄清是否值得占用交付时间。

应该重新采用瀑布开发吗?

需求能够澄清、做错后难以撤回的工作,值得重新重视前期规划。AI 让这种做法更值得试验,因为实现可能赶在假设过时前完成。控制范围,根据证据修订计划;只有通过验收的交付有所改善,才扩大规划投入。

面对已知流程,我们会先写准规格,再交给智能体。面对用户或价值主张尚未确定的产品,我们会先设计实验,尽早求证。

如果团队还无法就目标、约束或验收负责人达成一致,Wavect 的软件需求探索服务可以协助澄清这些决定。软件需求探索阶段指南介绍了工作范围。Quivr 协议交付与迁移案例仅提供相关工程背景,不能证明 AI 速度倍数或瀑布与敏捷的比较结果。

带一项具体改动来讨论需求:确定实现前必须做出的决定,以及什么证据足以支持发布。

AI 编程、瀑布开发与前期规划常见问题

需求规格和代码都能交给 AI 写吗?
可以让 AI 起草规格、找出矛盾并提出失败情形。有权决定产品行为的人仍须确认目标。把假设与已确认需求分开,并让验收标准接受独立于生成实现的审阅。文档写得流畅,并不能说明它描述的产品就是用户需要的产品。
AI 辅助项目应该由谁验收?
分别明确谁能接受业务结果、哪些工程评审者负责技术约束。同一项改动可能涉及不同人的决定。最终验收不应交给生成该实现的智能体。开始实现之前就约定所需证据,避免到评审时才争论原本想做什么。
采用这种规划方式,需要放弃 Scrum 吗?
我们建议的流程不要求更换项目管理框架。团队可以先澄清下一项重要改动,再按现有节奏评审结果。先改善决定和验收证据的质量。是否调整会议或角色,应由它能解决什么交付问题来判断。
实现过程中需求变了,应该怎么办?
暂停受影响的工作,找出哪些已批准的决定发生变化,评估对接口、数据、测试和发布的影响。与负责人更新规格后再继续,保留仍然适用的工作。需求变化可以带来有用证据;把旧计划视为永远正确,反而可能造成返工。
这里讨论的是开发 AI 产品,还是用 AI 写代码?
这里讨论 AI 辅助软件开发,所实现的产品本身可以完全不含 AI。如果产品使用模型,还须在实际用途下评估模型行为。代码生成变快,不能证明概率性输出符合产品验收标准,也不能证明用户需要这个功能。
需求规格应该放进 Git 仓库吗?
对规格做版本管理,有助于一起审阅改动、理由和测试。如果需求批准者能够访问并审阅仓库,可以放在其中;否则在其他位置保留有负责人维护的原件,并链接到准确版本。重点是可追溯和持续维护,复制一份不再更新的文档进 Git 并不能做到这两点。

构建产品,而不只是 backlog

如果这篇文章对应的是一个真实产品决策,Wavect 可以用高级创始人级判断帮你界定范围、构建、加固或领导软件工作。

可选服务路径:

只收重要内容

关注与你相关的内容

每当我们发布新文章,你会收到一封简短邮件。你可以关注整个博客,也可以只选感兴趣的主题。

你希望接收哪些内容?
选择主题

免费、双重确认、不使用跟踪像素。

返回
Kevin Riedl

12 分钟 阅读 · 2026年11月10日
最近审核

下一篇

获取下一篇关于产品与 MVP的一线笔记

有新文章时发送一封简短邮件,不使用跟踪像素,也不发送填充内容。

免费、双重确认、不使用跟踪像素。