在项目初期,几乎没有团队是“主动想欠技术债”的。
真实情况往往是这样的:
- 领导说:「这个月必须上线,不然客户就跑了」
- 业务说:「先跑起来,后面再优化」
- 技术说:「这里先写死,回头再重构」
- 项目经理在中间点头:「行,先过版本」
于是,项目如期上线了。
大家松了一口气。
但你隐约知道——账,已经记下了。
一、先把话说清楚:技术债不是“技术的问题”
很多团队一提技术债,第一反应是:
「这是开发写得不够好。」
这是最常见、也最危险的误解。
技术债的本质,从来不是技术能力问题,而是“决策问题”。
问你几个非常现实的问题:
- 是不是你作为项目经理,同意过这版先不做异常兜底?
- 是不是业务拍板,性能问题下个版本再说?
- 是不是上线节点已经压到没有任何测试缓冲?
如果答案是“是”,那就意味着:
技术债是整个组织共同选择“用未来换现在”的结果。
它不是 bug。
它是被允许存在的风险。
二、技术债是怎么一步步“失控”的?
技术债真正可怕的地方,不在于“欠”,而在于你不知道什么时候开始要还利息了。
阶段一:为了快,合理妥协
这是最常见、也最无可厚非的阶段。
- 单体先不拆微服务
- 表设计先凑合
- 配置写死在代码里
- 没有自动化测试
这个阶段,技术债是被清楚认知的。
大家心里都明白:
这是权衡,不是无知。
阶段二:妥协被“合理化”
问题从这里开始变味。
- 反正也能跑
- 一直也没出什么大问题
- 现在动它风险更大
这时候,技术债开始从“暂存”变成“默认状态” 。
更糟的是:
- 新人进来,只能在旧结构上继续堆
- 每一次修改,都要“顺手补丁”
你会发现:
项目速度开始变慢,但没人能明确说出原因。
阶段三:利息开始爆发
某一天,你会听到这些话:
- 这个需求其实很简单,但不敢动
- 一改 A,B、C、D 全炸
- 回归测试要一周
- 线上问题只能靠人肉盯
此时的技术债,已经不再是“技术问题”,而是:
- 发布风险
- 团队焦虑
- 项目经理不敢排需求
- 老板开始质疑效率
你不是没在还债,而是只还了利息,从没动过本金。
三、项目经理必须认清一个残酷现实
技术债无法一次性清零,只能“被管理”。
所以这讲的重点不是“怎么消灭技术债”,而是:
如何体面地偿还,而不是被它拖死。
四、第一步:先停止继续“借新债”
很多团队的致命问题是:
一边喊着要还债,一边继续制造新债。
作为项目经理,你至少要守住三条底线。
1️⃣ 高风险模块,禁止“先上再说”
这些场景,不允许再欠债:
- 支付 / 账务
- 核心数据写入
- 权限与安全
- 对外接口协议
哪怕进度慢一点,也要守住。
不是因为“技术洁癖”,而是因为:
这些地方一旦炸,代价是指数级的。
2️⃣ 把“临时方案”写进明面规则
真正成熟的做法是:
-
临时方案 ≠ 默认方案
-
必须:
- 标注 TODO
- 记录原因
- 约定清算条件
否则,临时一定会变永久。
3️⃣ 项目经理要敢问一句“这债我们认吗?”
评审会上,项目经理可以不懂代码,但必须问:
- 这是权衡,还是偷懒?
- 风险在哪里?
- 后续要不要补?
这不是为难开发,而是为未来的自己留证据。
五、第二步:把“技术债”从情绪问题,变成管理对象
技术债最糟糕的一点是:
它经常以“抱怨”的形式存在。
- 开发说:代码太烂
- 测试说:改不动
- PM 觉得:大家都在发牢骚
如果你不把它结构化,它就永远只是情绪。
技术债也需要“产品化管理”
你可以这么做:
1️⃣ 技术债清单化
不是一句“我们有很多债”,而是:
- 哪个模块?
- 什么问题?
- 带来什么后果?
- 不解决的风险?
哪怕只是 Excel,也比“心里有数”强。
2️⃣ 给技术债分级
不是所有技术债都值得立刻还。
你可以粗暴分三类:
- 致命债:不还会出事故
- 效率债:拖慢研发
- 体验债:影响质量但可忍
项目经理的职责,是帮团队决定“先还哪笔” 。
3️⃣ 技术债也要进排期
如果技术债永远排在“有空再说”,那它就永远不会发生。
成熟团队的共识是:
每个迭代,都要预留“还债额度”。
哪怕只占 10%。
六、第三步:如何“体面地还债”,而不是推倒重来?
很多 PM 一听还债,第一反应是:
要不要重构?
这是非常危险的想法。
重构不是还债,是一次高风险投资。
1️⃣ 不要“大扫除式重构”
真实世界里,很少有:
- 时间充足
- 人员稳定
- 需求冻结
所以更可行的是:
“边走边修,分段偿还”。
2️⃣ 用业务机会“顺手还债”
这是最现实、最容易被接受的方式。
例如:
- 改需求时顺带拆耦合
- 新接口替换旧逻辑
- 新页面不用旧组件
不要单独卖“技术债”,要绑定“业务收益”。
3️⃣ 明确“还到什么程度算够”
技术债不是追求完美。
你要和技术一起达成共识:
- 目标是“可维护”
- 而不是“优雅”
- 更不是“技术理想国”
七、最后一段,写给项目经理的真心话
如果你只记住这一讲的一句话,我希望是这句:
技术债不是羞耻,而是不被承认的技术债才是。
一个成熟的项目经理,不是“从不欠债”,而是:
- 知道什么时候借
- 清楚借了多少
- 明白什么时候还
- 能为当初的选择负责
项目不是输在“当年跑得太快”,
而是输在:
后来你假装那次妥协从未发生过。