跳转至

从 PRD 到任务

一个大的 PRD 如果不继续拆,最后很容易变成“大家都知道目标很大,但没人知道下一步先做什么”。

为什么 PRD 不能停在 PRD

PRD 通常描述的是:

  • 项目要实现什么;
  • 有哪些功能范围;
  • 有哪些兼容性和性能要求;
  • 有哪些非功能性约束。

但 PRD 不等于任务计划。
如果没有继续拆分,它无法直接回答:

  • 先做对象还是先做 merge?
  • 哪个模块是前置依赖?
  • 哪些危险操作必须最后才能放开?
  • 测试应该在哪一步跟上?

这个项目怎么拆

python-git-reproduction 里,大致的拆法是:

  1. 先立文档和工程约束;
  2. 再建项目骨架;
  3. 再做仓库初始化;
  4. 再做对象数据库;
  5. 再做管道命令;
  6. 再做 Index V2;
  7. 再做 commit 闭环;
  8. 再做 refs 和 branch;
  9. 再做工作区状态;
  10. 再做 checkout / switch / reset / stash / merge;
  11. 再做 pack、remote 和服务端;
  12. 最后用真实测试把整条链路兜住。

任务拆分的原则

任务不是按“功能看起来顺手”拆,而是按依赖关系拆:

  • 没有对象库,后面所有东西都站不稳;
  • 没有 index,就没法讲清楚 add、status、write-tree;
  • 没有 refs,就没法做 branch、checkout、reset;
  • 没有安全边界,就不该急着开放危险命令。

所以好的任务拆分,其实是在保护后续实现质量。