核心问题
PM 如何从“我要这个功能”转向“这个功能的实现代价是什么”?
真实场景
PM 说:“给订单加一个状态就行。”工程师沉默了,因为订单状态影响支付、发货、退款、报表、客服后台和消息通知。
需求在页面上是一行,在系统里可能是一张网。
常见误区
坏判断是:
UI 上只是多一个字段,所以开发也应该很简单。
工程复杂度通常不由页面大小决定,而由系统影响面决定。
工程视角
实现代价来自:
- 数据模型是否要变。
- 状态机是否要变。
- 接口是否兼容。
- 历史数据是否迁移。
- 下游系统是否依赖。
- 测试范围是否扩大。
- 发布是否需要灰度。
PM 可以怎么做
提出需求时同步提供工程需要的上下文:
- 为什么要做。
- 使用频率多高。
- 哪些用户受影响。
- 是否必须兼容历史数据。
- 是否可以分阶段上线。
Atlas Action
每个需求评审前,补一栏:
可能影响的系统对象:数据、状态、权限、接口、报表、通知、历史记录。
小结
PM 的成熟,不是少提需求,而是提需求时能意识到系统代价。
需求越清楚,工程越能做出好判断。