软件工程的老手艺,AI Agent 来干活

软件工程的老手艺,AI Agent 来干活

一个朴素的想法

做软件工程这些年,读过不少经典书。敏捷开发、用户故事、TDD、Clean Code、领域驱动设计、Clean Architecture、持续集成……

每一本都写得好,每一条原则都对。但落地的时候,总会打折扣。

敏捷迭代?做着做着迭代变成了赶工。TDD?先写测试再写代码,理论上完美,实际上"太忙了,先写功能吧"。Clean Code?命名规范、函数简短、单一职责——review 的时候大家同意,合入的时候睁一只眼闭一只眼。

不是这些方法论不行。是人执行的时候,会偷懒、会走样、水平参差不齐

这是人的问题,不是方法的问题。

那如果,执行者不是人呢?

把软件工程几十年攒下来的方法论,整套搬到 AI Agent 身上,让 Agent 来执行。 不偷懒,不走样,每一步都老老实实按规矩来。

这就是我最近一直在想的事。

全流程:从需求到上线,一步都不跳

先把整个流程画出来,再逐步拆解。

图表

六个环节,每个环节对应一本经典书或一套成熟方法论。人做的时候经常跳步,Agent 做的时候,一步都不跳。

下面逐个拆。

① 需求定义:敏捷迭代 + User Story

对应方法论: 敏捷开发

传统做法: 一上来写 80 页需求文档,写到一半发现需求变了。

Agent 做法: 把需求拆成小迭代,每个迭代 scope 小到可以在一两天内完成。写需求的时候,用 User Story 的格式:

作为 <角色>
我想要 <功能>
以便 <价值>

Agent 天然适合干这个——你给它一个大目标,它帮你拆成小迭代,每个迭代写成 User Story,再从 Story 拆出用例和测试场景。

人做这件事容易犯的错:迭代太大,做到一半发现方向偏了;User Story 写成需求列表,丢了"为谁做、为什么做"。

Agent 的优势: 它不会嫌拆迭代麻烦。你让它拆 20 个小 Story,它就老老实实拆 20 个。每个 Story 都带角色、功能、价值,格式整齐。

② 需求文档:需求可视化

对应参考: 《软件需求》(微软出版)+《需求可视化》

传统做法: 需求文档写成一坨文字,开发和测试各看各的,理解还不一样。

Agent 做法: 用框图、状态图、流程图来表示需求。一个图能说清楚的事,不用三段文字。

Agent 可以根据 User Story 自动生成:

  • 状态图 — 系统有哪些状态,状态之间怎么跳转
  • 用例图 — 谁在什么场景下用什么功能
  • 流程图 — 数据从哪来,到哪去,中间经过什么处理

人做这件事容易犯的错:画了一堆图,但图和文档对不上。改了需求忘改图,最后图和代码各说各话。

Agent 的优势: 需求一变,图跟着变。因为图是 Agent 根据结构化需求生成的,不是人手画的——单一事实来源,永远一致。

③ 领域建模:DDD

对应书目: 《领域驱动设计》

传统做法: 开发直接建表,表结构就是领域模型。做着做着发现业务逻辑散落在各个 Service 里,改一个字段要动五个文件。

Agent 做法: 先建领域模型。实体、值对象、聚合根、领域事件——这些东西 Agent 帮你理清楚,输出成代码里的领域层。

DDD 的核心不是技术,是通用语言——开发和业务用同一套词汇。Agent 可以充当翻译:业务方说人话,Agent 帮你把人话翻译成领域模型,再把领域模型翻译成代码。

人做这件事容易犯的错:懒得画领域模型,直接写 CRUD。"反正就是增删改查嘛"——然后系统一复杂,CRUD 堆成了面条代码。

Agent 的优势: 它不会跳过领域建模这一步。你让它直接写代码,它会先问你:"这个领域的核心实体是什么?它们之间什么关系?"——它不嫌烦。

④ 架构设计:Clean Architecture

对应书目:《架构整洁之道》

传统做法: 分层架构写了 controller/service/dao 三层,业务逻辑全堆在 Service 里。测试难写,因为什么都耦合在一起。

Agent 做法: 按 Clean Architecture 的原则分层:

图表

核心原则:依赖方向永远朝内。 外层依赖内层,内层不知道外层的存在。领域层是最内层,不依赖任何框架、数据库、UI。

这样做的收益:领域逻辑可以被独立测试,换数据库不影响业务,换前端框架不影响核心逻辑。

人做这件事容易犯的错:架构图画了,但写代码的时候随手在 Service 里注入 Repository、调外部 API、写 SQL——分层成了摆设。

Agent 的优势: 你在 prompt 里规定好分层规则,Agent 会严格执行。它不会"图省事"在领域层里偷偷 import 数据库驱动。

⑤ 编码实现:TDD + Clean Code

对应书目:《代码整洁之道》+《单元测试的艺术》

传统做法: 先写代码,再补测试(或者不补)。命名随便起,函数写到 200 行。Review 的时候说"下次改",下次还是这样。

Agent 做法: 严格执行 TDD 的红绿循环。

