在 MumuSpec 十四文档体系里,12 回答"什么时候能向业务演示什么"和"开发要拆哪几包活"。里程碑按可演示价值切,WBS 按工程职责切——一条 REQ 到 TC 的全链路,一张表看完。
项目启动会上,老板问:"什么时候能看东西?"
开发说:"大概两个月吧。"
老板追问:"一个月能看什么?一个半月呢?"
开发沉默了。
两个月后,交付了一堆功能。老板问:"这个功能不是我想要的,那个功能怎么还没做?"
开发委屈:"需求变了好几轮,我们已经很努力了。"
这就是缺一份实施计划的典型症状:
在 MumuSpec 体系里,12 实施计划与里程碑就是来解决这个问题的。
一层管一层,不混层。12 只回答两个问题:① 什么时候能演示什么?② 开发要拆哪几包活?
十四份文档有一条明确的主链:
Proposal(03-04) → Spec(05-06-07) → Design(08-09-10-11) → Plan(12) → Test(13) → Trace(14)12 属于 Plan 阶段,是承上启下的关键枢纽。
它的上下游关系:
方向 | 文档 | 关系 |
|---|---|---|
上游 | 05 UserStory | 12 的每个里程碑满足若干条 REQ/US |
上游 | 08 架构 | WBS 任务拆分基于架构分层 |
上游 | 09 API | 路由实现任务对齐 09 的端点清单 |
上游 | 10 数据模型 | 存储层任务对齐 10 的表结构 |
下游 | 13 测试 | 每个里程碑标注验证的 TC 编号 |
下游 | 14 RTM | 12 提供 REQ→S→W→TC 的映射关系 |
一条需求落到 12,才算"可排期"。PM 的 REQ-001 说"问答返回正确结果",业务侧这条需求写在 05。但它真正变成可排期的输入,是在 12 定义了"S2 问答核心里程碑,主要 WBS 是 W1 路由+W3 Agent,验证 TC-M01-001"之后。
这是很多团队的真实困境:
"我们让 AI 生成代码,但不知道先生成什么、后生成什么。结果前端等后端,后端等数据模型,大家都卡着。"
原因很简单:AI 需要明确的优先级和依赖关系,才能高效协作。
12 的价值在于:
错误的切法:
正确的切法(12 的方式):
每一个 S,都能给业务演示一个完整价值。不是"数据库写好了"(业务看不懂),而是"你能创建会话了"(业务能感知)。
按功能切的问题:
结果是:每个人的工作互相依赖,无法并行,Code Review 也没人懂。
按工程职责切(12 的方式):
每个 W 可跨多个 S 迭代推进,不同 W 可并行开发。W1 和 W2 可以同时进行,W3 等 W2 完成后接入,W4 按 S1-S4 逐步填充界面。
需求编号 | 用户感知 | 演示阶段 | 主要 WBS | 验证 TC |
|---|---|---|---|---|
REQ-001 | 问答返回正确结果 | S2 | W1, W3 | TC-M01-001 |
REQ-002 | 会话可创建删除 | S1 | W1, W2, W4 | TC-M01-020 |
REQ-003 | 历史问答可查 | S3 | W2, W4 | TC-M01-035 |
老板问"REQ-001 什么时候能看?"——答"S2"。问"谁负责?"——答"W1 路由+W3 Agent"。问"怎么算通过?"——答"TC-M01-001"。
不用再翻 PRD、翻 UserStory、翻测试用例——一张表全有。
用真实的模板结构说明。完整模板见 Spec模板-投研助手/12-实施计划与里程碑.md,这里摘核心几块:
切分原则:每刀切出一个可演示的用户价值。
阶段 | 交付要点(可演示) | 满足的 REQ/US | 验证 TC |
|---|---|---|---|
S1会话管理 | 会话 CRUD API + 前端侧栏 | REQ-001 部分 | TC-M01-020~025 |
S2问答核心 | 问答提交 + LLM 调用 + 结果展示 | REQ-001 | TC-M01-001~010 |
S3历史与状态 | 问答记录查询 + 会话状态管理 | REQ-003 | TC-M01-030~040 |
S4发布准备 | 性能优化 + 错误处理 + 测试门禁 | 全部 | TC-M01-全部 |
每个 S 的交付要点,业务都能看懂并演示。不是"存储层完成",而是"会话可创建删除"。
拆分原则:按工程职责切,不按功能切。
任务ID | 任务名称 | 具体内容 | DoD(指向 Spec) | 推进阶段 |
|---|---|---|---|---|
W1 | 路由实现 | agent_bp.py端点注册、参数校验 | 对齐 09端点与错误码 | S1 起贯穿 S4 |
W2 | 存储层 | storage.pyJSON CRUD | 对齐 10数据模型 | S1~S2 |
W3 | Agent 编排 | LLM 调用、三级降级策略 | 对齐 08架构设计 | S2~S3 |
W4 | 前端视图 | 会话侧栏、提问区、结果展示 | 对齐 06FSD | S1 起贯穿 S4 |
W5 | 状态机 | 会话状态流转、超时处理 | 对齐 05US 验收条件 | S3 |
W6 | 测试门禁 | P0/P1 用例自动化、覆盖率检查 | 对齐 13测试策略 | S2 起贯穿 S4 |
每个 W 的 DoD 都指向 Spec文档——不是"代码写完",而是"对齐 09 端点与错误码"。
读法:●= 主要推进,○= 少量涉及,—= 不涉及
WBS \ 阶段 | S1 | S2 | S3 | S4 |
|---|---|---|---|---|
W1路由 | ● sessions | ● ask | ○ 历史 | ○ 优化 |
W2存储 | ● sessions CRUD | ● 记录落库 | ○ 索引 | — |
W3Agent | — | ● 三级降级 | ○ 状态 | — |
W4前端 | ● 会话侧栏 | ● 提问区 | ● 历史 | ○ 体验 |
W5状态机 | — | — | ● 流转 | — |
W6测试 | ○ fixture | ● P0 用例 | ● P1 用例 | ● 门禁 |
这张矩阵回答了"每个阶段各条线在做什么"。一眼看出 S2 是核心攻坚期(W1/W2/W3/W4/W6 都在推进),S4 是收口期(主要是优化和门禁)。
一行看完一条需求的全链路。
需求编号 | 用户感知 | 演示阶段 | 主要 WBS | 验证 TC |
|---|---|---|---|---|
REQ-001 | 问答返回正确结果 | S2 | W1, W3 | TC-M01-001 |
REQ-002 | 会话可创建删除 | S1 | W1, W2, W4 | TC-M01-020 |
REQ-003 | 历史问答可查 | S3 | W2, W4 | TC-M01-035 |
REQ-004 | LLM 降级可用 | S2 | W3 | TC-M01-008 |
REQ-005 | 性能达标 | S4 | W1, W6 | TC-M01-050 |
14 追溯矩阵直接从这张表生成——REQ 到 US 到 S 到 W 到 TC,全链路不断链。
依赖链:
S1 会话管理 → S2 问答核心(必须先有会话才能提问)→ S3 历史与状态 → S4 发布准备风险 | 影响 | 应对 |
|---|---|---|
上游 LLM 不可用 | 问答降级 | Demo 模式兜底(W3 实现三级降级) |
09 API 变更 | W1 路由返工 | 变更门禁+影响分析(spec-impact-analyzer) |
05 验收条件变更 | TC 用例失效 | RTM 自动重算(14 追溯矩阵 Skill) |
风险不是事后补救,是提前识别并写入 12。每个风险标注影响范围和应对预案,对应到具体 WBS 任务。
错误示范:
正确示范:
判断标准:每个 S 结束,能不能给业务演示并收集反馈?能,就是按价值切;不能,就是按技术切。
错误示范:
正确示范:
判断标准:不同 W 能不能并行开发?能,就是按职责切;不能,就是按功能切。
错误示范:
正确示范:
09端点与错误码"10数据模型"06FSD 交互规范"13测试策略 P0 用例"判断标准:DoD 能不能被客观验证?能指向具体 Spec 章节,就能验证;模糊描述,就不能验证。
问题 | 表象 | 根因 | 解法 |
|---|---|---|---|
里程碑不可演示 | "S1 数据库完成了"——业务看不懂 | 按技术完成度切 | 改成"用户能创建会话" |
WBS职责重叠 | W1 和 W2 都在写存储逻辑 | 拆分不清晰 | W1 只管路由注册,W2 管数据 CRUD |
需求追踪断链 | "REQ-003 现在什么状态?"没人答得上 | 没写 REQ→S→W→TC 映射表 | 补充总对应表,每个 S 标注 REQ 和 TC |
风险事后才暴露 | "LLM 调不通,S2 延期"——没人提前预案 | 风险没识别 | 12 必须写依赖链和风险表 |
DoD模糊 | "写完了"——但和 Spec 对不上 | DoD 没指向 Spec | 每个 W 的 DoD 明确标注对齐哪个文档哪个章节 |
帮你理解 14 份 Spec 文档的关系:
阶段 | 文档 | 一个词 | 回答的问题 |
|---|---|---|---|
Proposal | 03 + 04 | Why | 为什么要做?做什么不做什么? |
Spec | 05 + 06 + 07 | What | 用户要什么?功能什么样?约束底线? |
Design | 08 + 09 + 10 | How | 怎么架构?接口?数据怎么存? |
Plan | 12(本文) | When | 什么时候交?谁来做? |
Test | 13 | OK? | 做对了没? |
Trace | 14 | Linked? | 全对得上吗?有没有漏? |
12 是把 What 和 How 变成 When 的关键一步。没有 12,前面的 Spec 再完善也不知道什么时候交付;没有 12,后面的 Test 再严谨也不知道什么时候开始测。
在 MumuSpec 十四文档体系里,12 通常只有 3-4 页 markdown。但它是从"纸上谈兵"到"真正交付"的转折点:
12 写的质量,直接决定了项目的可控性和交付的可预期性。
写 12 不需要复杂的项目管理工具,一个 markdown 文件 + 四张表就够了:
关键是:把它当交付地图写,而不是当排期表写。
排期表回答"什么时候做完",交付地图回答"什么时候能向业务演示什么价值"。前者是技术视角,后者是业务视角。12 必须是业务视角。