
这一篇想把镜头拉远一点,问一个更大的问题——
整个软件工程 50 多年的历史上,有过几次真正意义上的范式跃迁?我们现在在哪?
把答案提前说:过去 50 年发生过两次,第三次正在发生。
而且这三次之间有一条非常清晰的红线:软件工程的"硬核"从来没变,变的只是围绕这个硬核的执行层。理解这条红线,比理解任何具体的工具更重要。
软件工程 1.0:瀑布流(1968 — ~2001)
1968 年 NATO 软件工程会议的核心焦虑是——软件项目为什么总是延期、超预算、质量失控?
当时的答案是"缺少工程纪律"。于是瀑布模型诞生了,把软件开发类比为建筑施工:
需求分析 → 系统设计 → 详细设计 → 编码实现 → 测试验证 → 运维交付
↓ ↓ ↓ ↓ ↓ ↓
需求文档 → 概要设计 → 详细设计 → 源代码 → 测试报告 → 上线
1.0 的核心假设:
- 需求可以在开发前被完整定义
- 每个阶段的产出是下一阶段的输入,回头成本极高
- 人的角色是"按文档执行"
1.0 做对了什么?
它建立了"软件开发是工程活动而非艺术创作"的行业共识,引入了阶段评审、文档规范、测试体系,奠定了整个行业的底座。
1.0 的天花板在哪里?
- 假设了需求不变,但真实世界的需求永远在变
- 反馈周期太长——从需求到看见可运行软件可能隔 6–12 个月
- 文档成了目的而非手段——团队花更多时间维护文档而不是解决问题
- 人被流程困住了——每个角色都在等上游的文档,串行阻塞
瀑布流的本质困境是:它假设软件开发是确定性问题,但软件开发本质上是探索性活动。
软件工程 2.0:敏捷 + DevOps(2001 — ~2024)
2001 年,17 位开发者在犹他州雪鸟镇签署了《敏捷宣言》,核心观点一句话:
拥抱变化比遵循计划更重要。
这不是对 1.0 的修补,而是底层假设的翻转。
| 维度 | 1.0 瀑布流 | 2.0 敏捷 + DevOps |
|---|---|---|
| 对需求的假设 | 需求可以预先定义完整 | 需求在迭代中逐步浮现 |
| 反馈周期 | 月 → 年 | 天 → 周(Sprint) |
| 文档角色 | 阶段交付物,必须完整 | 够用就好,代码即文档 |
| 开发与运维 | 分离(“扔过墙”) | 融合(You build it, you run it) |
| 质量保障 | 阶段末的测试 | 持续集成 + 自动化测试 |
| 团队形态 | 职能部门(开发部 / 测试部 / 运维部) | 跨职能小团队(Scrum / Squad) |
敏捷解决了"需求会变"的问题;DevOps 解决了"代码写完到用户手里太慢"的问题。CI/CD、IaC、监控告警、蓝绿发布——这些实践让"从 commit 到生产"的时间从数周压缩到数小时甚至数分钟。
2.0 做对了什么?
- 把反馈循环从月级压缩到天级
- 打破了开发与运维的墙
- 催生了微服务、容器化、Kubernetes 等基础设施革命
- 让"小团队快速迭代"成为行业共识
2.0 的天花板在哪里?
敏捷 + DevOps 优化了人与人之间的协作效率,但有一个前提从未被触碰——代码还是人写的。
- Sprint 再短,一个功能还是需要人写几天代码
- CI/CD 再快,pipeline 里跑的还是人写的测试
- 微服务拆得再细,每个服务还是需要人来维护
- Scrum 站会再高效,本质上还是人在同步信息、拆任务、分工
2.0 把"人写代码"这件事的效率和协作优化到了接近极限——但人本身的产出速度,成了新的瓶颈。
一个问题:一个 Senior 工程师一天能写多少行高质量代码?答案在过去 20 年几乎没变。敏捷让他不做无用功了,DevOps 让他的代码秒级上线了,但他写代码本身的速度——没变。
软件工程 3.0:人 + 数字员工协作交付(2024 — )
2024 年开始,大语言模型 + Agent 框架带来了第三次跃迁。这次改变的不是"需求怎么管理"或"怎么更快上线",而是一个更根本的问题——
代码不再只由人来写了。
3.0 的核心假设:人定义意图和约束,数字员工(Agent)交付实现。
把三代放在同一张表里对比:
| 1.0 瀑布流 | 2.0 敏捷 + DevOps | 3.0 人 + 数字员工 | |
|---|---|---|---|
| 时代 | 1968 – ~2001 | 2001 – ~2024 | 2024 – |
| 核心假设 | 需求可预定义,按计划执行 | 拥抱变化,迭代浮现 | 人定义意图,Agent 交付实现 |
| 代码由谁写 | 人(100%) | 人(100%),工具辅助 | 人 + Agent 协同 |
| 反馈周期 | 月 → 年 | 天 → 周 | 分钟 → 小时 |
| 质量保障 | 阶段末测试 | CI/CD + 自动化测试 | 自动化门禁 + 置信度评分 + 人审查 |
| 架构治理 | 架构师画图,评审会口述 | 轻量文档 + ADR | Architecture-as-Code,Agent 可读 |
| 组织形态 | 职能部门(50–100 人) | 跨职能小团队(5–9 人) | 1–3 人 + 数字员工编制 |
| 瓶颈 | 需求变更和返工 | 人的编码速度 | 人的判断力、品味和架构能力 |
| 核心问题 | 怎么有纪律地开发 | 怎么快速响应变化 | 怎么让人的判断力放大 10 倍 |
这不是渐进式的改良。1.0 → 2.0 改变了"人和人怎么协作",3.0 改变了"人和谁协作"。
一个必须先锚定的第一性原理
在讨论 3.0 具体怎么落地之前,有一条被反复忽略的底层原理必须先讲清楚:
业务复杂度不会因为 AI 而消失。
- 一套电商系统的订单 - 库存 - 物流三角关系,不会因为代码是 Agent 写的就不纠结
- 一套金融清算系统的对账逻辑,不会因为实现更快就减少边界情况
- 一套营销系统的领域划分(活动、规则、结算、核销),不会因为有了 Agent 就变简单
合理的解决方案不会发生根本性改变。 微服务该拆的还是得拆,领域边界该划的还是得划,分布式事务该处理的还是得处理。DDD 的战略设计、CQRS 的读写分离、Event Sourcing 的溯源机制——这些不是"人的效率低下的产物",而是业务复杂度本身的映射。
改变的是实现方式,而非实现目标。
以领域划分为例:子域边界在哪里、限界上下文怎么切、哪些是核心域哪些是支撑域——这些决策仍然由人来做。但拿到决策之后,每个子域内部的编码实现、接口对接、测试覆盖——这些可以由数字员工来完成。
理解了这一点,你会发现 1.0 → 2.0 → 3.0 背后有一条非常清晰的红线:
软件工程的"硬核"(分析复杂度、设计合理架构、做正确决策)从未改变;改变的是围绕这个硬核的执行层——从人手动执行,到人敏捷迭代,到人 + 数字员工并行交付。
每一次跃迁,“人的角色"都被重新定义
三次跃迁里,人做的事情都在变"少"但变"贵”:
| 跃迁 | 人的角色 |
|---|---|
| 1.0 | 按文档执行的工人——需求分析师告诉你做什么,你照着写 |
| 2.0 | 自组织的手艺人——在小团队里自己决定怎么做,对交付负责 |
| 3.0 | 数字员工的管理者和品质守护者——定义意图、把控方向、审查质量、做 Agent 做不了的决策 |
- 1.0 你得写每一行代码
- 2.0 你可以复用框架和库
- 3.0 你甚至不用写大部分代码了
但你需要的判断力、架构思维和品味,比以往任何时候都更重要。
把 Agent 当"工具"还是当"数字员工"?这是 3.0 最大的认知分水岭
我们习惯把 AI Agent 叫做"工具"——更好的 IDE 插件、更聪明的自动补全。但这个心智模型正在过时。
当一个 Agent 能:
- 独立完成一个模块的编码、测试、部署
- 主动发现架构问题并报告给你
- 在你不在的时候持续监控系统健康
——它还只是"工具"吗?
Agent 正在从工具变成你的数字同事。
“数字员工"这个说法不是比喻,它意味着 4 件具体的事:
| 维度 | 工具 | 数字员工 |
|---|---|---|
| 职责边界 | 人用工具 | 人和 Agent 各负其责——L1 / L2 任务 Agent 自主完成,L3 / L4 人类主导 |
| 质量评估 | 用起来顺手就行 | 有 Review、有置信度指标、错误可追溯可改进——和人类员工一样有"绩效” |
| 成长进化 | 工具升级看厂商 | 今天的 L3 任务半年后降为 L1,人的反馈是 Agent 的学习信号 |
| 沟通协议 | 人下命令,工具执行 | Agent 主动报告困惑、拒绝不合理请求——不是命令-执行,是协商-执行 |
“平权” 不是说 Agent 和人一样,而是——Agent 被当作真正的团队成员来管理。
3.0 的真正挑战不在技术,在组织和认知
技术侧的 Agent 能力在快速提升。真正的瓶颈其实是——
1. 组织准备好了吗?
绩效体系、晋升标准、团队编制——大多数公司都还是 2.0 时代的设计。
一个具体的问题:如果一个工程师一年产出的代码 80% 是由 Agent 写、他审查合入的,他的绩效应该怎么评?
按代码行数评——他最高;按他亲自敲键盘的时长评——他可能排最低。
两个评法都不对。因为 3.0 里人做的事情根本不是"敲代码",而是"做决策 + 审质量 + 管 Agent"。但绩效体系没更新。
2. 人的心智模型转换了吗?
从"我是写代码的"到"我是管理数字员工的",这个认知跃迁比从瀑布到敏捷更难。
因为敏捷只是改变了协作方式,你还是那个写代码的人。3.0 改变的是你的主业——你不再以写代码为生,而是以判断力和架构力为生。
很多工程师会本能抗拒这件事,因为写代码是他们的身份认同。
3. 架构能被 Agent 读懂吗?
3.0 里 Agent 需要可机读的架构上下文(Architecture-as-Code)。但大多数团队的架构知识:
- 存在人脑里
- 散落在过期的 wiki 中
- 藏在某个"知道的人走了"的口头传承里
这些对 Agent 来说等于不存在。OpenAI Codex 团队有一句话总结得特别好——
看不见的知识等于不存在。
把隐性知识搬进仓库:一个小插曲
要让 3.0 真的跑起来,团队得做一件特别朴素但很少人做的事——把"只在某人脑子里"的知识系统化。
一份被验证有效的落地思路:
- 给项目加一个
_index.md+ 每个模块一句话摘要(L0 摘要)——让 Agent 用最低成本扫清项目全貌 - 把"踩过的坑"单独立一个
pitfalls/目录——这是团队最稀缺、最难再生的知识,一个 pitfall 条目的 ROI 远高于一篇架构文档 - 给每条知识打
maturity标签(draft / verified / proven)——手动维护一下,你会发现真正 proven 的知识没那么多,这个清醒的数字本身就是价值 - 引入"自动衰减"规则——在 YAML frontmatter 里加
last_used: 2026-05-01,定期发现连续 6 个月未被引用的条目,要么手动复核要么自动降级
一句话总结:模型会迭代,工作流会重构,只有知识会累积。3.0 时代团队真正的护城河不是用的什么 Agent 框架,是流过这些框架的领域知识。
3.0 的终局想象:One Person Company

