智汇 IT
城启新篇

技术债量化与偿还计划别等系统崩了才算账

没人能说清欠了多少

上个月跟一个做SaaS的朋友吃饭。他吐槽,说他们后端团队又炸了。凌晨两点,支付回调超时,牵扯出一个埋了三年的坑。老板第二天在群里问:这技术债到底有多少?能不能给个数? 群里安静了十分钟。 没人吭声。 不是不想答,是真答不上来。你说十四个模块有代码重复?这算几块钱?你说那个祖传的服务没人敢动?那又值多少? 技术债这词儿造得特别好。债嘛,可以借,可以还,有本金有利息。但问题是——大部分团队只记了个流水账,没做过资产负债表。没有量化,还款计划就是一句空话。 所以每次聊起重构,都像在说一件凭良心做的事。靠情怀,靠某个技术负责人的执念。这不靠谱。真的不靠谱。
软件开发团队技术债务看板示例
软件开发团队技术债务看板示例

把利息算出来

那怎么量化?我聊过几个团队,发现有个思路挺实用。不追求财务级别的精确,追求——方向感。 什么意思? 就是把技术债换算成三种利息。 第一种,变更成本。同一个需求,在健康模块改要两天,在腐化模块改要两周。这多出来的八天就是利息。你记录这个数,比记录什么圈复杂度有用得多。 第二种,故障频率。某个服务平均每个月出一次P1,每次灭火要卷进去三个人。一年算下来,光加班费就不少。更别说用户流失。 第三种,认知负担。这块虚一点,但可以侧面量。新人上手那个模块需要多久?问三个人,取中位数。超过一个月的,基本就是高危区。 你看,这三个指标不用买任何昂贵工具。Excel就能记。麻烦的地方在于——你得坚持记。 顺便说一句,很多团队喜欢用静态扫描工具。SonarQube那一套。代码异味数量、重复率、覆盖率。有用吗?有点用。但工具给的是技术视角的病情,不是业务视角的代价。你拿重复代码块有三百处去跟产品经理聊排期,人家没有感觉的。你得说:因为这块逻辑散落在四个地方,这次改价签功能,测试要全覆盖,多花五天。 这才叫量化。
代码重构前后复杂度对比示意图
代码重构前后复杂度对比示意图

还款不是大跃进

还款不是大跃进
还款不是大跃进
量化完了,怎么还? 我见过最惨的,是全组停工一个月搞重构。前三周很爽。代码清爽了,架构解耦了。第四周产品经理疯了——需求全堆着。第五周老板也疯了。 后面的事你也猜得到。重构到一半,业务催得急,草草收场。新代码和旧代码混着,债不但没还,又添了一笔。 所以别搞运动式还款。 我比较认同的思路是——把偿还动作切成小块,塞进日常迭代。 具体怎么做? 比如每个迭代拿出百分之十到二十的容量。不要多。处理哪些债?就处理那三个利息最高的。改完之后,把利息指标再测一遍,看有没有降。 这个动作的关键是可见。别偷偷还。要在迭代评审的时候,把这个利息的变化讲给产品听。让产品知道:这一周我们花了三天堵窟窿,但是下个月同样类型的需求,我们可能能快两天。 产品不傻。他们只要能理解因果,大部分是愿意给这个空间的。 还有个招,叫触碰即偿还。谁改到那个烂模块了,顺手做点小重构。别想着一次改完。改个变量名,抽个函数,补个测试。像滚雪球。 说实话,很多技术债根本不会一次还清。有些模块就是历史包袱,跟着业务一起退休就行了。你要做的是防止它继续恶化,而不是非得把它擦得锃亮。

别让表格躺在那里睡觉

别让表格躺在那里睡觉
别让表格躺在那里睡觉
最后说一个坑。 很多团队量化的过程挺认真,表格做得也漂亮。但是——做完就放那了。下个季度再问,数据还是三个月前的。 那还不如不做。 我个人的建议是,别追求大而全。就选三五个核心系统,选上面说的那三类指标。每周花半小时更新一下。更新的时候不用很精确,大概就行。 因为量化的目的不是为了汇报,是为了做决策。 你有了这组数,就知道重构该先啃哪块骨头。你就知道版本迭代要不要多留点缓冲。你就知道跟老板要资源的时候,手里有牌。 技术债这东西,本质上是过去的选择让未来的自己背了贷款。量化就是看账单,还款就是分期。没什么玄学。 不过话说回来。你要是团队里连个愿意坚持记数的人都没有…… 那可能才是最大的技术债。
免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:技术债量化与偿还计划别等系统崩了才算账
文章链接:https://www.itcdj.com/news/850.html