| 项目 | 内容 |
|---|---|
| 版本 | v1.1 |
| 状态 | 已评审 |
| 总周期 | 约 18 周(4.5 个月)至全量上线(3 人基线;2 人配置顺延约 3 周) |
| 变更记录 | v1.0 首次定稿;v1.1 修订:ICP 备案提前至 W1 启动、2 人配置周期顺延、R1 No-Go 里程碑联动说明 |
1. 里程碑总览
| 里程碑 | 时间 | 交付物 | 准出条件 |
|---|---|---|---|
| M0 立项完成 | 第 1 周内 | 9 份文档评审冻结 | 本套文档签字确认 |
| M1 技术验证通过 | 第 5 周末 | 3 个技术 Demo(长列表/键盘/SQLite) | 低端真机达帧率标准(Go/No-Go) |
| M2 设计完成 | 第 5 周末 | Figma 高保真 + API 契约冻结 | 前后端认领接口清单 |
| M3 后端 API 全通 | 第 11 周末 | 后端全部接口 + Swagger + 单测 | 契约覆盖率 100%,核心逻辑单测 ≥ 60% |
| M4 客户端功能完备 | 第 13 周末 | 全部页面可走通(联调完成) | 真机走通 PRD 核心旅程 |
| M5 测试准出 | 第 16 周末 | 测试报告 + 缺陷清零 | P0/P1 缺陷 = 0,见 08-test-plan.md |
| M6 双端上架 | 第 18 周末 | App Store + 国内安卓市场全量 | 灰度 3 天崩溃率 < 0.5% |
2. 人力分配(按 3 人基线,2-4 人可伸缩)
| 角色 | 人数 | 职责 | 备注 |
|---|---|---|---|
| 后端工程师 | 1 | NestJS 全模块 + 部署运维 + DB | 兼测试服务端接口 |
| 客户端工程师 | 1 | uni-app 全部页面 + 同步引擎 | 主力攻坚记一笔页 |
| 产品/设计/测试 | 1 | PRD 维护、Figma、测试执行、上架材料 | 设计可外包兼职(预算允许时) |
| 全员 | — | 周五 Demo、Code Review、Dogfooding |
4 人配置时增加 1 名客户端,M4 可提前 1-1.5 周;2 人配置时砍 P1(筛选/趋势图/成员活跃度),周期顺延约 3 周:测试执行与上架材料由两人分摊(原「产品」职责),M5/M6 相应后移,不压缩测试期。
3. 分阶段计划
阶段 1:需求与设计(第 1-5 周,与 M1 并行)
| 周 | 事项 |
|---|---|
| W1 | 文档评审冻结(本文档套件);技术 Demo 启动;采购/申请:短信服务、OSS、双端开发者账号、域名购买 + ICP 备案启动(最长外部依赖,不得晚于 W1) |
| W2 | Figma 高保真(记一笔页 + 流水页优先);API 契约初稿(swagger.yml) |
| W3 | Figma 其余页面;契约评审冻结(M2 前置);数据库建库脚本 + 种子数据 |
| W4 | 技术 Demo 真机验证 → M1 Go/No-Go;UI 走查 |
| W5 | M2 设计完成;脚手架初始化(uni-app CLI 工程 + NestJS 工程 + docker compose) |
阶段 2:开发(第 5-13 周)
后端(1 人,关键路径见 4 节):
| 周 | 交付 |
|---|---|
| W5-6 | 工程骨架 + docker compose + 迁移/种子脚本 |
| W6-7 | Auth 模块(验证码/JWT/注销)+ users |
| W7-9 | Ledger 模块(成员/角色/邀请码)+ 权限 Guard 全局化 |
| W9-11 | Transaction + 同步接口(upload/pull 幂等)+ WebSocket 网关 |
| W10-11 | Statistics(聚合 + 缓存失效)+ Budget(跑批提醒) |
| W11 | Swagger 全量核对 → M3;部署 staging |
客户端(1 人):
| 周 | 交付 |
|---|---|
| W5-6 | 脚手架:主题 token、路由、Pinia、API client(按契约生成)、SQLite 初始化 |
| W6-8 | 记一笔页全交互(键盘/分类面板/三 chip/再记一笔)+ 登录注册 |
| W8-10 | 流水列表(虚拟滚动/日分组/筛选)+ 账本切换/创建 + 邀请-加入闭环 |
| W10-12 | 统计页(uCharts 饼图/条形图)+ 预算 + 消息中心 + 我的 |
| W11-13 | 同步引擎(离线队列/幂等上传/增量拉取/WS 重连)—— 全项目技术难度最高,预留 3 周 |
| W12-13 | 联调(staging)→ M4;埋点接入 |
阶段 3:测试(第 13-16 周,与开发尾部重叠)
见 08-test-plan.md。要点:W13-14 兼容性 + 并发专项;W14-15 安全测试 + 弱网;W15-16 全员 Dogfooding(真实账本记账 1-2 周)→ M5 准出。
阶段 4:发布(第 16-18 周)
见 09-launch-checklist.md。要点:W16 提审双端(iOS 1-3 天/轮,预留 2 轮被拒缓冲);W17 灰度(TestFlight + 安卓市场内测 100-500 人);W18 全量 → M6。
4. 关键路径
API 契约冻结(W3) → 后端 Auth/权限(W7-9) → 同步接口(W9-11) → 联调(W12-13) → 客户端记一笔页(W6-8) → 同步引擎(W11-13) ↗技术 Demo Go(W4) ————————————————————————————————————————→(No-Go 则记一笔页改 nvue +2 周)三个不可压缩点:同步引擎(3 周)、记一笔页交互打磨(3 周)、iOS 审核缓冲(2 周)。
R1 触发 No-Go(记一笔页改 nvue,+2 周)时,M4-M6 全部顺延 2 周,里程碑表按此联动;顺延吸收进总周期,不压缩测试与灰度窗口。
5. 例行机制
- 周五 Demo:每周五 30 分钟,真机演示本周进展(不达标周会暴露)
- Code Review 强制:feature 分支 → PR → 至少 1 人 approve → merge;主分支每日可构建
- 需求冻结:M0 后 PRD 变更走书面评审,新想法一律进需求池(V1.1+ 评审)
- 风险周检:每周五过一遍风险登记册(下节)更新状态
6. 风险登记册
| # | 风险 | 概率 | 影响 | 缓解措施 | 状态 |
|---|---|---|---|---|---|
| R1 | uni-app WebView 性能不达标(长列表/键盘卡顿) | 中 | 高(核心体验) | W4 技术 Demo 前置验证;No-Go 预案:记一笔页改 nvue、列表加原生插件(+2 周缓冲已规划) | 监控中 |
| R2 | 同步引擎复杂度超预期(断线/幂等/冲突边界) | 中 | 高 | 契约先行;LWW 简化模型;W11 起专职投入;Dogfooding 真实验证 | 监控中 |
| R3 | iOS 审核被拒超 2 轮 | 中 | 中(延期 1-2 周) | 隐私政策/注销功能按清单提前准备(09 文档);首轮提审留足材料 | 监控中 |
| R4 | 安卓市场软著未及时下证 | 高 | 中(部分市场延期上架) | W13 立即提交申请(加急通道);未下证市场可后补上架 | 监控中 |
| R5 | 3 人团队有人请假/离职 | 低 | 高 | 文档完备(本套);代码规范 + PR 制度降低知识孤岛 | 监控中 |
| R6 | 范围蔓延(中途加需求) | 高 | 中 | 需求冻结机制 + 需求池;周五 Demo 只演示已冻结范围 | 监控中 |
| R7 | 短信通道审核延迟 | 低 | 低 | W1 即申请签名报备 | 监控中 |
7. V1.1+ 需求池(MVP 冻结,排期另评)
记账提醒推送(P1.5)、数据导出 CSV/Excel、账本内自定义分类、扫码邀请、周/年统计维度、分类预算、深色模式、H5 邀请落地页、周期账、账单导入(合规评估后)。