🔴 红:先写测试,测试会失败(因为功能还没实现)
🟢 绿:写最少的代码让测试通过
♻️ 重构:改善代码质量,测试依然通过

每一步都有测试覆盖。不是"写完再补测试",是测试先行,没有测试就不写代码

再配合 Clean Code 的原则:

  • 命名有意义,变量名说清楚它是什么
  • 函数短小,一个函数只做一件事
  • 注释解释"为什么",不解释"是什么"(代码本身应该说清楚"是什么")

人做这件事容易犯的错:"先写功能,后面再补测试。"——后面永远不会来。TDD 的核心不是测试本身,是"先想清楚要什么,再动手"。人往往跳过"想"这一步。

Agent 的优势: Agent 可以严格遵循红绿循环。先写测试 → 跑一遍确认失败 → 写实现 → 跑一遍确认通过 → 重构。它不会跳过红,也不会忘记绿。每一行代码都有测试覆盖——这件事人力保证不了,Agent 可以。

⑥ 持续集成:CI/CD 交付管道

对应书目:《持续集成》

传统做法: 团队约定每次合入前跑测试。实际上有人 push 了忘记跑,有人手动跑了一半嫌慢 Ctrl+C 了。上线靠人手动操作,半夜两点坐在电脑前点按钮。

Agent 做法: 全自动化。

图表

任何一步失败,合入按钮就是灰的。没有"我本地跑过了"这种话。没有"先上线再修"这种操作。

Agent 可以管理整个 CI/CD 管道:代码合入后自动触发构建 → 跑 lint → 跑全量测试 → 安全扫描 → 部署预发布 → 自动验收 → 生产环境。每一步的输出都可以被 Agent 解析,失败就报告、修复、重跑。

人做这件事容易犯的错:CI 管道搭了,但允许"紧急情况手动绕过"。绕一次就有第二次,最后 CI 成了摆设。

Agent 的优势: Agent 不会因为"赶时间"就绕过 CI。规则定好了,就严格执行。它不需要在半夜两点坐在电脑前点按钮。

把六步串起来:Agent 驱动的开发流水线

环节 方法论 人的问题 Agent 的解法
① 需求定义 敏捷 + User Story 迭代太大,方向偏 拆小迭代,不嫌麻烦
② 需求文档 需求可视化 图和文档对不上 需求一变图跟着变
③ 领域建模 DDD 跳过建模直接写 CRUD 先建模型再写代码
④ 架构设计 Clean Architecture 分层成了摆设 严格执行依赖方向
⑤ 编码实现 TDD + Clean Code 先写代码后补测试 测试先行,代码有覆盖
⑥ 持续集成 CI/CD 紧急时手动绕过 规则定好就不绕过

六步连起来,就是一条从需求到上线的完整流水线。每一步都有方法论兜底,每一步都由 Agent 执行。

人做什么? 人做两件事:

  1. 定规则 — 决定用哪些方法论、设定什么标准
  2. 审方向 — 看看 Agent 产出的东西方向对不对

人不再做执行。人做决策,Agent 做执行。

为什么以前做不到

这些方法论不是今天才有的。敏捷 2001 年就有了,TDD 1999 年就有了,DDD 2003 年就有了。

为什么二十年过去了,大部分团队还是做不好?

不是方法论不对。是人执行方法论的成本太高

拆 20 个 User Story 要半天。画 5 张状态图要一天。写测试再写代码,慢一倍。每一步都按规矩来,项目周期翻番。

所以人妥协了。砍步骤、降标准、先上线再说。

Agent 改变了这个等式。执行成本趋近于零。 拆 Story、画图、写测试、跑 CI——Agent 几秒钟到几分钟就搞定。以前"做了太慢"的理由不存在了。

方法论还是那套方法论。只是执行者换了。

还有什么问题没解决

说清楚能做到什么,也得说清楚还差什么。

需求本身对不对? Agent 能帮你把需求拆细、可视化、写成文档。但需求本身是不是用户真正需要的?这个问题 Agent 回答不了。它需要人去理解用户、理解市场、理解业务。

创造性的架构决策。 Clean Architecture 告诉你怎么分层,但选微服务还是单体?用事件驱动还是请求响应?这些决策依赖上下文和经验。Agent 能给建议,但拍板还是得靠人。

领域知识的深度。 DDD 的核心是"懂业务"。Agent 可以帮你建模,但如果连你都不懂这个领域,Agent 建出来的模型也是空中楼阁。

所以这不是"人不用管了"。是人从执行者变成监督者和决策者。干的活变了,但人没有被替代。

写在最后

软件工程这些年攒了很多好东西。敏捷、TDD、DDD、Clean Code、Clean Architecture、CI/CD——每一样都经过了大量实践验证。

可惜人的执行总是打折扣。

AI Agent 给了一个机会:让方法论不再只是 PPT 上的口号,而是每一步都真实落地的执行。不偷懒,不走样,每行代码有测试,每个流程不跳步。

这不是什么新发明。这是用新工具,做老该做的事。


如果觉得有用,点个在看,转发给你身边做软件工程的朋友——方法论没变,执行者变了。

有什么想法,欢迎在评论区聊聊——每一个留言我都会看。

END