你的团队,有4个人在给烂代码打工
你的团队每次发版,是不是都要花两天”修环境”?
配置文件改了,本地能跑但测试环境挂了——经典的”在我电脑上没问题啊”。依赖版本升了,编译过了但运行时报错,就好像你精心打扮出门,结果裤子拉链没拉。数据库脚本跑了一半卡住了,因为上次有人手动改过线上表结构没告诉任何人——这个”有人”大概率已经离职了,他留下的不是代码,是悬案。
你心里清楚这些问题出在哪——技术债。你甚至能精确定位到是哪个模块、哪段代码、哪个当年”先这么搞着,下周再改”的决定埋下的坑。程序员嘴里的”下周再改”,跟健身房年卡上的”明天开始”是一个意思——买的时候信誓旦旦,到期了一次没去过。
但当你走进老板办公室,说”我们需要两周时间还技术债”的时候,对面的反应永远是:
“先把需求做完吧,下个版本再说。”
你气得想掀桌子。但真相可能让你更不舒服——不是老板不懂,是你没说对语言。
你在用技术语言,说一个商业问题
“技术债”这三个字,对程序员来说画面感十足——你立刻能联想到那坨被注释包围的祖传代码,上面写着”// 不要动这里,动了会出事”,像古墓门口的封条。还有那个跑了三年没人知道为什么能跑的定时任务,整个团队对它的态度就像对待一只睡着的老虎——别出声,别靠近,千万别碰。
但老板听到”技术债”的时候,脑子里的画面是完全不同的频道:又要花时间,又没有新功能产出,又不能跟客户交代,又不能写进下季度的OKR。你俩说的是同一件事,但用的是两种语言,就像你跟一个不懂编程的人解释”递归”——你说了十分钟,他点头说”哦,就是套娃嘛”。
你说”系统架构需要重构”,老板听到的是”要花钱但看不到效果”。你说”代码耦合度太高”,老板听到的是”技术人员又在用黑话要资源了”。你说”再不还技术债就要出大问题”,老板听到的是”狼来了”——因为你去年也这么说过,结果系统不也照样跑着?
问题从来不是老板不重视,而是你把一个财务问题包装成了技术问题。 你跟CFO汇报的时候不会说”我们的现金流Throughput遇到了Pipeline瓶颈”吧?那你为什么要跟老板说”我们的微服务架构需要解耦”?
10个人的团队,4个人在给烂代码打工
McKinsey有一份调研数据经常被引用:大型企业的IT预算中,大约40%花在了”维持现有系统正常运行”上。
40%。
翻译成人话:如果你的团队有10个人,其中4个人的工作时间没有在创造任何新价值——他们在修老bug、绕老问题、维护老系统、处理老接口的兼容性。他们不是在盖新楼,他们在给一栋摇摇欲坠的老楼补裂缝。
而且这个比例还在涨。因为技术债有一个比信用卡更恶心的特性:它的利息不是固定的,是复利——而且没有账单提醒你。
今年你的团队花20%的时间在处理技术债的”利息”——修bug、修环境、绕已知问题。你觉得还能忍,就像信用卡欠了五千块,每个月还个最低还款额,感觉”也没多少嘛”。但你没注意到的是,因为这20%的时间被占用,新功能开发变慢了,产品经理开始催了,为了赶deadline你又写了一坨”先这么搞着”的代码——恭喜,你又刷了一笔新的技术信用卡。
明年这个比例变成30%。后年40%。就像那个只还最低还款额的信用卡,三年后你打开账单发现:当初刷的一万块,现在连本带息变成了三万。而你这三年每个月都在还钱,一分钱没少还,但本金一分没动过。
技术债的可怕之处在于:你的团队每天都在加班,每天都很忙,但产出却越来越少。 所有人都在跑步,但没有人往前。

给老板算一笔账:不说技术,只说钱
问题说清楚了,但光说”技术债很严重”没用——老板每天听到的”很严重”的事情能绕公司跑三圈。你需要换一套武器:不跟他聊技术,跟他聊投资回报。
想象一下这个场景。你走进老板办公室,没有提”重构”两个字,而是说:
“老板,我算了一笔账。上个月订单系统出了6次线上问题,每次平均2个人修半天,加上发版那两天修环境,一共烧了15人天。如果给我2周时间做一次定向优化,以后每个月至少省8人天。投入10天,1个多月回本,之后每个月净赚8天产能。”
老板的眼神变了。因为你说的不再是”技术债”,而是”每个月白烧15天的工资”。
这个话术的核心就三步:
第一步:翻工单,算”利息”。 把上个月这些时间加起来——修老bug、修环境、为了绕开已知问题多写的代码、因为”不敢改那块”而绕路的开发时间。这个数字就是你每月的利息支出。别估,翻工单,数字要经得起追问。
第二步:找到最贵的那张”信用卡”。 利息支出最大的那个模块,估一下做定向修复要多久。注意是定向修复,不是推倒重来——老板听到”推倒重来”四个字就会送客。
第三步:算回本周期。 每月省的人天除以投入的人天。如果1个多月就能回本,之后月月都是净赚——你去问问老板,他手上哪个项目的ROI比这个高?

别高兴太早——这三个坑等着你
有了话术就能说服老板?没那么简单。我见过太多人拿着一套漂亮的数字走进会议室,然后灰头土脸走出来。因为他们踩了这三个坑:
第一个坑:数字不要编。
“大概”“差不多”“感觉上”——这些词一出口,可信度归零。老板又不傻,你说”大概浪费了十几个人天”,他心里翻译的是”这人在瞎编”。你需要具体的工单编号、具体的git commit记录、具体的发版延迟小时数。不够精确没关系,但必须经得起追问。老板最怕的不是数字大,是数字假。
第二个坑:别想一口吃成胖子。
你跑去跟老板说”我们需要三个月全员停下来还技术债”,他会用看疯子的眼神看你。正确的姿势是找到ROI最高的那一个模块,先拿一个小胜利。你用2周搞定了一个每月烧15人天的问题,老板自然会追着你问:还有没有类似的?恭喜,你从”要资源的人”变成了”被追着规划的人”。这个身份转换比任何PPT都管用。
第三个坑:管住嘴,别说行话。
“重构”“解耦”“微服务化”——你觉得每个字都很重要,但在老板耳朵里跟念经没区别。他只关心三个数字:花多少、省多少、多久回本。把你的技术方案翻译成这三个数字就够了,其他的你自己把控。记住,你是去谈投资的,不是去做技术分享的。

那两天的”修环境”,是你的信用卡账单
回到开头说的那两天”修环境”。
那不是什么”必要的发版流程”——它是你的技术信用卡账单。
信用卡不还,银行会催收、会上征信、会让你坐不了飞机。技术债不还,不会有人催你——它只会让你的团队越来越慢、越来越累、越来越多的时间花在”维持现状”而不是”创造价值”上。直到有一天,一个本来三天能做完的需求要三周,老板终于问出那句话:”为什么这么慢?”
但那时候再还债,成本已经翻了十倍。
所以别等到那一天。今天下班前就干一件事:翻翻你上个月的工单和bug列表,把那笔”利息”算出来。不用很精确,大差不差就行。然后约一个老板的15分钟,把数字摆到他面前。
记住三句翻译口诀:
不说”技术债”,说”每个月白花了多少钱”。
不说”需要重构”,说”投入10天,1个月回本”。
不说”架构有问题”,说”10个人里有4个在做重复劳动”。
用老板的语言说老板关心的事。你会发现,他不是不愿意还债——他只是一直在等一个人,用他听得懂的方式,告诉他这笔账到底有多大。