作者:DevOps阿伦
来自:DevOps探路者
5、应该怎样看待技术债
通过上文的描述,我们可以得出这样一个结论,技术债无所谓好坏,它实际上是在特定
情况下所做的一种选择。甚至某种程度上来说,在做选择的那一刻,技术债反而是能被最多
人所接受、多方利益达成相对平衡的一种最佳选择,就像企业经营一样,有的时候,如果不
举债周转,你甚至无法经营下去,同样,有时不选择短平快的解决方案,是无法解决问题的。
然而,技术债肯定不是最佳解决方案,也一定会带来很多负面影响,那么我们应该怎么合理
的对待技术债呢?
①.正视技术债,透明化管理
很多企业对于选择技术债毫不犹豫,但要让他展现技术债的情况就不情不愿了。大概是
因为选择技术债就说明对应的技术、管理、流程方面存在改进的空间,换个说法也可以说是
能力不到位、管理有缺失,这些是家丑,万万不可外扬,传到高层那里,我们还怎么工作,
天天晾晒,员工会怎么看我们组织等等阴暗的心态。技术债这种东西不是说你不暴露出来它
就不存在了,反而因为不暴露,所有人会渐渐淡忘技术债的存在,会习惯于对其闭口不谈,
然后在某一天爆雷。对于技术债,要正视,要进行主动管理和透明化管理,只有每天都把技
术债摆在明面上,让所有人都能看到,才能让所有人心里那根弦绷着,想着我们还欠着债呢,
这样才会有业务连续性的压力,也才会有主动解决技术债的动力。
②.合理举债,非必要不举债
合理举债的意思是,不要彻底否定技术债的积极意义,工作手段要灵活,必要的时候该
欠债就欠债。只要评估在一定时间区间内,技术债带来的短期收益可以覆盖解决技术债的成
本,并且收益盈余较大,那么完全可以举债经营,只要按时还债即可。
非必要不举债的意思是,除非无法马上改进,否则应该改进后再继续进行工作,不要因
此产生技术债并让其流转到下游的工作中去。丰田流水线上,发现问题,普通工人也可以叫
停整个流水线,因为有问题的半成品就摆在哪里,很可能一眼就看出来不行了,继续生产下
去也是质量不合格的零件,组装到汽车上可能会带来极其严重的后果。而信息科技与制造业
不同,技术债一旦欠下,其存在不直观,风险隐蔽,爆发时间滞后,后续追踪难度很大,对
大多数未完成数字化转型的组织来说,与其后续难以追踪,不如一开始就不要举债。
③.有借有还,再借不难
技术债这种东西,很多时候不是你不想欠就可以不欠的,你很可能没有太多的选择。但
当技术债已经欠下,如何还债应该马上提上日程。要在最近的版本内还债,不要让技术债蔓
延至多个版本,保证每一个版本的清洁,从而为自己再次选择技术债提供空间。这是一种有
借有还、再借不难的情况。
而当不自知的情况下背负了技术债,不要抱怨,顺序进行止损、影响评估、根因分析、
跟踪解决、结果验证,去搞定技术债,让系统健康的运行下去,然后才去追溯技术债产生的
源头。不要因为追究技术债是否跟你有关而错过解决问题的时间窗口,导致影响放大,这时
就算跟你没关系,你大概率也要背锅,先解决问题保证自己活下来,再去解决谁的责任的问
题。这也是有借有还、再借不难。
④.积重难返,果断再建
如果历史债务非常沉重,没有人知道问题的根源,只能不断的打补丁,甚至是靠借新还
旧来维持系统运转。此时应果断启动系统重构,无论你是逐个模块重构,还是完整推翻重做,
马上做起来。都说种一棵树最好的时间是十年前,其次就是现在,解决技术债也一样,最好
是一开始就不举债,其次就是现在马上开始。