从 2025 年下半年开始,我陆续在真实项目里实践 SDD(Spec-Driven Development,规格驱动开发)。其中有两个很有代表性的项目:一个是把历史悠久(Tornado + Jinja2)的某历史平台重构到当前技术栈,另一个是开发面向非研发同学、承载多种业务需求的某新平台。
这两个项目恰好代表了两种完全不同的开发场景:某历史平台是典型的棕地项目,已有业务复杂、历史约束很多,重构时最重要的是不要破坏原有逻辑;某新平台则更接近绿地项目,需要从零开始梳理需求、设计边界,并控制项目在快速演进中的复杂度。
SDD 确实解决了过去使用 AI 开发时遇到的许多问题。但随着实践深入,我也逐渐意识到:SDD 并不是写几份 spec、plan 和 tasks 文档就结束了。它真正要解决的,是如何让 AI 在长时间、跨会话、复杂代码库的开发过程中,始终理解我们的意图、遵守系统约束,并且能够证明自己的工作是正确的。
这篇文章想结合两个项目的实践,聊一聊我对 SDD 的理解、它目前的局限,以及它接下来可能演进的方向。
本文所说的 SDD,是一种以可验证规格作为开发主线的工作方式。规格不只描述需求,还应包含业务约束、非目标、验收条件和验证方式,并持续参与任务拆分、实现、审查与交付。它与 TDD、BDD、ADR/RFC、API-first 等方法并不冲突:这些方法分别提供行为验证、决策记录和接口契约,SDD 则负责把它们组织到同一条从意图到交付的主线上。