先把话说难听点:很多迭代不是慢,是没刹车
我 2022 年带过一个 B 端工单模块,版本从 v2.3 到 v2.7,日活大概 1.2 万,付费客户 600 多家。 v2.6 我们把“导出”从二级菜单挪到一级,又把筛选条件默认收起来,想着减少首屏噪音。 结果上线 7 天,7 日留存从 31.4% 掉到 27.8%,客服工单里“导出在哪”涨了 43%。 这个改动前端只花了 2 人日,但认知迁移成本远大于开发成本。 微信早期迭代可以对照看:1.0 是 2011 年 1 月 21 日,只有文字、照片、设置;2.0 是 2011 年 5 月 10 日,加了语音对讲;4.0 是 2012 年 4 月 19 日,朋友圈来了。 它不是每个版本都堆功能,而是隔几个月押一个能改变使用频次的东西。 这个节奏放到今天,很多团队一周发 3 个版本,反而把用户训练成“别学,反正下周又变”。
我的独立观点:迭代要算“可逆性预算”,不是只排需求优先级
大部分需求评审会都在争 P0/P1,但没人问:这个改动如果错了,多久能退回去? 我把版本改动分成可逆和不可逆两种。 文案、入口位置、默认值、空状态这类可逆,灰度就能验;数据库表结构、权限模型、计费规则、消息协议这类不可逆,一上线就得背半年。 我的土规矩是:每个版本不可逆改动不超过 20%,超过就拆版本,或者先做影子写、双写、开关。 具体参数我会这么卡:1% 灰度跑 24 小时,看崩溃率、核心接口 P95、关键事件上报量;5% 跑 72 小时,看次留和 7 留趋势;20% 跑 7 天,看付费转化和客服工单;50% 再跑 7 天。 别嫌慢。一个日活 1 万的 App,1% 就是 100 人,如果核心转化率是 10%,100 人里只有 10 个转化,波动大到没法看。 想检测 10% 到 12% 的提升,按 95% 置信、80% 功效算,每组大概要 3800 个用户,不是 100 人拍脑袋。
对比大厂和小团队:别抄功能列表,抄回滚机制
大厂迭代看着猛,是因为回滚机制厚。 配置中心、开关平台、热修复、数据库迁移工具、埋点校验,这些不产出功能,但决定你敢不敢发。 小团队往往反着来:需求列表很长,回滚靠“重新发版”,数据库改了没 down 脚本。 我们后来在 v2.7 补了三个东西:所有新入口默认走 feature flag;数据库迁移必须写 rollback.sql;埋点事件上线前用 20 条测试数据跑校验。 就这三条,下一次改版客服工单只涨了 6%。 微信也有“克制”的一面,朋友圈不是 4.0 突然拍脑袋,它前面有 2.0 语音、2.5 查看附近的人、3.0 摇一摇和漂流瓶,都是在试社交关系链的不同切口。 到了 4.0 朋友圈,才把“看朋友动态”变成高频动作。 你可以说这是产品判断,但落到执行层,就是每个版本只验证一个核心假设,而不是一次塞 12 个需求。
用户遇到“改完被骂”时,按这 5 步救火
第一步,先别解释,拉数据。 把改版前 14 天和改版后 14 天的留存、转化、客诉标签拉出来,按新老用户拆,别只看总量。 我们那次发现新用户没掉,老用户 7 留掉了 5.1 个百分点,问题就是入口迁移。 第二步,找“路径断裂点”,用漏斗看从首页到目标动作的每一步,步数增加超过 1 步就要警惕。 第三步,开逃生开关,如果入口位置引起的问题,先把旧入口以“更多工具”形式放回去,别硬扛。 第四步,发定向公告,不要全量弹窗。 第五步,复盘时把“回滚耗时”写进事故报告。 我们后来要求:P0 功能回滚耗时不超过 10 分钟,P1 不超过 30 分钟。
最后说点得罪人的:版本号不是成绩单
我现在看团队迭代,不太看发了多少版本,先看三个数:需求上线后 30 天还在用的比例、回滚平均耗时、每版本不可逆改动占比。 第一个数低于 60%,说明很多功能是自嗨;回滚超过 1 小时,灰度就是摆设;不可逆改动超过 30%,技术债迟早爆炸。 产品迭代不是把 roadmap 填满,而是让用户用更低成本完成原本的事。 如果一次改版让用户重新学一遍,哪怕视觉再好看,也是负迭代。 对了,别迷信“快速试错”这四个字,试错的前提是错得起、退得回。 退不回的迭代,不叫试错,叫赌。