Contents

数据平台需求管理:从用户提需到评审、排期、交付与验收

“支持检索雨天场景”“帮我增加一个数据源”“把向量化速度提升一倍”,都可以进入需求池,但它们不能仅靠一个标题和一个截止日期完成交付。数据平台需要把问题背景、数据范围、负责人、承诺和验收证据串起来。

Data Flywheel 的“规划需求管理系统方案”讨论,最终明确了一个聚焦的目标:用户提需求 → 评审 → 排期 → 开发交付 → 用户验收。本文基于 2026-09-06 的代码阅读总结现有闭环,并讨论下一步如何连接数据与实验,不把它扩张成一套大而全的项目管理软件。

1. 需求不是开发任务,也不是数据处理任务

对象表达什么示例
用户需求想解决的问题与业务结果更快找到可用于训练的夜间雨天片段
开发任务实现需求的工程工作增加标签过滤接口、检索页面和权限检查
处理任务一次可追踪的数据运行对指定快照运行标签模型,产出结果版本
缺陷已有承诺行为的偏差过滤条件丢失,导出了未筛选数据

一条需求可以拆成多个开发任务,交付验证可以引用多次处理任务。代码完成、任务运行成功和用户验收通过,是三个不同事实。

Product Backlog 提供透明且有序的工作入口,Definition of Done 提供共同的质量约定;本文的表单和状态机是面向数据平台的工程设计,不是 Scrum 规定的固定模板。参见 Scrum Guide。

2. 提交时先描述问题,评审时确认可验收的结果

一份适合首版的需求记录可以包含:

字段要解决的问题
标题、背景什么问题反复发生,有何证据
期望结果完成后谁的工作会发生什么变化
影响范围哪些用户、项目、数据类型受影响
验收标准用什么场景、指标与数据判定完成
用户期望日期用户希望何时拿到结果
团队承诺日期团队评估依赖和容量后承诺的时间
负责人、目标版本谁推动交付,在哪次发布落地
交付说明、验收记录如何使用、验证以及处理差异

现有 Requirement 模型已包含背景、期望结果、验收标准、优先级、期望日期、承诺日期、负责人、计划版本、交付说明等核心字段。

用户期望日期与团队承诺日期应分开保存。 把用户填写的期望直接当成开发截止日期,会让排期变成没有容量依据的承诺;修改承诺时覆盖旧值,又会让延期原因失去记录。

3. 当前实现中的状态机

以下流程与当前 requirements_api.py 的主要转换一致:创建后直接进入待评审;评审要求补充时退回 draft;暂缓需求可以重新安排进入执行。

这张图也暴露了值得完善的地方:当前允许暂缓需求直接排期;如果暂缓期间范围发生变化,建议要求先重新评审验收标准。现有转换表没有表达任意重开、取消与重新评审,这些不应被当成已经存在的功能。

后端通过动作接口执行转换,而不是允许前端随意把 status 改为 completed。当前实现检查源状态,非法跳转返回冲突;评审通过必须有验收标准,排期必须有负责人、承诺日期和版本,交付必须有说明,验收驳回必须有原因。

4. 责任与权限应跟随流程

阶段主要责任流转条件
提需发起人描述问题与期望信息足以进入评审
评审管理者确认价值、范围与验收口径通过、补充、暂缓或拒绝有结论
排期承接团队确认容量与依赖有负责人、承诺日期与版本
交付负责人完成实现及内部验证有可访问交付物和验证证据
验收发起人或约定验收人确认结果对照原验收条件通过或驳回

现有实现对普通用户的交付动作校验 owner_id,对验收动作校验 requester_id,拥有管理权限的用户存在更广的操作路径。若业务要求开发与验收职责严格分离,应进一步限制管理者代验收并记录代理理由;不能只依赖页面隐藏按钮。

“平台开发者只看到自己负责的需求”也需要在列表与详情查询实现,不能先把全量需求下发再用前端过滤。权限模型的进一步讨论见 数据平台权限管理。

5. 数据需求的验收必须固定口径

以“支持夜间雨天片段检索”为例,以下是假设的验收模板,数值用于说明写法,不代表项目实测结果:

1
2
3
4
5
6
7
需求:在授权项目内检索夜间雨天片段
范围:固定数据集快照 sample-set-v3,视频片段粒度
功能:天气、时间段、数据来源条件可组合,导出保留同样条件
质量:在人工复核的 200 条查询集上,Precision@20 >= 0.85
性能:约定硬件、并发 10、固定预热方式下,P95 <= 2 秒
权限:项目 A 用户不能读取项目 B 的命中、计数、缩略图和文件
证据:评测报告、查询配置、模型版本、索引版本、发布记录

Precision@20 关注每个查询前 20 个结果中的相关比例,不能据此声称覆盖了所有雨天片段。需要评估召回时,还要建立合理的相关集合或抽样评估方法。

性能条件必须写明数据量、过滤条件、缓存状态和硬件;模型效果需要固定评测集与版本。否则评审时说的是 A,交付时测的是 B,双方仍可能都认为自己有道理。

对非功能需求也应提供证据:稳定性给故障恢复演练,权限给越权测试,成本给每千样本资源消耗。不要统一用“页面正常打开”验收所有工作。

6. 优先级、排期与范围变更

提交人的优先级表达影响感受,团队排期还要考虑影响人数、收益证据、时间窗口、实现成本、依赖和运行风险。一个简短的排序讨论通常比未经校准的复杂打分更有效。

可以先将需求分为阻断与事故修复、明确交付窗口、常规改进、探索验证四类。探索性算法需求优先设时间盒与退出条件,例如先验证样本上的可行性,再决定全量产品化。

执行中新增范围时,建议记录变更差异、原因、受影响验收项和新的承诺。不能一边持续加需求,一边仍用原日期衡量延期。

以下机制属于下一阶段建议:

  • 为需求内容和验收标准建立修订历史。
  • 使用乐观锁或条件更新,防止两人同时评审导致状态覆盖。
  • 使用并发安全的业务编号分配,避免简单计数生成编号产生冲突。
  • 将状态、活动记录与审计放在同一事务,外部通知使用可恢复投递机制。
  • 补齐取消、重开、重新评审和附件访问规则。

当前已经有活动时间线,但活动日志的存在,不等于所有字段变化都有完整版本历史。

7. 把交付结果接回数据飞轮

建议让需求进一步关联下列证据链:

1
2
问题事件 → 用户需求 → 工程变更 → 发布版本
        → 数据处理 run → 数据集版本 → 训练或评测 → 验收结论

这些关联是后续扩展方向,现有需求中心尚不能仅凭一个交付说明就自动提供全部血缘。

值得跟踪的运营指标包括:首次响应时间、评审等待时间、承诺按期率、从开始到验收的周期、一次验收通过率、驳回原因分布。定义指标时,应明确暂缓时间是否计入,已取消需求如何处理,以及承诺日期采用最初值还是修订值。

交付后还可以观察使用率、人工时间变化和模型效果,但上线前后指标不同不自动证明因果。数据分布、模型版本与评测环境变化都可能影响结果。

8. 第一版做好闭环,再扩展协作

现有需求池、详情、状态动作和时间线已经构成可讨论的基础。下一步优先完善真实用户权限、补充与修改体验、并发一致性和交付证据,再考虑子任务、依赖关系、容量计划与外部研发系统同步。

用 Commit 提交规范 关联工程变化,用 发布流程 关联线上版本,需求管理才能回答“结果是否交到用户手里”,而不只是“卡片是否被拖到了最后一列”。