Skip to main content

用 AI 做开发大半年,我们团队总结出 6 条保命经验

知识库同步
@ Wing

先说一个我们团队亲身经历,尤其是新项目启动,大家兴致勃勃的时候。

飞书知识库

先说一个我们团队亲身经历,尤其是新项目启动,大家兴致勃勃的时候。

一打开 AI 编程工具,描述了需求,几分钟后几百行代码就跑出来了,而且效果还不错。第一天,进度惊人;不到一周,功能基本就齐了,然后事情开始不对劲。

第二周,AI 改一个功能,顺手把另一个改坏了,没人发现。第三周,同一份数据在两个地方各存了一份,改了一边忘了另一边,线上出了诡异的问题。到第二个月,团队里最常听到的对话变成了:

"这段逻辑是谁写的?"

"不知道,AI 写的。"

"那这块现在能不能动?"

"最好别动。"

代码量翻了几倍,对系统的掌控感却没了。

后来复盘,问题不在 AI 写代码的能力。恰恰相反,它写得太快太顺,快到那些原本用来"慢下来想清楚"的环节——讨论方向、对齐方案、审查计划——全被绕过去了。

速度放大了效率,也放大了混乱。

过去大半年,我们围绕"人和 AI 怎么协作开发"做了大量尝试,踩了不少坑,沉淀出一套方法。这篇不讲工具技巧,讲的是更底层的问题:AI 把"写代码"这件事变得极其廉价之后,一个开发团队里最值钱的工作到底是什么。

一共 6 条,全都是真金白银换来的。

一、方向没定,写得越快偏得越远

第一个坑:方向还没聊清楚,就让 AI 动手。

一次功能改造,需求讨论会上大家说了句"这个应该不难",散会后有人直接让 AI 开写。代码很快出来了,评审才发现:目标用户理解错了,核心流程走偏了,还顺手引入了一个团队从没用过的新框架。返工花的时间比从头做还多。

从那以后我们立了条规矩:复杂项目必须先回答清楚核心问题,才允许讨论技术方案。

  • 目标用户是谁?

  • 核心要解决什么问题?

  • 做到什么程度算成功?

  • 还有同样重要的:明确不做什么。

听起来是常识,但 AI 时代它们格外关键。过去"想清楚"和"动手做"之间隔着高昂的开发成本,不想清楚不行。现在动手成本趋近于零,"先做了再说"成了最自然的冲动。

方向没定,写得越快偏得越远

而方向错误的高速执行,比不执行更糟。它不只浪费投入,还留下一堆要人来收拾的代码。

我们现在的做法:任何新项目或重大改造,先形成一份简短的方向共识,写清楚用户、核心流程、成功标准、不做的范围、约束条件。已有共识直接复用。这份东西不用长,但必须存在,还方便复盘。

先明确做什么、为什么做,再讨论系统怎么承载。顺序不能反。

二、计划不等于授权

第二条,花的代价最大。

AI 很会做计划。给个任务,它能输出一份看起来相当完整的实施方案:步骤清晰,模块分明,连测试都安排好了。第一次看到时我们的反应是:"挺好,就这么干。"

然后,我们学会了后悔。

计划里藏着错误的前提:它以为某个老模块能复用,其实不行;它漏掉了数据迁移的风险;它规划的一步改动,实际会冲破两个模块之间约定好的边界。这些问题等代码写完才暴露,代价就大了。

现在团队有条铁律:AI 输出的第一版计划,只是讨论稿,不是施工许可。

计划出来,流程先停。人核对一遍:这计划解决的真是我们要的问题吗?目标、范围、那些不可逆的选择,对吗?再来一轮系统性的拷问,从用户价值、能否复用现有能力、有没有引入多余的东西、每一步怎么验证、失败了怎么回滚,逐条过。

计划不等于授权

有个细节值得说。如果审查发现计划有大问题,我们让 AI 生成一份完整的替代计划,而不是在旧计划后面打补丁。补丁摞补丁的计划,执行到一半一定乱。

目标、范围、依赖、风险、回滚、验证方式,都没有阻断性问题,计划才被授权实施。

多这一步,看着慢,但我们算过账:审查一份计划半小时,返工一次要三天。

三、系统里每样东西,都得有唯一的"主人"

第三条关于架构,尽量用大白话说清楚。

AI 有个倾向:为了让眼前这步走得通,它会就地取材。这里加张表,那里存份状态,临时开个接口。单看每步都合理,累积起来就是灾难:同一份数据存了两个地方,同一个逻辑有两条路径,出了问题没人说得清该信哪个。

我们管这叫"事实源失控"。

对应的规矩:数据、状态、权限、重试机制、对外副作用,每一样都必须有唯一的责任归属。

功能该进哪个模块、数据存哪、出问题谁兜底,动手前就得有答案。AI 的方案里一旦出现"第二个事实源"或"临时兼容路径",必须给出充分理由和退出条件,否则打回。

