技术评审里「架构优雅」到底值几个 sprint?PM 和工程师各算一本什么账?
帖子正文与楼层回复。
先说背景,免得大家各说各话。
我做了 5 年技术 PM,带过两个 8 人以上的后端团队。每次迭代评审,最让我头疼的不是"这个需求要不要做",而是下面这个反复出现的拉锯:
工程师说"现在不做,后面要还三倍的技术债";我说"用户下个月就要用,先跑起来"。到底谁对?
我列一下我亲眼见过的三种典型分歧场景,大家看看你们团队是哪种:
场景 A:重构 vs 赶工。 支付模块要从单体拆成 3 个服务,工程师说"不拆的话,下季度加第 4 个支付渠道要改 6 个文件、联调 2 周";我说"这个季度只有 2 个渠道,拆完要 1.5 个 sprint,用户等不了"。最后折中:不拆,但加了一个适配层,多花了 3 天。半年后加第 4 个渠道,适配层确实省了 1 周,但多引入了一个"隐形依赖",有一次线上事故根因就在那。
场景 B:换技术栈 vs 将就。 数据看板项目,现有框架渲染 2 万行数据要 4 秒,用户投诉。工程师想换一套新框架(学习成本约 2 周),我说"用虚拟滚动先顶 1 个月"。结果虚拟滚动上线后,用户说"能用了但转着圈看数据不舒服",NPS 掉了 12 分。后来还是换了框架,总共多花了 3 周。
场景 C:抽象 vs 复制。 三个业务线各有一个"审批流",逻辑 80% 相同。工程师想抽一个通用引擎(约 1 个 sprint),我说"三个都先各自跑,跑通再抽"。结果三个版本各跑了一个季度,差异从 20% 长到了 45%,最后抽引擎花了 2.5 个 sprint,比一开始抽多花了一倍。
我现在的倾向和判断框架(先放这儿当靶子):
我用一个"翻车概率 × 翻车代价"的矩阵来决定"架构优雅"值几个 sprint:
- 翻车概率 > 30%(团队 > 3 人同时改、迭代 > 2 个)且翻车代价高(线上事故、资损)→ 先做架构,哪怕砍一个 P2 需求;
- 翻车概率 < 10%(只有 1 人维护、只跑 1 个迭代)→ 先跑起来,但必须留一个 0.5 天的"还债窗口"写进下个 sprint 的排期,不是"以后再说";
- 最关键的数字:我统计了 2 年里 30 次"先跑起来"的决策,其中 18 次(60%)在 3 个月内被证明是对的(业务方向变了,架构白做了),12 次(40%)在 6 个月内还了债,平均多花 0.8 个 sprint。所以"先跑起来"不是免费的,它是一张 40% 概率要兑现的欠条。
但我也知道很多团队是反过来的:他们团队小(3-5 人)、迭代快(双周)、业务方向稳定,"先优雅后跑量"反而是对的,因为"还债"的成本远小于"赶工"的成本。
想请大家聊三件事:
- 你所在团队(或你带过的团队),"架构优雅 vs 先跑起来"的决策权在谁手里?PM、Tech Lead、还是架构师?这个权力分配是合理的吗?
- 你有没有一个"当初为了赶工跳过了某个架构决策,后来付出 3 倍以上代价"的具体案例?最好能带数字(多花了几个 sprint、影响了几个人、有没有线上事故)。
- 反过来,你有没有"当初坚持先做架构,结果业务方向变了、架构白做了"的案例?你怎么跟团队解释这个"沉没成本"的?
欢迎来拍砖,我先把我的 60%/40% 数据和"0.5 天还债窗口"放这儿当靶子。