SDD 规范驱动开发 AI 编程简单实践后,我找到了它的使用场景

什么是 SDD 规范驱动开发?

SDD(Specification-Driven Development )规范驱动开发,看名字虽然高大上,但其实就是很多互联网公司一直在运行的工作流程,先明确需求,形成规范文档,然后开发根据文档来设计和开发,测试根据文档来写测试用例。

SDD 其强调了需求文档的重要性,所有的后继任务都需要跟需求文档对齐。

重提SDD,是因为现在的大语言模型 AI 编程,同样也出现了需求不明确,带来了结果不符合预期的问题。

规范驱动开发尝鲜工具:Kiro / Comate

如果想快速尝试一下,可以使用亚马逊推出的 AI 编程IDE Kiro 实现,他自身就带了 Spec 开发。国内的百度 Comate 也有跟进,也可看看是否可以白嫖。

安装之后,主界面区分了 Vibe 和 Spec 两种开发模式。

Comate 的 Spec Mode,目前还是 Beta 阶段。

需求澄清

使用方法很简单,切换到 Spec Mode 之后,输入需求即可。

稍等片刻,AI 就会提供一份需求文档。

它拆分需求非常详细,算是优秀的需求文档了。但是这个文档也不是纯粹的自然语言,验收标准里面有一些条件语句:WHEN、THEN、SHALL 等等,是用来强制对齐验收结果的。

详细设计与拆分任务

上文图中看到,需求文档几乎没有任何技术相关的内容。

需求澄清完成之后,确认进入下一步设计。这时候才会出现很多技术选型需要做的内容。

设计也没问题,那就来到最后一步,AI会生成详细的执行清单。

Kiro厉害的地方在于可以单独选择任意一个任务执行。

Spec Mode 与 Plan Agent 的不同

文档定义不同

上次测试了各大组件 IDE 的 Plan Agent。

这些 IDE 都有 Plan Agent,但是并没有完整的需求文档书写的过程,写出来的文档更多是设计文档和执行任务的结合体。

国产AI编程IDE的Plan模式,对比Cursor差别在哪?

Kiro里面的设计文档有很多流程图、类型定义、数据库实例等内容,真的像一个高级程序员在动手前写的详细设计文档,看了都想点个赞。

即使是上次测试文档能力最强的 CodeBuddy 生成的内容,数据库等都是寥寥几句,写的很概要,在对比之下就显得业余很多了。

任务与文档关联性

上次的测试中发现,除了 Cursor 之外,其他 IDE 的最后拆分的任务,和开发计划写好的内容关联比较弱,出现两者不一致的情况反而是常态。开发过程中,每一步都有偏差,那最后产出就很难如你期望的那样了。

但在上文图中可以看到,Kiro 的设计文档和任务列表中,都明确标记了具体关联的需求,三个文档关联性是很强的。

任务拆分合理性

Plan Agent 常常会因为上下文过长,导致中断。

相对而言,SDD 拆分任务之后,不少任务都是可以独立执行的,如果当前任务有前置任务,在前置任务执行之前,当前任务是无法执行的。用户也可以选择单次执行1个或多个任务。

所以,流程变得可控了。即使如遇到中断,对整体影响更小。

什么时候使用 SDD?

回答这个问题之前,先明确一个事情:Spec Mode无法提升大模型本身的能力。而是让在其约束下的大模型生成的内容,更符合我们的需求。比如:如果大模型本身处理后端数据库的能力不行,通过 Spec Mode 也无法获得好的数据库设计。

目前来说,对程序员而言,如果你需要详细设计,那就需要SDD。 所以,一般的小需求用 Plan Agent 或者直接生成,复杂的需求使用 Spec Mode 开发。

另外,如果仅仅是前端开发的项目,大部分时候不需要使用 SDD。

这是因为前端技术通常更侧重于交互和视觉效果,许多需求可以通过组件库或现成框架快速实现,而数据会通过后端 API 约束。唯一涉及的时候,可能就是状态管理了。

同样,在目前大公司成熟的开发团队中,也不太可能频繁用到 SDD。

这些团队往往成员之间分工明确,需求到达程序员手里是,已经不需要澄清需求了,还有很多业务也趋于稳定了,不常常需要更改数据库设计等核心内容。

但是,要提醒的是:如果 AI 编程发展顺利,很多程序员会承担一定的产品的角色。如果真的如此,SDD 工具能帮你来快速适应角色的转换,更好地产出符合需求的产品。

因此,了解 SDD 还是很有必要的。

更通用的方案

Kiro 和 Comate 这种把 Spec Mode 融入了 IDE,好是好,但是如果不用这两个 IDE ,有没有类似的方法执行 SDD?

有的,目前正在尝试 3个开源工具:

感兴趣的,可以一起研究下。

相关的测试内容,后续会继续在此号发布。欢迎关注。

相关推荐
counterxing7 小时前
Agent 跑起来之后,难的是复用、观测和评测
node.js·agent·ai编程
uccs7 小时前
大模型底层机制与Agent开发
agent·ai编程·claude
counterxing8 小时前
我把 Codex 里的 Skills 做成了一个 MCP,还支持分享
前端·agent·ai编程
夜雪闻竹8 小时前
vectra 向量索引文件损坏怎么办
ai编程·向量·vectra
ZzT8 小时前
Harness 到底指什么
openai·ai编程·claude
宅小年9 小时前
AI 创业最危险的地方:太容易做出来
openai·ai编程·claude
麦客奥德彪9 小时前
Android Skills
架构·ai编程
言萧凡_CookieBoty10 小时前
一文讲清 RAG:让 AI 读懂业务知识库的核心方法
ai编程
kyriewen10 小时前
产品经理把PRD写成“天书”,我用AI半小时重写了一遍,他当场愣住
前端·ai编程·cursor
Patrick_Wilson11 小时前
知识沉淀的四层模型:从个人笔记到企业资产,让文档真正长出复利
面试·程序员·ai编程