系统里每样东西都得有唯一主人

配套原则:优先复用成熟能力。动手前先问,现有模块能不能满足?团队已接受的技术栈里有没有现成方案?想引入新框架、新数据库、新队列,先证明现有能力确实不够,再说清楚将来怎么退出。

说到底,架构纪律保护的是团队自己对系统的理解力。系统里每一处"例外",都是未来某个深夜的一次加班排查。

四、把"任务清单"换成"验收节点"

第四条,怎么管进度。

传统拆法是这样的:"完善认证模块""优化数据层""接入第三方服务"。这种拆法在 AI 时代特别危险,因为 AI 会非常高效地把这些模糊任务逐项"完成",打满勾,然后你得到一个看似做了很多事、实际无法验证的系统。

我们的替代做法:把工作拆成"验收节点"。

验收节点,就是一个有明确结果、拿得出验收证据的交付阶段。判断标准很简单:它描述的是可观察的结果,还是一组动作?

"用户能够登录并恢复会话",是验收节点。

"完善认证模块",不是。

把任务清单换成验收节点

每个验收节点写清四件事:

  • 交付什么可观察的结果

  • 允许改动哪些范围

  • 依赖什么前置条件

  • 怎么验证

一次只做当前这个节点,做完、验证完、集成完,再推下一个。

最大变化是汇报方式。我们不再接受"完成了 70%""改了 15 个文件"这种说法。能力状态只有一种表达:哪些验收场景真实通过了,证据是什么。

任务数、文件数、百分比,都不是进度,通过的验收才是。

五、人和 AI 之间,划一条决策边界

第五条,对带团队的人可能最有用:分工的边界画在哪?

我们按"可逆性"划线。

AI 默认负责的:

  • 读仓库、读文档、补齐事实

  • 比较技术方案并给出明确推荐——是给推荐,而不是把一堆没背景的选项扔回来让人挑

  • 决定局部的、可逆的实现细节

  • 设计测试、回滚和恢复方法

  • 对错误或低质量的方案提出反对(一个只会服从的 AI,不是好同事)

必须人来确认的:

  • 产品目标、目标用户、业务优先级

  • 不可逆或高成本的技术路线变化

  • 生产数据变更、对外发布、付费资源

  • 权限扩大、安全例外、风险接受

  • 多个方案存在真实产品取舍时的最终拍板

一句话:AI 对事实证据、技术判断和实施质量负责;人只在需要产品判断、或要承担不可逆后果时做决定。

人和 AI 之间划一条决策边界

两个极端都要避免。一个是让 AI 全权决定,出了不可逆的问题才发现没人把关。另一个是每个技术细节都交还给人:"用 A 库还是 B 库?""加不加这个参数?"这是让没有上下文的人替 AI 做技术判断,低效又容易错。可逆的技术选择,AI 调研完直接给推荐,这是它的本分。

高质量的协作,不是 AI 一味服从,也不是人全程微管理。

六、别信"已完成"

最后一条,也是最短的一条:别信"已完成"。

AI 说"做完了",这句话本身不构成任何信息。我们要求每次交付必须附带证据:实际跑了哪些命令,结果是什么,哪些检查通过,哪些失败,哪些没验证,还剩什么风险。失败项和未验证项必须如实报告,不许含糊带过。

验证也有章法。小步修改,每完成一个有效增量,先跑最近的、成本最低的检查:改了一个模块,先跑这个模块的测试。全部完成后再跑完整回归和实际运行验证。模块测试和集成测试都要留着,前者证明零件是好的,后者证明装在一起能转。

别信已完成,要看验证证据

这套要求有个意外收获。"如实报告失败"成了规范之后,AI 的交付质量反而明显提升。它知道含糊过不了关,就会在交付前自己把验证做扎实。

写在最后

回头看这大半年,最大的体会是:AI 把写代码的成本降到接近零,其他环节的价值全被相对放大了。想清楚方向、审查计划、守住架构边界、明确分工、严格验证,这些过去被开发成本"顺带保护"的东西,现在得靠纪律维持。

如果你的团队也在用 AI 开发,可以从三件最小的事开始:

  1. 下个功能动手前,花二十分钟把"目标用户、成功标准、不做什么"写下来,和 AI 对齐。

  2. AI 给的第一份实施方案,无论多完整,先当讨论稿,逐条拷问之后再授权。

  3. 从今天开始,不接受任何没有验证证据的"已完成"。

工具会继续进化,模型会越来越强,但这套协作的底层逻辑,先想清楚,再做扎实,大概不会过时。

因为真正稀缺的从来不是产出代码的能力,而是对结果负责的能力。

你们团队用 AI 协作开发时,踩过最深的坑是什么?留言区聊聊。如果身边有正在被 AI"提速"折磨的同事,可以把这篇转给他。

分享

一起来搞事情

关注我们的社交媒体,加入社群获取最新动态

微信交流群

扫码加入微信群

微信二维码