从带团队到管 AI Coding,方法其实是相通的

AI Coding 这件事,我最早听到一个说法:像带着一个实习生干活。

这个比喻当时挺贴切。你得把需求拆细,边界讲清楚,时不时纠偏,还要预防它一本正经地写错东西。后来模型能力明显上来了,这个比喻就开始不准了。今天你如果还把 AI 当成一个只会补全样板代码的低阶助手,动作大概率会变形。它在很多局部任务上,已经更像一个执行力很强、知识面很宽、但稳定性很一般的高级工程师。它写得快,覆盖面大,愿意 24 小时连轴转,最大的问题不在勤奋,而在可信度。

这件事一旦放进团队环境里,问题马上就变了。不再是「能不能写代码」,而是「谁对结果负责」。

现在很多 AI Coding 用得多的团队可能已经出现了一个问题:开发人员自己都说不清 AI 到底写了什么,项目能跑,测试勉强过,线上暂时没炸,但整个系统已经开始黑盒化。代码库里到处是风格不一致的实现、边界模糊的封装、说不明白的依赖链、没人敢删的工具函数。大家嘴上说的是 vibe coding,实际落地很快就变成了 wish coding:我希望它是对的,我希望这段逻辑没坑,我希望下次出事故时还能找到人解释。

如果你带过技术团队,可能也遇到过类似局面。

你如果深入一线,参与每个细节,能获得越强控制感,但你会被细节拖死。今天盯需求,明天盯设计,后天盯代码,发布前再把链路捋一遍,管理者最后会退化成一个高配版救火队长。你如果完全不深入,只盯结果和报表,也会出事。周报很好看,效率数字很漂亮,线上指标暂时平稳,但你心里知道,很多东西已经不在掌控中。

管理上我们一般讲抓大放小,不盯每一行代码,不替工程师做执行层决策,但把几个关键控制点抓牢。需求评审、架构约束、关键实现的检查、上线前的验收,这几个点抓住了,系统就大概率还在掌控中;抓不住,团队再忙也只是热闹。把这个思路放到 AI Coding 上,基本同样成立。

当 AI 已经深度进入开发流程以后,技术负责人应该怎么管,工程师应该怎么用,团队应该在哪些地方建立制度,哪些地方故意放手,哪些地方必须强控。

角色变化

先说角色

哲学三问中,你是谁是第一个问题。

先把角色认知摆正。

AI 不是 IDE 里的自动补全增强版。它也不是一个真正意义上的「同事」。它更像一个可并行调用的高能力执行单元,特点比较明显:局部推理强,整体一致性弱;生成速度快,长期责任感为零;知道很多模式,理解你的真实业务上下文却高度依赖你喂给它的材料。但他的上下文窗口有限,当内容太多,注意力不集中时,它就开始一本正经的胡说八道。

这意味着,我们不能用管理普通工程师的方式去管理 AI,也不能用使用工具的方式去使用 AI。

管理普通工程师时,我们可以默认一些东西。比如他知道哪些代码是线上关键路径,知道哪些依赖最好别碰,知道改了认证模块要补审计日志,知道某个老接口看着丑但背后绑着三个大客户。AI 不知道。你不告诉它,它就会按通用最优解去写,而最优解在具体业务里是对是错只有老天知道。

把 AI 当工具也不对。工具不会自作主张重构半个模块,不会顺手引入一个新依赖,不会把看似重复的逻辑「优化」成抽象层级过高的通用组件。AI 会。它的危险恰恰来自这里:它不是纯被动的。

所以我给团队定了一个简单的原则:AI 可以承担实现工作,但不能天然拥有设计权和上线权。

这句话展开,有三层意思。

第一层,AI 可以生成候选实现。写接口、补测试、改脚本、整理配置、迁移重复逻辑、补文档,这些都可以大胆用。 第二层,AI 不应该单独决定系统边界。模块职责怎么划,异常怎么传播,事务在哪一层收口,缓存一致性怎么保证,这些属于设计,不该默认交给模型。 第三层,AI 绝对不能越过验证链路直接进入生产。任何由 AI 生成的内容,只要影响线上行为,就必须进入和人工代码同等级甚至更严格的检查。

很多团队嘴上也这么说,执行时却变成另一个样子:能跑就合,回归靠运气,出事了再追。原因很简单,AI 把产能抬得太高了,组织会本能地放松审查强度。如果还沿用原来的评审和验收动作,表面看起来流程没变,实际上单位时间内流进仓库的风险已经上了一个量级。

黑盒失控

现在最危险的一类项目,不是代码质量最差的,而是没人说得清。

