提笔忘字

软件工程三次范式跃迁:瀑布流 → 敏捷 + DevOps → 人 + 数字员工

这一篇想把镜头拉远一点,问一个更大的问题——

整个软件工程 50 多年的历史上,有过几次真正意义上的范式跃迁?我们现在在哪?

把答案提前说:过去 50 年发生过两次,第三次正在发生

而且这三次之间有一条非常清晰的红线:软件工程的"硬核"从来没变,变的只是围绕这个硬核的执行层。理解这条红线,比理解任何具体的工具更重要。


软件工程 1.0:瀑布流(1968 — ~2001)

1968 年 NATO 软件工程会议的核心焦虑是——软件项目为什么总是延期、超预算、质量失控?

当时的答案是"缺少工程纪律"。于是瀑布模型诞生了,把软件开发类比为建筑施工:

需求分析 → 系统设计 → 详细设计 → 编码实现 → 测试验证 → 运维交付
   ↓          ↓          ↓          ↓          ↓          ↓
需求文档 → 概要设计 → 详细设计 → 源代码 → 测试报告 → 上线

1.0 的核心假设

1.0 做对了什么?

它建立了"软件开发是工程活动而非艺术创作"的行业共识,引入了阶段评审、文档规范、测试体系,奠定了整个行业的底座。

1.0 的天花板在哪里?

瀑布流的本质困境是:它假设软件开发是确定性问题,但软件开发本质上是探索性活动。


软件工程 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 做对了什么?

2.0 的天花板在哪里?

敏捷 + DevOps 优化了人与人之间的协作效率,但有一个前提从未被触碰——代码还是人写的

2.0 把"人写代码"这件事的效率和协作优化到了接近极限——但人本身的产出速度,成了新的瓶颈。

一个问题:一个 Senior 工程师一天能写多少行高质量代码?答案在过去 20 年几乎没变。敏捷让他不做无用功了,DevOps 让他的代码秒级上线了,但他写代码本身的速度——没变。


软件工程 3.0:人 + 数字员工协作交付(2024 — )

2024 年开始,大语言模型 + Agent 框架带来了第三次跃迁。这次改变的不是"需求怎么管理"或"怎么更快上线",而是一个更根本的问题——

代码不再只由人来写了。

3.0 的核心假设:人定义意图和约束,数字员工(Agent)交付实现。

把三代放在同一张表里对比:

1.0 瀑布流2.0 敏捷 + DevOps3.0 人 + 数字员工
时代1968 – ~20012001 – ~20242024 –
核心假设需求可预定义,按计划执行拥抱变化,迭代浮现人定义意图,Agent 交付实现
代码由谁写人(100%)人(100%),工具辅助人 + Agent 协同
反馈周期月 → 年天 → 周分钟 → 小时
质量保障阶段末测试CI/CD + 自动化测试自动化门禁 + 置信度评分 + 人审查
架构治理架构师画图,评审会口述轻量文档 + ADRArchitecture-as-Code,Agent 可读
组织形态职能部门(50–100 人)跨职能小团队(5–9 人)1–3 人 + 数字员工编制
瓶颈需求变更和返工人的编码速度人的判断力、品味和架构能力
核心问题怎么有纪律地开发怎么快速响应变化怎么让人的判断力放大 10 倍

这不是渐进式的改良。1.0 → 2.0 改变了"人和人怎么协作",3.0 改变了"人和谁协作"。


一个必须先锚定的第一性原理

在讨论 3.0 具体怎么落地之前,有一条被反复忽略的底层原理必须先讲清楚:

业务复杂度不会因为 AI 而消失。

合理的解决方案不会发生根本性改变。 微服务该拆的还是得拆,领域边界该划的还是得划,分布式事务该处理的还是得处理。DDD 的战略设计、CQRS 的读写分离、Event Sourcing 的溯源机制——这些不是"人的效率低下的产物",而是业务复杂度本身的映射

改变的是实现方式,而非实现目标。

以领域划分为例:子域边界在哪里、限界上下文怎么切、哪些是核心域哪些是支撑域——这些决策仍然由人来做。但拿到决策之后,每个子域内部的编码实现、接口对接、测试覆盖——这些可以由数字员工来完成

理解了这一点,你会发现 1.0 → 2.0 → 3.0 背后有一条非常清晰的红线

软件工程的"硬核"(分析复杂度、设计合理架构、做正确决策)从未改变;改变的是围绕这个硬核的执行层——从人手动执行,到人敏捷迭代,到人 + 数字员工并行交付。


每一次跃迁,“人的角色"都被重新定义

三次跃迁里,人做的事情都在变"少"但变"贵”:

跃迁人的角色
1.0按文档执行的工人——需求分析师告诉你做什么,你照着写
2.0自组织的手艺人——在小团队里自己决定怎么做,对交付负责
3.0数字员工的管理者和品质守护者——定义意图、把控方向、审查质量、做 Agent 做不了的决策

但你需要的判断力、架构思维和品味,比以往任何时候都更重要。


把 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)。但大多数团队的架构知识:

这些对 Agent 来说等于不存在。OpenAI Codex 团队有一句话总结得特别好——

看不见的知识等于不存在。

把隐性知识搬进仓库:一个小插曲

要让 3.0 真的跑起来,团队得做一件特别朴素但很少人做的事——把"只在某人脑子里"的知识系统化

一份被验证有效的落地思路:

  1. 给项目加一个 _index.md + 每个模块一句话摘要(L0 摘要)——让 Agent 用最低成本扫清项目全貌
  2. 把"踩过的坑"单独立一个 pitfalls/ 目录——这是团队最稀缺、最难再生的知识,一个 pitfall 条目的 ROI 远高于一篇架构文档
  3. 给每条知识打 maturity 标签(draft / verified / proven)——手动维护一下,你会发现真正 proven 的知识没那么多,这个清醒的数字本身就是价值
  4. 引入"自动衰减"规则——在 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 年,一天都没有贬值过

#Software-Engineering #Ai #Agent