敏捷第16讲:技术债务处理——为了赶进度写的一堆烂代码,现在开始疯狂报错了怎么办?

53 阅读5分钟

如果你真的带团队跑过一个互联网项目,
你一定会在某个时间点,听到这样一句话:

“这个地方当时赶进度,先这么写的。”

通常这句话后面,还会跟着一句更可怕的补充:

“现在好像出问题了。”

这一刻,你不用看监控、不用翻日志,
你心里其实已经有答案了。

技术债,开始来讨债了。


一、先说清楚一件事:技术债不是“程序员偷懒”

在很多公司,技术债被简单粗暴地理解为:

  • 代码写得烂
  • 技术人员不负责任
  • 不按规范开发

但如果你真的参与过项目,就会知道:

大部分技术债,是“被逼出来的”。

它往往诞生在这些时刻:

  • 上线节点死卡
  • 需求频繁变更
  • 测试时间被压缩
  • 项目经理说“先上线,后面再优化”

技术债不是技术问题,是管理决策的结果。

这一点,项目经理必须先对自己诚实。


二、为什么“先欠着”的债,一定会翻倍还?

很多项目经理都抱有一个侥幸心理:

“等项目稳定了,再让技术慢慢还。”

现实通常是:

  • 项目不会稳定
  • 需求不会停
  • 人员可能还会变动

技术债的可怕之处在于,它不是线性增长的。

它会带来三种连锁反应:


1️Bug 密度越来越高

你会发现:

  • 改 A,B 崩
  • 修一个问题,引出三个新问题
  • 回归测试越来越痛苦

因为代码已经不再“可预测”。


2️⃣ 迭代速度反而越来越慢

表面看功能越来越多,
实际上:

  • 每次改动都小心翼翼
  • 开发时间大量消耗在排雷
  • 技术人员开始抗拒改老代码

技术债,会吃掉未来的所有效率。


3️⃣ 团队信心被一点点磨掉

这是最容易被忽略的影响。

当开发反复遇到:

  • “这块不敢动”
  • “历史遗留问题”
  • “谁写的已经不在了”

团队会慢慢形成一种共识:

这个项目,本来就不健康。

而一旦团队不再相信系统,
执行力一定会下滑。


三、项目经理必须面对的现实:现在不是“还不还”,而是“怎么还”

当 Bug 开始集中爆发时,
其实你已经没有“要不要处理技术债”的选择权了。

你真正拥有的,只有三个选项:

  1. 假装没看到,继续堆功能
  2. 一边救火,一边透支团队
  3. 有计划地止血、拆解、重构

前两个,很多团队已经走过了。
结果你也知道。


四、不懂技术的项目经理,最容易踩的三个坑


坑一:一句“抽时间优化一下”

这是技术人员最怕听到的一句话。

因为在现实中,“抽时间”意味着:

  • 没排期
  • 没优先级
  • 永远轮不到

技术债不进计划,就等于不存在。


坑二:把技术债当成“技术内部问题”

你如果说:

“这是技术你们自己解决。”

那你其实是在宣告:

这件事不在项目管理视野内。

而技术债恰恰是最典型的项目风险


坑三:等到系统快挂了才重视

到这个阶段,往往已经变成:

  • 被迫停服
  • 紧急回滚
  • 深夜救火

这时再谈治理,成本已经是原来的数倍。


五、真正可落地的技术债处理思路(项目经理视角)

重点来了。

下面这套方法,不要求你会写代码,
但要求你尊重技术、尊重事实、尊重节奏


1️⃣ 第一步:把“技术债”变成“可讨论对象”

你要做的第一件事,不是解决它,而是看见它

具体怎么做?

  • 让技术列出“高风险模块”
  • 标注:影响范围 / 出错频率 / 修改风险
  • 不追问“为什么当初这么写”

这一步的目的只有一个:

让技术债从“情绪”变成“清单”。


2️⃣ 第二步:区分“致命债”和“体验债”

不是所有技术债都要立刻还。

你需要和技术一起分清:

  • 哪些是会导致系统不稳定的
  • 哪些只是代码不优雅、暂时能跑

项目经理要学会排序技术债,而不是一刀切。


3️⃣ 第三步:把技术债塞进迭代,而不是“另起炉灶”

这是很多团队失败的关键点。

不要搞什么:

  • “技术专项月”
  • “暂停业务两周重构”

现实里很难被接受。

更可行的方式是:

每个迭代,固定比例处理技术债。

比如:

  • 20% 工时
  • 或每个需求必须顺带清理相关债务

这是让系统慢慢回血,而不是突然手术。


4️⃣ 第四步:用 Bug 数据反向说服业务

项目经理最重要的一项能力:翻译能力

你可以这样表达:

  • 过去两周 60% 的 Bug 来自同一模块
  • 修复成本已超过一个新功能
  • 再继续堆需求,风险会指数级上升

这不是技术抱怨,
这是业务风险说明。


六、一个必须讲清楚的真相:技术债不是“清零工程”

很多 PM 会问:

“那技术债什么时候才能还完?”

答案可能不太好听:

永远还不完。

但这并不意味着你失败了。

成熟团队追求的不是“零技术债”,
而是:

  • 技术债在可控范围
  • 新债产生有边界
  • 老债不会拖死系统

这本身,就是管理能力。


七、PM 在技术债问题上的正确站位

你不需要:

  • 指挥技术怎么写代码
  • 决定用什么框架
  • 评判代码优不优雅

你真正要做的是:

在“进度”和“健康”之间,持续做平衡决策。

这比任何技术细节都难。


八、写给正在被 Bug 折磨的你

如果你现在:

  • 每个版本都在修历史问题
  • 团队怨气很重
  • 自己越来越焦虑

请你记住一句话:

技术债不是失败的证明,而是项目真实走过的痕迹。

问题不在于你有没有欠债,
而在于——你有没有开始正视它。


总结一句话

技术债不可怕,可怕的是没人承认它、没人管理它。
不懂技术的 PM,一样可以把技术债管清楚。