把 3.0 的逻辑推到极限——当人的角色是"判断 + 架构",当执行层完全由 Agent 承担——
一个人 + 完整的数字员工编制 = 一个完整的产研团队。
这不是科幻。在工具链跟上、组织认知跟上之后,这是 3.0 的自然结论。
从 1.0 的"50–100 人职能部门"到 2.0 的"5–9 人跨职能小团队",再到 3.0 的"1–3 人 + 数字员工编制"——每次团队规模都在缩减一个数量级,因为每一代解决的都是上一代"人的效率"瓶颈。
小结:三次跃迁背后的同一条红线
把三次跃迁放在一起看:
| 改变的是什么 | 没变的是什么 | |
|---|---|---|
| 1.0 | 建立工程纪律 | 需求需要被满足、复杂度需要被管理 |
| 2.0 | 人和人怎么协作 | 软件工程的硬核决策仍由人做 |
| 3.0 | 人和谁协作(引入 Agent) | 分析复杂度、设计架构、做正确决策仍由人做 |
每一次跃迁都在把可以自动化的部分自动化掉(文档评审 / 集成部署 / 编码实现),把不能自动化的部分(判断、品味、架构、取舍)留给人。
所以 3.0 不会让工程师消失,它只会让"只会写代码"的工程师慢慢消失——因为那部分工作已经被自动化了。
真正稀缺的,永远是那条红线本身——分析复杂度的能力、设计合理架构的能力、做正确决策的能力。
这些能力从 1968 年到 2026 年,一天都没有贬值过。