AI编程时代,对应的软件需求文档(SRS、SRD、PRD)要怎么写

简介: 对于AI编程来说,需要使用全新的面向提示词的需求文档来和AI+人类沟通,构建共同的单一事实来源文档知识库是重中之重。

我们正处在软件开发的分水岭

AI Coding如火如荼的迅速获得到广大程序员的偏爱,虽然有些程序员偶尔会意识到这不是对自己的替代么,但仍忍不住疯狂的迷上AI Coding。狂热起来,像不像飞蛾扑火(程序员制造的AI Coding会不会让程序员失业呢)?

AI Coding对整个行业的冲击无疑是划时代的,但是评估他的整个影响,还很难说,我们只能看到他得巨大的动能,但是冲击之后是什么样子,大部分我们只能一边看,一边学习和接受。 就像汽车代替马车,旧的行业逐渐淡出,新的行业兴起,车夫失业了,司机的需求出现了。

这里我们先不对整体的冲击做预测,过于宏达也过于虚幻了。 我们先聚焦到SRS软件需求规格说明这一点上,来看需求分析师(或系统架构,产品经理等),如何应对这场变革,还需不需要写SRS、PRD(红旗还能打多久)?!

提示词工程,AI时代的新外语

以前我们学技术、查资料,学习英语很重要。 现在跟AI的沟通协作过程中,人们很快发现,不同的沟通方式差异很大。因此出现了一个新兴的专业领域叫提示词工程(prompt engineering),这里(https://www.promptingguide.ai/)汇集里提示词工程的概念、技术、工具、以及论文等。深入研究的可以看看。 这里(http://sxo.cc/analysis/prompt-engineering)有中文的简单扼要的介绍。

根据斯坦福2023年的研究数据,使用提示词工程和AI沟通,质量能提升73%,而如果不使用的话,则AI的潜力只能发挥30%左右。

当然对于日常的简单对话,提示词工程并无特殊明显的效果,因为通常上下文都很短。一旦需要AI完成比较严肃的任务型的工作,那么上下文立刻就成为决定AI生成质量的关键因素。尤其是在编程任务中,AI需要对整体有足够的了解,才能够精准的进行编程,否则就会有大量的误解、无关的蔓延、错误的引用产生。 这就对上下文的大小提出来强大的挑战。

研究人员首次真正意识到上下文的重要性,是2018年,Eric Zelikman(斯坦福大学)发表了论文“上下文就是一切”: Context is Everything: Finding Meaning Statistically in Semantic Spaces(2018 年 3 月,2025 年 9 月更新至 v4), 有兴趣的话链接如下:https://arxiv.org/pdf/1803.08493v4

基于对上下文的扩展和应用,一些研发人员甚至提出了RAG已经过时的观点。认为上下文就可以解决所有的问题,并且更精炼更准确。

似乎我们只需要从底层不停地扩充上下文,堆叠硬件算力就可以简单的解决模型幻觉,误解等问题。

但是显然大家低估了对AI的需求,尤其随着AI编程等等重型任务越来越多,上下文腐烂基本随时可见,新的研究更发现上下文的严重不足。不仅简单的扩张上下文不能解决问题,而且过大的上下文(long context),反而更容易引起模型的噪声、错误。性能反而显著的下降。 相关研究论文见这里:Lost in the Middle: How Language Models Use Long Contexts(2023 年 7 月),链接是:https://arxiv.org/abs/2307.03172

所以基本上,我们没法简单的依赖扩充上下文来实现对AI的无障碍协作,将来也不行。 大部分情况下, 学习如何跟AI对话(提示词工程)仍是非常有用的。

提示词需求文档(Prompt Requirement Document)

在氛围编程(vibe coding)描绘的场景下,你只需要给出一句话,AI就能完成编程工作。并且现在的AI能力就已经很接近vibe coding的场景了。编程都能完成,那测试用例岂不是更加小菜? 自动测试更无需多言。 至于产品手册,操作说明,部署文档,发行注释,对AI来说更是顺手拈来。

似乎整个软件工程的环节都无需人工了。。。。。。

但是,等等。 你是不是得给一句话,AI才能开始干活。 总归这句话省不了吧。 AI干的活好不好,不全依赖这句话么?

为此,一些研发人员再和AI编程的协作过程中,尝试借助提示词工程的能力,并更进一步,升级成 提示词需求文档 [^xuqiuwendangdebianxie]! 见这里(https://medium.com/@takafumi.endo/prompt-requirements-document-prd-a-new-concept-for-the-vibe-coding-era-0fb7bf339400)

为了让AI编程更好的理解需求,从而生成准确的代码。 精准的描述需求的文档,SRS,SRD,PRD等规格说明显然仍是必不可少的。 但是在研发人员的实践中,将需求规格文档扔给AI,效果并不好。不仅仅是上下文超长的问题,长的上下文导致的注意力飘忽也很严重。毕竟,大模型的起源就是注意力机制,见论文:(Attention Is All You Need),链接:https://arxiv.org/abs/1706.03762 。上下文太长你让他注意哪儿呢。

于是一些研发人员开始研究哪些文档更方便AI的理解和使用。于是就有了提示词需求文档(Prompt Requirement Document)PRD。

虽然不言自喻,传统的需求文档都是给人看的。 但需要喂给AI时,大家就得反思AI需要的是什么,不需要的是什么了。 因此对于新的提示词需求文档PRD, 其设定的目标就是人和AI的公共文档。

这里涉及到另一个数据管理方面的术语SSOT:唯一真相来源或单一事实来源。

SRS对于人类来说,已经算是要求极高的规格化的文档了。但是从AI的角度来看,仍充满了信息冗余(人类习惯用重复以加强印象),以及缺失大家认同的事实(团队内有默契的表述)。 因此要和AI共同使用,需要从SSOT的角度重新梳理需求规格。

SSOT强调唯一性、权威性、准确性。要求所有其他的数据都由SSOT而来,或者引用SSOT。 这对于AI来说刚好是恰逢其好。


说到这里,我解释下为什么仍然需要需求文档,而不是给AI一句话就行了。 事实上,我认为 氛围编程(vibe coding) 是个非常错误的概念,虽然是大佬提出来的。 因为你要是真的一句话,AI就给你写好了所有的代码,生成了所有的文档,手册,部署脚本,测试用例,产品相关的一切。 那么不论这些代码,程序,文档,脚本如何的丰富,如何的强大, 他实质上的信息量,就是原始的那一句话。

举个极端的例子,我一句话生成了一张光盘内容的管理系统。 当我需要到另一个很远或很严格无法携带很多数据的地方去的时候。我需要压缩信息量,那么整个光盘内容都是可以删掉的,我只需要带原始的那一句话就行。 到了地儿,我就凭这句话重新生成一遍就行了。信息熵就这么多。

这个不仅和从源码编译出程序的概念一样,甚至操作也都类似。 有原始的内容,就可以生成最终的内容。那么原始的内容才是最重要最核心的。生成的都是临时,可以重复的。

但除了简单明了的工具类应用,可以一句话说清楚外。任何复杂的系统,他必然是无法再一句话的信息量里涵盖所有的细节的。 因此用一句话去生成,必然会导致错乱混淆的结果。

氛围编程,用一种美好的幻想误导了大部分的人。 并且最重要的是,他误导了很多的技术圈外的人,让人觉得真的可以人人都可以用AI来编码,从此不需要程序员了,这是一种很糟糕的幻想,并最终会由很多人得盲目且反复的试错而告终。


那么我们如何用SSOT来构建提示词需求文档PRD呢? 一些已知的有效实践如下:

首先是提示词需求文档PRD的三原则:指南、指导和守卫 (guideline,guidance,guardrails)

  • 指南:共享 AI 与人类的理解:
    一个全面的知识库,用于建立项目背景、技术原理和架构决策。该基础确保 AI 助手和人类团队成员基于相同的理解开展工作,从而在方法和方向上保持一致——类似于传统的 PRD 如何围绕产品需求协调利益相关者 [^stakeholder]。
  • 指导:演进提示的方法论。
    这是一种结构化方法,旨在帮助开发人员将抽象概念演进为 AI 系统能够准确解读和执行的精确指令。该系统包含带注释的提示示例、模式库、情境最佳实践和常见陷阱 [^traps]警告,即使是 AI 协作新手也能创建有效的提示,并生成一致、高质量的结果。
  • 护栏:AI 辅助代码审查。
    一套明确的自动化评估标准和质量检查点,专门用于解决已知的项目风险和反复出现的痛点。这些护栏使 AI 系统能够对拉取请求进行初步代码审查,在人工审查开始之前识别出基本问题。这种系统化的方法减轻了人工审查人员的认知负担,使他们能够专注于更复杂的架构问题,同时确保代码质量标准的一致性执行。

格式与内容

在研究人员的一些尝试中,发现对于AI来说,md的表格形式是最有效的结构化形式。 使用人类的描述语言给AI描述需求,显然是过于冗余且难以保证精确的。因此研发人员很早就尝试各种格式化的数据,用于和AI沟通。

在尝试过多种结构化数据后,如json,yaml等等。研究人员发现以竖线分割的属性字段,类似md的表格形式,对AI来说效果最好。既能精准的描述数据内容,又非常的简约,节省上下文。

一个建议的提示词需求文档的工作流程如下:

  • 初始设置
    定义基本规则和项目概述。
  • 需求设计
    与人工智能协作明确功能。
  • 细化指令
    将这些功能转化为机器友好的提示(如特殊的“魔术提示”)。
  • 实施
    与AI共同创建代码并进行验证。
  • 重构
    提高质量并保持一致性。
  • PRD 更新
    将经验教训 [^congjingyanzhongxuexi]和新信息整合回 PRD。

提示词需求文档的不足之处

作为一个刚提出来的设想概念,提示词需求文档强调了人类和AI共享的同一份单一事实来源,保证了和AI的协作效率。 但是SSOT并没有完备性上的约束,因此需求规格是否完备,仍依赖于分析师的经验水准。

另外一点可以理解的是,作为一个新兴的概念,还并没有事实上的标准支撑,因此大家也是各自以自己的方式在尝试。

::: {#author name=reddish}
本文同步发表在 软件需求探索https://srs.pub/thinking/srs-for-ai.html

作者: reddish@srs.pub
:::

[^xuqiuwendangdebianxie]: 需求文档的编写. https://srs.pub/theory/xu-qiu-wen-dang-de-bian-xie.html
[^congjingyanzhongxuexi]: 商业分析中的五十种分析方法和技巧之27-从经验中学习. https://srs.pub/babok/cong-jingyan-zhong-xuexi.html
[^stakeholder]: 涉众定义与解释. https://srs.pub/theory/stakeholder.html
[^traps]: 需求分析中的常见陷阱. https://srs.pub/case/traps.html

目录
相关文章
|
2月前
|
人工智能 安全 架构师
告别旅行规划的"需求文档地狱"!这个AI提示词库,让你像调API一样定制完美旅程
作为开发者,旅行规划如同“需求地狱”:信息碎片、需求多变、缺乏测试。本文提出一套“企业级”AI提示词库,将模糊需求转化为结构化“API请求”,实现标准化输入输出,让AI成为你的专属旅行架构师,30分钟生成专业定制方案,提升决策质量,降低90%时间成本。
445 129
|
27天前
|
存储 人工智能 JSON
揭秘 Claude Code:AI 编程入门、原理和实现,以及免费替代 iFlow CLI
本文面向对 AI Coding 感兴趣的朋友介绍 Claude Code。通过此次分享,可以让没有体验过的快速体验,体验过的稍微理解其原理,以便后续更好地使用。
570 18
揭秘 Claude Code:AI 编程入门、原理和实现,以及免费替代 iFlow CLI
|
27天前
|
人工智能 JSON 安全
Claude Code插件系统:重塑AI辅助编程的工作流
Anthropic为Claude Code推出插件系统与市场,支持斜杠命令、子代理、MCP服务器等功能模块,实现工作流自动化与团队协作标准化。开发者可封装常用工具或知识为插件,一键共享复用,构建个性化AI编程环境,推动AI助手从工具迈向生态化平台。
266 1
|
2月前
|
存储 消息中间件 人工智能
【08】AI辅助编程完整的安卓二次商业实战-修改消息聊天框背景色-触发聊天让程序异常终止bug牵涉更多聊天消息发送优化处理-优雅草卓伊凡
【08】AI辅助编程完整的安卓二次商业实战-修改消息聊天框背景色-触发聊天让程序异常终止bug牵涉更多聊天消息发送优化处理-优雅草卓伊凡
189 10
【08】AI辅助编程完整的安卓二次商业实战-修改消息聊天框背景色-触发聊天让程序异常终止bug牵涉更多聊天消息发送优化处理-优雅草卓伊凡
|
2月前
|
机器学习/深度学习 人工智能 安全
当AI开始“思考”:软件工程师眼中的AI惊悚瞬间-优雅草卓伊凡
当AI开始“思考”:软件工程师眼中的AI惊悚瞬间-优雅草卓伊凡
100 6
|
2月前
|
XML 存储 Java
【06】AI辅助编程完整的安卓二次商业实战-背景布局变更增加背景-二开发现页面跳转逻辑-替换剩余图标-优雅草卓伊凡
【06】AI辅助编程完整的安卓二次商业实战-背景布局变更增加背景-二开发现页面跳转逻辑-替换剩余图标-优雅草卓伊凡
88 3
【06】AI辅助编程完整的安卓二次商业实战-背景布局变更增加背景-二开发现页面跳转逻辑-替换剩余图标-优雅草卓伊凡
|
2月前
|
人工智能 算法 小程序
再见 Cursor,Qoder 真香!这波要改写 AI 编程格局
只需要把项目导入 Qoder,Repo Wiki 就可以详细地帮你梳理整个代码工程,甚至可以将项目的隐性知识显性化。这简直就是程序员的福音。
|
28天前
|
机器学习/深度学习 人工智能 监控
拔俗AI智能营运分析助手软件系统:企业决策的"数据军师",让经营从"拍脑袋"变"精准导航"
AI智能营运分析助手打破数据孤岛,实时整合ERP、CRM等系统数据,自动生成报表、智能预警与可视化决策建议,助力企业从“经验驱动”迈向“数据驱动”,提升决策效率,降低运营成本,精准把握市场先机。(238字)
|
28天前
|
机器学习/深度学习 人工智能 监控
上海拔俗AI软件定制:让技术真正为你所用,拔俗网络这样做
在上海,企业正通过AI软件定制破解通用化难题。该模式以业务场景为核心,量身打造智能解决方案,涵盖场景化模型开发、模块化架构设计与数据闭环优化三大技术维度,推动技术与业务深度融合,助力企业实现高效、可持续的数字化转型。