你问某个接口为什么这么设计,负责人会说「这是 AI 当时改的」。

你问这个重试机制为什么是 5 次,没人知道。

你问为什么这里多了一层 DTO 转换,回答是「改着改着就这样了」。 你再追一下链路里的幂等保证在哪一层,大家开始翻代码。

这种状态非常像管理失控的团队。每个人都在交付结果,但没人真正掌握系统。

AI 容易把项目推到这个方向,原因有三个。

上下文漂移

模型没有持续稳定的项目记忆。今天你给了它一份架构说明,它能按这个思路写;明天上下文窗口换了,它可能又按另一套默认范式重写。开发者如果没有持续灌输项目约束,AI 的输出就会在不同 session、不同文件、不同任务之间漂移。时间一长,代码库会出现多个世界观并存的情况。

最典型的表现是:

  • 相同问题在不同模块有不同解法
  • 命名风格不统一
  • 异常处理策略前后矛盾
  • 同一种校验逻辑散落在多层
  • 一些抽象提得过高,另一些地方又完全硬编码

这些问题单看都不致命,叠在一起就会把维护成本抬上去。

幻觉落地

团队管理里,人会掩饰不知道;AI 会直接生成一个看起来很像知道的答案。最麻烦的是,很多错误不是语法错误,也不是单测能轻易打出来的错误,而是业务语义错误、边界条件错误、依赖认知错误。

比如它知道常见认证流程,于是给你补了一套标准 JWT 校验;但你的系统里真正生效的是网关下发的内部签名头。 它知道数据库迁移常规做法,于是生成一套看似完整的 DDL;但你们线上有历史脏数据,唯一索引根本建不上。 它知道消息消费要做重试和死信;但你们这个场景一旦重试就会造成外部扣费重复。

这些都不是「代码水平不够」,而是上下文不够。

责任悬空

只要团队里开始频繁出现一句话------「这是 AI 写的」------责任链就已经断了。

工程系统最怕这种模糊状态。一个改动进入主干,必须有人能够解释设计意图、风险边界、验证方式、回滚方案。AI 不负责解释,真正危险的是人也不再解释。代码作者默认自己只是搬运者,评审人默认差不多就行,负责人默认测试会兜底。最后所有人都参与了生成,没有人承担了理解。

这个局面如果不扭转,团队会很快进入一个假高效阶段:提交很多,迭代很快,事故也越来越玄学。

管理映射

技术团队管理里,有两种极端。

一种是事无巨细全盯。这样的负责人短期看起来最有掌控力,长期一定被拖垮。团队一旦习惯了你兜底,工程师就会下意识少做判断,组织会变得越来越依赖少数核心人。 另一种是纯结果导向,过程完全放掉。报表上看很轻松,实质是把风险往未来递延。到真正出事故的时候,代价通常是成倍的。

AI Coding 也是同一个道理。

如果你要求每一段 AI 生成代码都由资深工程师逐行重写,等于没用上 AI。 如果你完全相信模型,把它产出的内容直接并入主干,风险一定会爆。

真正可落地的方案,是把控制力集中在关键节点,而不是均匀撒在所有细节上。

我将这里的分为四个控制面:需求面、架构面、实现面、发布面。

需求面

需求面本质上是控制 AI Coding 的输入,或者说控制给的上下文。

先控制输入,而不是等输出出问题再返工。

AI 很擅长在模糊需求下生成「合理但不对」的实现。需求如果只有一句「做个导出功能」,模型会自己脑补分页、异步任务、文件格式、权限校验、字段范围,甚至会热心地加一堆你没要的优化。它写出来的不一定烂,甚至可能比初级工程师写得更工整,但偏题的概率非常高。

团队里只要打算让 AI 参与实现,需求定义就得更工程化。我一般要求至少明确这些内容:

  • 目标行为是什么
  • 非目标是什么
  • 输入输出边界
  • 权限和安全要求
  • 性能指标
  • 失败场景处理
  • 与现有模块的关系
  • 哪些部分不能改

这不是为了给模型看起来更专业,是为了减少返工。AI 生成速度越快,错误方向上的产能越高。模糊需求在人工时代可能只是多讨论两轮,在 AI 时代会直接变成一堆质量不错的错误代码。

架构面

这一层是最值得管的。

负责人一定要盯住结构性决策。因为实现错了,通常改一个函数、补一个测试还能收回来;结构错了,越往后越难拆。

