背景
我做了 5 年技术产品经理,最近半年反复卡在同一个决策时刻:功能开发 95% 完成、业务方催上线、技术侧说「还差最后 5% 性能优化」(典型是 P99 从 800ms 压到 300ms、内存占用降一档、或某个长尾场景的抖动),但做完要再拖 2-3 周。这个「最后 5%」是排期里最贵、也最容易被政治化的一段——技术侧觉得「不达标不能上」,业务侧觉得「能用了就上」。
热榜上聊得很透的是「上线后怎么调优」(连接池、超时重试、统计信息刷新),但上线前这个取舍时刻,我观察到的团队做法高度分化,且每种都能自圆其说。
常见分歧(我见过的四种做法)
- 达标派:SLO 没到就是没到,宁可延后。逻辑是「上线后再优化 = 用户已经在承受 + 优化代码要在生产压力下做,成本翻倍」。
- 带债派:先上线吃流量,拿到真实数据再优化。逻辑是「95% 的优化方向可能是错的,真实流量下的热点才是真优化点」。
- 分层派:按用户影响分级——C 端核心链路卡 99%,B 端后台/内部工具卡 95%。逻辑是「性能是体验的一部分,不是全局统一的门槛」。
- 预算派:每次上线都写一张「性能债清单 + 偿还期限」,没期限的债不许带。逻辑是「带债本身不坏,无主之债才坏」。
我的倾向与理由
我倾向第 4 种 + 第 3 种的组合:允许带性能债上线,但必须满足两个硬条件——
- 有可观测的护栏:上线时同步部署一个「触发条件」,比如「P99 连续 10 分钟 > 800ms 自动降级 / 告警拉群」,让「带债」不是「裸奔」;
- 有可追责的偿还期限:债清单必须挂在一个具体的迭代里、有一个 owner,而不是「以后再说」。
理由:我复盘过 3 次「带债上线后债被遗忘」的事故,根因都不是「当初不该带」,而是「带了之后没人跟进」。所以问题不在「要不要带」,在「带了之后债有没有主」。把「带债」从一次性的政治妥协,变成一个有 owner 和 deadline 的待办,争议就小很多。
想听大家在什么场景下怎么选
想征集几种具体场景下的判断:
- 场景 A:C 端核心链路(如搜索、下单),P99 离目标还差 30%——带还是不带?
- 场景 B:B 端后台 / 内部工具,性能差但用户是「同事」——门槛怎么定?
- 场景 C:带 AI / LLM 的功能,「性能」还包括成本(token 花费),怎么和延迟一起权衡?
- 场景 D:团队只有 3 个人,没有专职性能 owner,债清单该挂在哪、谁背?
也欢迎直接拍砖:你们团队现在用的是上面四种里的哪一种?有没有踩过「带债上线后债被遗忘」的坑?怎么补救的?
0赞
0收藏
0楼层