返回博客

MVP 只写了 C 端,上线前炸出 6 个 P0 断链

一个 O2O 服务功能,产品方案和设计稿都只描述了「用户下单」的链路。开发照图实现,联调完毕,准备上线——然后 QA 走读了一遍服务人员侧,发现他们压根没法工作:看不到新订单通知、无法区分订单类型、无法更新服务状态、拿不到客户联系方式。同一时间,运营侧的计价配置入口也不存在。

6 个 P0 断裂点,全部是「从来没有人想到要做」,而不是「做了但有 bug」。

现象

功能本身的业务闭环是:用户下单 → 服务人员接单 → 执行服务 → 完成确认。但 MVP 交付物里:

  • 用户支付成功后跳转的订单详情页,不展示任何服务方信息
  • 服务人员的抢单列表里,新类型订单和普通订单外观无差异,无法识别
  • 服务人员没有接收新订单的推送通知入口
  • 接单后拿不到客户联系方式,无法主动沟通
  • 取件、配送、送达等中间状态无法由服务人员主动更新
  • 运营后台没有任何计价配置管理入口

结果是:用户下单成功,但整个服务链条在服务方这一侧完全断掉,功能根本无法上线。

根因

这类断链的根因不是代码 bug,而是需求视角的单角色盲区

产品方案以「用户旅程」为主线,设计图覆盖了用户从发现服务到支付成功的每一个屏幕。但对于同一个业务事件,存在多个参与角色——用户是「发起方」,服务人员是「执行方」,运营是「配置方」。设计图里根本没有服务人员和运营的任何页面,开发自然也没有交付。

坑:多角色功能只按 C 端视角写方案

O2O / 服务类功能天然涉及三个角色:用户(下单)、服务方(执行)、平台运营(配置 + 监控)。如果 PRD 和设计稿只覆盖了用户视角,另外两侧的核心工作流就会在 MVP 里消失——不是做错,而是根本没做。

上线前才发现,代价是被迫追加一个「紧急补齐」迭代,拖延发版且打乱排期。

正解

在产品方案阶段,引入角色完整性检查,强制对每个参与角色逐一过一遍核心工作流是否被覆盖。

具体做法:列出本功能涉及的所有角色,对每个角色问三个问题:

  1. 他怎么知道有任务要处理?(入口 / 通知)
  2. 他能完成核心操作闭环吗?(执行路径)
  3. 他的异常场景有出口吗?(错误 / 中断处理)

如果任意一个角色的核心闭环存在空白,就是 P0 断裂点,必须在 MVP 范围里覆盖,不允许带着这类断链上线

以服务方为例,最小可用检查项:

服务方最小可用检查
✅ S1  能收到新订单推送通知
✅ S2  抢单列表能识别该类型订单
✅ S3  有接单操作入口
✅ S4  接单后能看到客户地址 + 联系电话
✅ S6  能更新服务中间状态(取件 / 配送 / 完成)
✅ S7  能确认服务完成

运营侧同理:

运营最小可用检查
✅ O1  有计价 / 参数配置入口
✅ O2  能在订单列表筛选到该类型订单
✅ O4  能对异常订单执行取消 / 退款
正解:产品方案阶段做角色完整性走查

在 PRD 定稿前,对每个非 C 端角色过一遍最小可用检查表。检查表里任何一项空白,就在方案里补上对应页面 / 接口的设计,而不是「先做 C 端,后面再补」。

「后面再补」在实践中等于「上线前紧急补」,而紧急补出来的代码往往是技术债的起点。

一句话外卖

MVP 的最小单位不是「C 端能用」,而是「所有角色的核心闭环都跑通」——哪怕每个闭环只有最基础的路径。