什么属于结构性决策?大概如下:

  • 模块边界怎么划
  • 数据流向怎么走
  • 状态在哪一层维护
  • 事务和幂等在哪一层兜
  • 缓存和数据库的一致性策略
  • 对外依赖如何隔离
  • 领域对象和接口对象是否混用
  • 错误码、日志、监控埋点是否统一

这些东西如果让 AI 自由发挥,它会默认选择自己最熟悉的常见模式。问题在于,常见模式不等于适合你的系统。一个 30 人团队维护的核心交易系统,和一个 3 人团队维护的后台运营平台,架构取舍完全不同。AI 不会天然理解这点。

所以我更建议把架构约束显式化,直接写成可以复用的项目规则。比如:

  • Controller 不直接访问 repository
  • 跨服务调用必须经过 adapter 层
  • 领域异常不向外透传基础设施细节
  • 任何写操作必须显式声明幂等策略
  • 核心链路禁止新增同步远程调用
  • 序列化协议和字段命名遵循统一规范

这类规则一旦沉淀下来,AI 的可用性会明显提升。因为它最怕的是隐性规范。人能靠经验感知氛围,模型不行。你不写出来,它就当不存在。

实现面

实现层不适合全面强控,但也不能放养。

把实现分成三类。

第一类,低风险、可回归、易验证的任务,尽量放给 AI。 比如脚本生成、接口样板、文档补全、测试补齐、静态检查修复、重复性重构、SQL 改写、配置迁移。这些任务共同特点是边界清楚、验证便宜、出错后影响可控。

第二类,中风险任务,要求 AI 先给方案,再由工程师选型落地。 比如新增一个中等复杂度业务流程、改动已有模块的职责边界、引入缓存、调整异步化方式。这里 AI 可以参与设计草案,但不能直接拍板。工程师需要明确保留什么、删掉什么、为什么。

第三类,高风险任务,限制 AI 的参与深度。 比如认证鉴权、计费结算、风控规则、事务一致性、数据库迁移、跨服务协议升级、核心性能优化、线上故障止血。我的建议是,AI 可以辅助分析、生成候选 patch、补测试、整理日志,但主实现和最终判断必须由资深工程师掌控。

这个暂时是有效的。因为它把「能不能用 AI」这个抽象争论,变成了「在哪些任务上怎么用」。团队一旦形成共识,执行成本会低很多。

发布面

发布前的检查是最后一道硬门槛。

我其实不太在乎代码是不是 AI 写的,我在乎的是它上线前有没有经过足够严肃的验证。很多团队的问题不在生成,而在合入。只要生成速度暴涨,原来还能勉强工作的验收机制就会失效。

发布面我建议至少卡这几件事:

  • 关键链路是否有自动化测试覆盖
  • 变更是否影响数据库 schema、缓存键、消息协议
  • 是否新增外部依赖或远程调用
  • 是否有灰度和回滚方案
  • 监控和告警是否补齐
  • 安全、权限、审计是否受影响
  • 变更说明能否被非作者读懂

一个改动如果作者自己都说不清,你就别指望值班同学半夜扛住。

控制颗粒

管理 AI Coding,最难的是控制颗粒度。抓太细,团队效率掉;抓太粗,项目失控。

其核心在于「看哪些信息」。

很多负责人一听说要控制 AI,就开始要求:

  • 所有 AI 生成代码必须标记
  • 所有 AI 生成 PR 必须由 TL 审
  • 每天统计 AI 提交占比
  • 每周复盘 AI 产出质量

这些动作不能说完全没用,但经常抓错重点。标记来源本身并不会提高代码质量,TL 审所有 PR 很快就会过载,提交占比看多了只会诱导团队冲数字,周报复盘往往流于形式。

可以尝试看以下的四种变化:

看变化范围

不要先看代码是谁写的,先看它改到了哪里。

如果一个改动只是补几个测试、修一个前端样式、调整一段文案,来源没那么重要。 如果它同时改了接口定义、数据库字段、缓存逻辑和消息消费,这就必须提高警惕。AI 特别擅长顺着链路一路改下去,改着改着影响面就失控了。

所以我很看重 diff 的范围和扩散路径。改动越跨层、越跨模块、越涉及状态一致性,检查级别越高。

看约束是否被突破

很多事故不是代码写错,而是越界了。

比如本来规定 service 层不能依赖 controller DTO,结果 AI 图省事直接拿来用了。 本来约定核心链路禁用同步跨服务调用,它为了实现方便直接加了。 本来规定所有删除都是软删,它看到数据库有删除接口就直接调了。

所以评审时我更关注它有没有破坏系统约束,而不是代码风格漂不漂亮。风格问题会难受,越界问题会出事故。

