第1章: 引言 —— 软件工程范式的五十年之变
"Same person. Different era. The difference is the tooling."
人未变,时代已改。拉开差距的,全在工具。
——Garry Tan, Y Combinator 总裁 & CEO, 2026 年
卷首语用五个人的故事画出了一幅图景:Karpathy 半年没写代码,Amodei 预言 90% 代码将由 AI 完成,Garry Tan 的产出翻了 810 倍,Boris Cherny 不再写代码只审查代码,antirez 放下了亲手雕琢每一行的执念。这些信号指向同一个结论——软件工程正在经历自 1968 年这门学科诞生以来最深刻的一次范式转换。
本章建立理解这场变革所需的概念坐标。它是怎么一步步走到今天的?新旧范式之间真正的断裂在哪里?全书贯穿的那根主线——"用结构化知识驾驭非结构化 AI 能力"——是怎么来的?
1.1 软件工程简史:一个假设的五十年
1968 年 NATO 软件工程会议上,"软件危机"被正式命名——项目失败、成本超支、交付延期——催生了"软件工程"这门学科。解决方案是用工程化流程约束创造力:阶段分解、评审关口、文档驱动。
此后半个多世纪,方法论不断演化。一个核心假设从未被挑战。
瀑布模型(Winston Royce, 1970)将开发划分为需求分析、设计、实现、测试、维护的严格线性阶段。Royce 本人的论文远比后来的教条版本微妙——他实际上提倡迭代("do it twice")——但瀑布作为一种管理模式被广泛采纳。它的核心前提是:需求可以在编码之前被完整地理解。
敏捷运动(Agile Manifesto, 2001)拆掉了瀑布的刚性阶段门。"个体和互动高于流程和工具,可工作的软件高于详尽的文档。"敏捷承认了需求会变,但保留了最底层的假设——写代码的人依然是写代码的人。所有的 Scrum 站会、Sprint 计划、用户故事,都建立在一个未经审视的前提之上:软件是由人类工程师一行一行写出来的。
DevOps 打破的是开发与运维之间的墙。CI/CD、基础设施即代码、容器化——这些运动将运维带入了工程视野。但它们同样没有触及那个核心信条。DevOps 优化的是"写完之后怎么办",而不是"谁来写"。
最后这个假设——代码由人亲自编写——在 2023 年第一次动摇了。不是因为新的管理方法或流程改进,而是因为大语言模型。它能理解自然语言指令,自主探索代码库,执行完整的功能开发。它不是更聪明的自动补全。它在转移编程行为的主体。
1.2 AI Coding Agent 的四层演进
如果将 AI Agent 的能力演进放到时间轴上,可以看到四个清晰的阶段。每个阶段都在重新定义"编程"这个行为的含义——不只是效率的提升,而是人类和机器在编程活动中各自的角色发生了质变。
| 层次 | 时间 | 交互范式 | 人类角色 | AI 角色 | 代表作 |
|---|---|---|---|---|---|
| L1: 补全 | 2022- | 人写代码,AI 预测下一行 | 作者 | 自动补全 | GitHub Copilot |
| L2: 对话 | 2023- | 人问问题,AI 回答 | 学习者 | 知识库 | ChatGPT, Claude |
| L3: 任务 | 2025- | 人下指令,AI 完成功能 | 指挥者 | 实现者 | Claude Code, Cursor |
| L4: 自主流程 | 2026- | 人定义目标,AI 管理全流程 | 审查者 | 工程经理 | autoresearch, Ralph Loop |
L1 补全:GitHub Copilot 在 2022 年 6 月正式发布,程序员第一次体验到了"AI 帮你写下一行"。但它本质上是智能化的自动补全——AI 预测,人类决策。
L2 对话:ChatGPT 改变了交互范式。程序员学会了"提问"——替代了查文档、搜 Stack Overflow。但代码仍然是程序员亲手写的。AI 是搜索引擎的替代品,不是代码的作者。
L3 任务:Claude Code 于 2025 年 2 月发布,同时 Cursor、Codex CLI、OpenCode 等工具将体验升级为"AI 帮你实现一个功能"。Agent 开始具备自主理解代码库、定位修改位置、执行多文件变更的能力。人类从"写代码的人"向"分配任务的人"滑动。
L4 自主流程:进入 2026 年,Agent 不再只是执行任务,而是开始管理流程——从理解需求到设计方案、实现代码、编写测试、创建 PR,一次会话走完整条链路。这正是卷首语中 Boris Cherny 描述的工作状态:他不再写代码,只审查代码。
从 L1 到 L4,变的不是 AI 能力的量,而是编程行为中主体的位置。L1 中人类是唯一主体。L4 中 AI 变成主动参与者,人类变成监督者和质量守门人。
1.3 Vibe Coding:解放还是陷阱?
AI 让编程门槛降到了历史最低点。任何人——不管会不会写代码——都可以用一句话让 AI 生成一个能跑的应用。Andrej Karpathy 给这种现象取了一个生动的名字:Vibe Coding(氛围编程)。
这是解放,毫无疑问。但它也是一个精心包装的陷阱。
Vibe Coding 的典型模式:对 AI 说"给我做一个 todo app"→ AI 十几秒生成一整套代码 → "加一个暗黑模式"→ "加一个拖拽排序"。你甚至不需要知道 useState 是什么。你只要"vibe"就可以了。
陷阱在于:它拉高下限的同时,模糊了上限的存在。 当你不需要理解自己的代码如何工作,当你的应用在"看起来能运行"和"真正能在生产环境运行"之间存在巨大的鸿沟——Vibe Coding 的产物往往是一团不可测试、不可重构、不可理解的代码浆糊。
这就是 Karpathy 为什么特意区分了两个概念:Vibe Coding 与 Agentic Engineering(智能体工程)。前者的关键词是"放手"——把需求丢给 AI,接受它吐出的一切。后者的关键词是"掌控"——把 AI 视为极其强大但带有随机性和盲区的工具,通过结构化方法引导、约束、验证它的产出。
作为卷首语中详细展开过的论证,这里不再重复,但需要强调它的推论:AI 不会救你,它会放大你。 你给它清晰的架构,它还你整洁的代码;你给它模糊的意图,它还你一团浆糊。一个人用 AI 后的产出上限,是由他在没有 AI 时的工程素养决定的。Redis 创造者 antirez 用一周时间完成 DS4 项目——但他审查了 AI 生成的每一行代码。
这就是为什么,在 AI 让编码门槛降到历史最低点的时刻,工程化的价值反而达到了历史最高点。
1.4 核心主张:从 Prompt-Driven 到 Skill-Driven
这就引出了全书最核心的概念转折。
过去两年间,一个洞见在不同的人和实践中反复出现、逐步收敛。它不是某个人独自发明的,而是社区在实践中达成的共识:Prompt 是临时的,Skill 是持久的。
当你对 AI 说"帮我做代码审查",你能得到什么?一个审查结果。它的质量取决于你当时的表达、AI 当时的理解、对话上下文的完整度。改天再做一次,结果可能完全不同。Prompt 消失在对话历史里——不可复用、不可迭代、不可积累。
而一个 Skill——比如 /review-it——是一个结构化指令文件,定义了什么算好的审查、审查哪些维度、遇到每种问题怎么处理。它可以在不同项目、不同时间、对不同的代码重复使用。每次使用都是一次验证机会,如果出现偏差,你可以改进 Skill 本身,让下一次更好。Skill 留在你的工具链里——可复用、可迭代、可积累。
"对话一次"和"建立一个系统"之间的区别,就是一位 AI 时代的合格工程师和一位"vibe coder"之间的区别。
也正是在这个意义上,四个层次构成了一个递进:Prompt Engineering 让 AI 理解意图(一次性对话)→ Skill Engineering 让能力可复用(持久化方法论)→ Agent Orchestration 让多个 Agent 协同(编排调度)→ Harness Engineering 让整个系统安全可控(运行环境与权限)。每一层建立在前一层基础上。Skill Engineering 处于"从临时到持久"的转折点上——它不是让 AI 变得更聪明,而是让使用 AI 的人变得更体系化。
这引出了全书的核心理念:
在 AI 时代,软件工程的核心竞争力不再是"你能写多快的代码",而是"你能不能构建一套让 AI 高质量产出的方法和系统。"
这套系统应具备五个特征:可复用、可验证、可迭代、可组合、不依赖特定模型。
围绕这些原则,一个全新的方法论生态已经生长出来。以下方法论将在本书第一部分逐一展开:
| 方法论 | 核心思想 | 关键贡献者 | 详章 |
|---|---|---|---|
| Matt Skills 系统 | 将工程经验沉淀为可复用的能力单元 | Matt Pocock | 第2章 |
| Spec-Driven Development | 规格文档作为人类与 AI 之间的"合约" | OpenSpec / GitHub Spec-Kit | 第3章 |
| Ralph Loop | AI 在循环中自我改进,直到满足验收标准 | Frank Bria | 第4章 |
| gstack | 23 个专家角色构建虚拟工程团队 | Garry Tan | 第5章 |
| superpowers | 159K+ Stars 的 AI 编程 Skills 方法论库 | obra / jnMetaCode | 第6章 |
| autoresearch | 多 Agent 轮转交叉审核,端到端全自动闭环 | smallnest | 第7章 |
| Goal Workflow | 目标驱动的四步研发闭环 | smallnest | 第8章 |
这些方法论看似各不相同,但它们共享同一个底层逻辑——也是贯穿全书的那根线:用结构化知识驾驭非结构化 AI 能力。
1.5 本章小结
我们正站在软件工程史上一个罕见的转折点上。上一次这种量级的改变,要追溯到 1968 年——当这门学科本身被命名时。
这次转折有三个核心特征:
第一,编程行为的主体正在转移。五十年来的第一次,不是人类在敲键盘。人类从"作者"变成了"指挥者",再变成"审查者"。
第二,速度和质量之间出现了新的张力。AI 让写代码极快,但验证代码的速度远远跟不上。Vibe Coding 是解放,也是陷阱。工程化不是减速带,而是让你高速行驶时不翻车的底盘。
第三,方法论的价值超过了工具本身。工具每天都在变。但"用结构化知识驾驭非结构化 AI 能力"的原则不会变。Skills 系统、Spec-Driven Development、闭环工作流——这些不是某个具体工具的说明书,而是在任何 AI 工具上都能成立的工程原则。
从下一章开始,我们将逐一展开这些方法论。但在进入细节之前,请记住本章最核心的那个判断:
AI 不会救你,它会放大你。在 AI 时代,你的工程素养不是变得不重要了,而是第一次变得如此重要。
留言板
欢迎在此分享你的想法!评论通过 GitHub Issues 存储,需要 GitHub 账号登录。