作为软件开发团队,我们似乎刚刚适应敏捷的节奏,DevOps的文化还没完全落地,DDD的复杂概念仍在消化,如今,AI 编程又带着SDD扑面而来。面对接踵而至的新名词,疲惫之余,我们很容易陷入一种误解:这不过是又一轮概念炒作,换汤不换药。
但事实远比这深刻。
回望软件开发的演进史,每一次“新名词”的背后,都是一次范式的根本性迁移。
瀑布模型让我们学会了计划与控制;敏捷宣言将“响应变化”写入了基因;DevOps打破了开发与运维的壁垒;DDD则教会我们以业务为核心构建复杂领域。它们不仅仅是方法论的工具箱更新,更是我们看待软件、组织协作、交付价值的方式发生的深层变革。
今天,当AI能够理解需求、生成代码、甚至自主完成复杂任务时,我们再次站在了范式转换的门槛上。
SDD(规约驱动开发)并非在旧地图上标注新地名,它要求我们重新思考:在 AI 成为编码协作者的今天,人类的核心职责是什么?是“写代码”,还是“定义正确的事”?
打开华为codearts编程,默认会让选择编程模式:Vibe-Coding,Spec-Driven。

关于这两种模式的基础概念,网上解释的很多。从使用层面简单说:
适合用Vibe-Coding的场景:
之前没接触过编程,但能把要做什么目标的逻辑描述的清楚;
有过编程经验,但对系统架构、代码规范、以及后续部署、安全性不需要更多考虑,只是想快速的做个demo或者mvp验证。
适合用Spec-Driven场景的:
需要做一个可交付的商业化系统,是要投产使用的系统。
需要多个开发角色协同,之前我们强调不能一个人单打独斗,需要团队协作完成一个工程或项目。现在团队引入AI,也要和AI协同。
需要按团队AI开发标准。
华为码道Agent Space(CodeArts Agent Space)是华为云码道(CodeArts)代码智能体面向多Agent协同、端云一体场景推出的新一代以Agent为中心的交互体验模式。码道Agent Space用户界面如下:

背后的逻辑是:SDD,Spec-Driven Development,这种设计模式的核心理念是:先达成共识,再写代码。Vibe Coding就像即兴作画,想到什么画什么,边画边改,适合捕捉灵感。SDD 就像建筑,先画好图纸,列出施工步骤,再按图建造,适合盖摩天大楼。二者的区别可以概括为:
| Vibe Coding(即兴编码) | Spec-Driven Development(规约驱动开发) | |
|---|---|---|
| 起点 | ||
| 第一步 | ||
| 第二步 | ||
| 第三步 | ||
| 第四步 | ||
| 核心特征 |
华为码道的企业级规范驱动开发标准流程图如下:

如果想了解,也有一个开源项目:OpenSpec,其目录结构如下:
openspec/ # 项目规约根目录├── specs/ # 【稳定层】当前全量规范(唯一事实来源)│ └── <capability>/ # 按能力/模块划分(如 auth, payment)│ └── spec.md # 该能力的完整规约文档│├── changes/ # 【变动层】所有进行中的变更提案│ └── <change-id>/ # 变更唯一标识(如 add-oauth2)│ ├── proposal.md # 变更提案:为什么要改?改什么?影响谁?│ ├── design.md # 技术设计:架构决策、方案选型、风险点│ ├── tasks.md # 实施清单:可验收的具体开发任务列表│ └── specs/ # 【增量层】仅存放本次变更涉及的规范差异│ └── (delta) # 相对于 specs/ 的新增/修改/删除片段│└── archive/ # 【历史层】所有已完成的变更归档└── <change-id>/ # 按时间或版本归档的历史记录
目录层次的意义是:
specs/ | |||
changes/ | 进行中的变更工作区 | ||
archive/ | 已归档的历史快照 |
几个文件的作用是:
proposal.md | |||
design.md | |||
tasks.md | |||
specs/(子目录) |
如果对应到团队开发工作安排上,不同阶段及产出如下:
proposal.md | |
design.md | |
tasks.md | |
changes/<id>/specs/ | |
archive/ | |
specs/ |
华为云码道官方给出的是4阶段递进流程:

在此基础上,华为云码道代码智能体提供了两种使用方式:标准SDD工作流:在智能体对话切换到规范开发(Spec-Driven)模式后,由智能体主导推进,按如上图所示的顺序执行,每阶段产物人工确认过后进入下一环节。
斜杠命令模式则通过下表1=所示的斜杠命令,由开发者自主调度,可灵活跳过或重复任意阶段。

这两种模式适合的场景官方文档也有解释:

在华为云码道代码智能体内置的规范驱动模式标准SDD工作流模型下编程,用户在聊天界面选择“规范开发 Spec-Driven”后,输入需求描述,智能体会按照预设工作流逐步执行:
首先生成需求规格文档spec.md,
确认无误后自动进入方案创建,生成design.md,
再生成任务清单tasks.md,最后执行编码实现。
整个流程由AI自主驱动,用户主要在关键节点进行确认(接受或拒绝生成的文档)。我们和编程工作的交互边界限定在了任务交互上,而不是临时的业务需求描述或框架想法。
以官方的示例看下提示词过程:
1.输入提示词
请开发一个用户登录接口,支持用户通过用户名和密码进行身份认证,认证成功后返回JWT令牌,登录失败时记录失败次数,连续失败5次后锁定账号15分钟。
2.查看生成的需求规格文件spec.md。提出相应的修改意见,华为云码道代码智能体会修改spec.md文件。
修改以下问题: 登录成功后除了返回token,还需要返回用户基本信息(昵称、角色) 锁定时间15分钟太长了,改为5分钟 补充接口的限流机制,每分钟同一个IP最多请求10次 响应码不要用200,统一使用业务码20000表示成功
3.再次查看修改后的spec.md,确认需求理解准确后,单击“开始实现方案创建”。
4.查看生成的design.md,确认技术方案合理后,单击“开始编码任务规划”。
5.查看生成的tasks.md,确认任务拆解完整后,单击“开始任务执行”。
6.等待任务执行完成后,获得完整的代码实现,同时沉淀了spec.md、design.md和tasks.md三份过程文档。



从即兴编码到规约驱动开发的演进,折射出 AI 辅助软件工程从“浪漫主义”走向“古典主义”的成熟过程。
前者赋予我们天马行空的创造力,后者则赋予我们脚踏实地的保障。优秀的开发团队不应偏废一方,而应学会在项目初期借力即兴编码快速探路,在进入生产阶段时果断转向规约驱动,用结构化的规约锁定意图,用自动化测试守护质量,最终在速度与可靠之间找到属于自己的最佳平衡点。
夜雨聆风