看解释能力

一个工程师把 AI 生成的 PR 提上来,我经常会问三个问题:

  • 你为什么这么改
  • 还有哪些方案
  • 最担心的风险点是什么

如果回答停留在「AI 建议这样写」「我跑过了没问题」,那这个改动就不该进主干。这里不是为难人,而是在验证作者是否真正理解了结果。团队只要默认可以在不理解的情况下提交代码,系统质量一定会持续下滑。

看验证成本

有些改动本身没那么复杂,但验证很贵,这种也要慎重。

比如一个缓存键规则调整,看起来只改了几行,实际上可能要覆盖冷热数据、回源行为、失效策略、兼容旧键的读取逻辑。 再比如一个 SQL 优化,看起来执行计划好了很多,但线上数据分布和测试环境未必一样。

AI 会让这类改动生成得非常轻松,甚至给出完整理由。真正难的其实是验证。谁承担验证成本,谁才真正拥有决策权。

上下文工程

如果说传统开发最重要的是代码组织,那 AI Coding 时代,另一个同样重要的能力是上下文工程。

很多人把这个词理理解为写 prompt。远不止。真正有效的上下文工程,是把项目里的隐性知识、约束、范式、决策历史,整理成 AI 可以稳定消费的输入材料。

因为 AI 的主要问题,不是不会写,而是不知道你们为什么这么写。

我见过一些团队让模型直接读整个仓库,效果也有,但远没有把关键上下文结构化后喂进去稳定。仓库太大,噪音太多,历史包袱太重,模型容易抓到表层模式,抓不到真正的组织原则。

我一般建议把上下文分四层维护。

第一层:项目事实

这层是客观信息,尽量稳定。

包括:

  • 技术栈和版本
  • 模块结构
  • 编码规范
  • 常用命令
  • 测试方式
  • 发布流程
  • 环境差异
  • 外部依赖清单

这层材料的作用,是避免 AI 生成一些和项目现实不兼容的内容。比如用错框架特性、调用不存在的脚本、按新版本语法写旧版本代码、误判构建方式。

第二层:架构约束

这层最关键。

包括:

  • 分层规则
  • 模块边界
  • 数据一致性策略
  • 错误处理规范
  • 日志和监控规范
  • 安全要求
  • 性能红线
  • 禁止事项

这层材料决定了 AI 是在你们的系统里工作,还是在它自己熟悉的抽象世界里工作。

第三层:业务语义

很多错误都死在这里。

比如订单状态机、权限模型、计费规则、对账口径、用户分层、活动优先级、历史兼容逻辑。 AI 对通用业务名词有概念,但你们自己的业务语义常常和行业通用定义并不一致。一个「已完成」状态,在不同系统里可能意味着完全不同的后置动作。你不把这些定义清楚,模型一定会按最常见的解释去补全。

第四层:决策历史

这层经常被忽略,但对减少反复重构很有用。

包括:

  • 为什么当初不用某种框架能力
  • 为什么这个模块暂时保留重复逻辑
  • 为什么某个接口设计看起来别扭
  • 哪些历史兼容不能删
  • 哪些性能坑已经踩过

AI 最大的问题之一,就是它看见「不优雅」就想优化。很多所谓的不优雅,其实是业务现实和历史包袱共同作用下的局部最优解。没有决策历史,模型会反复建议你走回已经被证明不行的路。

这四层东西,整理起来当然费劲。但只要团队已经重度使用 AI,这件事就是值得做的基础设施。它带来的收益不是「提示词写得更漂亮」,而是返工减少、风格稳定、评审成本下降、事故率可控。

人的变化

很多人讨论 AI Coding,喜欢把焦点放在模型能力。我更关心人的变化,因为组织问题最后都落在人身上。

AI 进来后,团队里的能力结构会发生变化,而且变化挺残酷。

初中级工程师

AI Coding 会让很多传统的练手机会会减少。

以前新人会从写 CRUD、补测试、改脚本、做小重构开始,在这些任务里慢慢建立对系统的感知。现在这些活 AI 一大半都能做,而且速度更快。结果是,新人如果只是把 AI 当外挂,自己很容易失去建立基本功的过程。

这对个人发展是危险的。因为你以为自己在高效交付,实际只是高效搬运。真到需要独立判断的时候,很容易露底。

我对初中级工程师的要求反而更高了: 你可以用 AI 写,但你必须能解释。 你可以不会第一时间手写所有实现,但你必须看得出哪里不对。 你可以借助模型生成方案,但你要知道为什么选这个,不选那个。

说白了,AI 让「动手能力」的门槛下降了,反而把「判断能力」的门槛抬高了。

高级工程师

高级工程师的价值不会下降,反而会被重新定义。

过去很多高级工程师的时间花在亲自解决复杂实现问题上。以后这部分工作里,会有更多内容交给 AI 先铺底稿。真正稀缺的能力会变成:

  • 建模能力
  • 边界识别能力
  • 风险预判能力
  • 架构约束表达能力
  • 评审和验收能力
  • 故障分析能力

一个高级工程师如果还停留在「我写代码比别人快」这个层面,优势会越来越窄。能把 AI 纳入稳定工程流程的人,价值会高很多。

技术负责人

技术负责人要调整的地方最多。

以前很多 TL 的权威来自个人技术深度和关键路径救火能力。以后这些能力仍然重要,但不够了。你还得会设计一套让普通工程师借助 AI 也能稳定产出的机制。这里的核心不是「你自己会不会用最强 prompt」,而是你能不能把团队知识沉淀成规则、把高风险任务识别出来、把评审和发布机制改造到位。

简单说,TL 以后更像一个工程系统设计者,而不只是资深开发。

成本结构

很多公司上 AI Coding,第一个看到的是效率收益,第二个才会看到成本迁移。

账不能只算生成阶段节省了多少人天,还要看这些成本转移到了哪里。

  • 前置成本上升:需求要写得更清楚,架构规则要沉淀,上下文要维护,模板要整理,评审口径要统一。这些都是前置投入。团队如果没有这个耐心,AI 只能在局部提效,很难规模化稳定落地。
  • 验证成本上升:生成越快,验证越贵。特别是中高风险改动,AI 会让你短时间得到更多候选实现,但筛选、测试、压测、灰度、回滚预案这些事情并不会同步变便宜。有些场景下,验证成本甚至会超过实现成本。
  • 知识债积累更快:AI 会加快代码变化速度,也会加快知识过期速度。文档、设计、接口约定、运维手册如果跟不上,系统会很快进入「代码在变,认知没变」的状态。到这一步,组织沟通成本会上升得很明显。
  • 人才分化加剧:会用 AI 且保持工程判断的人,产能会非常高。只会依赖 AI 但缺乏判断的人,短期看似也很忙,长期会成为风险源。团队内部的能力差距会被进一步放大,管理上必须承认这一点,不能再用过去那套平均主义的培养和考核方式。

最后

AI Coding 它已经足够强,强到不能再按「辅助工具」那套粗放方式来管;它又还不够稳,远没到可以把理解和责任一起外包出去的程度。

我们可以把技术团队管理里那些早就被验证过的控制逻辑,重新映射到 AI 开发流程里:输入要清楚,架构要收口,实现要分级,发布要设门槛,责任要落到人。

你如果什么都亲自盯,会被 AI 的产能拖死。 你如果什么都不盯,项目很快就会黑盒化。 中间那条路可以试一试:只抓关键控制点,把系统保持在可解释、可验证、可回滚的状态里。

工程管理说到底不是追求一种绝对正确的方法,而是控制失误或失控的半径。AI 加进来以后,这件事变得更重要了。因为它放大的从来不只是产能,也包括混乱。谁能把这两者一起管住,谁的团队才真能吃到 AI Coding 的红利。

以上的所有思考都是基于当前个人对 AI Coding 的理解,不一定正确,请各位看官批判着看。

以上。

相关推荐
潘锦1 小时前
AI Coding 时代如何有效度量研发效能
ai编程
名不经传的养虾人2 小时前
从0到1:企业级AI项目迭代日记 Vol.36|临时方案下线,网关区分负载,用量穿透链路——这一周全是“归位”
人工智能·ai编程·ai工作流·企业ai·多agent协作
Bigger2 小时前
mini-cc 的 MCP 协议:给 AI 装个 USB-C 接口
人工智能·ai编程·claude
咖啡星人k3 小时前
MonkeyCode 实战体验:如何用 AI 开发平台提升编程效率
ai编程·开发工具·效率提升·monkeycode·在线ide
刀法如飞4 小时前
AI还不是人,AI编程也离不开人
ai编程
console.log('npc')4 小时前
AtomCode 前端开发实战教程
ai编程·deepseek·atomcode
浩风祭月5 小时前
把 Docker 镜像从 2GB 瘦身到 180MB,AI 帮我找到了那些看不见的“脂肪”
后端·ai编程
数数科技的数据干货7 小时前
ThinkingAI 正式发布数据采集 Agent,实现对话式数据接入!
ai·agent·ai编程·thinkingai·agentic engine