解决技术债务问题的6大技巧

责任编辑:cres

作者:Mary

2025-05-09 14:30:05

来源:企业网D1Net

原创

CIO必须像清理IT堆栈中阻碍业务战略、带来安全风险并增加预算成本的遗留组件一样应对技术债务,技术债务清单的坚定支持者建议IT领导者列出关键技术债务清单,了解这些技术债务对业务的影响,并制定解决流程。

世界上没有完美无缺的事物,软件代码也不例外。

事实上,大多数程序员都没有足够的时间来编写近乎完美的代码。在快速部署的压力下,他们常常会发布一些存在问题的代码,知道这些代码未来需要修复。

这就产生了技术债务。

“从代码的角度来看,我们看到了大量的技术债务。程序员更倾向于速度和创新,他们实现的代码并没有经过充分的质量保证测试,这会在未来引发问题,”数字服务公司West Monroe的合伙人Nate Buniva表示。“这种情况越来越普遍。”

尽管“技术债务”这一术语有时被用于指代任何过时的IT系统,并常被视为与“遗留技术”同义,但技术债务最初特指代码债务,在许多技术圈内仍然如此看待。

然而,正如CIO必须清理IT堆栈中阻碍业务战略、带来安全风险并增加预算成本的遗留组件一样,他们同样必须应对技术债务。

不这样做的代价可能很高,根据2022年最新的一项研究,仅在美国,软件质量不佳的成本就高达2.41万亿美元。

鉴于这一现实,人们呼吁CIO们实施实践措施来控制技术债务。以下,经验丰富的技术领导者分享了他们用于削减技术债务的六大策略。

1. 通过分析来衡量技术债务

Info-Tech Research Group基础设施与运营实践研究总监Andrew Sharp是技术债务清单的坚定支持者,他建议IT领导者列出关键技术债务清单,了解这些债务对业务的影响,并制定解决流程。

Sharp和其他人表示,许多CIO往往在这三个基础问题上做得不够。

“最大的挑战之一就是理解和整理技术债务的范围,”Sharp解释说,IT团队在了解技术债务的数量和影响方面存在困难,“因为它分散在不同的系统中,会产生连锁反应。”

但Sharp表示,就像今天商业中的大多数事情一样,如果不进行衡量,债务就无法得到有效管理。他补充说,IT需要更好地识别、跟踪和衡量技术债务。

“IT总是知道问题在哪里,哪些‘壁橱’里藏着‘骷髅’,但通常没有正式的分析,”他说。“我认为,采用结构化的方法来审视这个问题,可以让我们思考以前未考虑过的事情。因此,不仅仅是知道我们有问题,而且要知道具体是什么问题,并理解其影响,可见性至关重要。”

不过,Sharp警告说,不要跟踪每一项技术债务,而是强调需要跟踪那些打算修复的债务。

2. 不要对AI生成的代码掉以轻心

IT领域乃至整个企业的员工都在使用GenAI来编写代码。一些研究发现,GenAI可以略微提高代码质量,然而,提供软件设计和交付以及咨询服务公司Thoughtworks的首席AI官Mike Mason表示,大多数企业可以预期“在未来一两年内会看到大量平庸的软件”。

“AI能让你快速编写代码,但人们似乎更擅长编写新代码,而不是修复它,”他说,并指出太多平庸的代码未经专家开发人员审查或自动化质量保证检查就被投入生产。

“我们预测,企业会陷入麻烦,他们会更快地推出更多功能,但这会导致代码膨胀,进而产生更多技术债务和遗留代码。”Mason补充道。

这并不意味着员工不应该使用AI进行编码,Mason说。相反,企业应确保拥有相应的流程和工具——包括AI增强的工具——以确保不会让大量质量低劣的代码溜过。

3. 对技术债务实施治理

Buniva表示,大多数企业都对其软件开发计划有一定的治理措施,但许多治理计划并不像它们应该的那样强大,也不够详细,无法指导团队如何在速度与质量之间取得平衡——这一事实在AI增强的代码生产速度加快的情况下变得更加明显。

“治理跟不上GenAI的发展速度,”Buniva说。“你需要一个适合GenAI的治理体系,它不会减缓创新速度,但也不会允许产生大量技术债务。”

Buniva表示,一个良好的治理计划应设定测试和质量保证的要求,并指定何时应由人工介入而非自动化质量保证决策,它还应解决培训需求,以确保任何开发代码的人员都了解相关标准。

4. 优先偿还技术债务

与更广泛的遗留技术一样,代码债务也是不可避免的,因此永远无法完全偿还。

因此,IT高管Rishi Kaushal优先修复最棘手的部分——那些可能给公司带来最大损失的部分。

“你不想把时间和金钱花在修复那些需要很长时间和大量资金但修复后并无价值的技术债务上。”身份和安全解决方案提供商Entrust的CIO Kaushal说。

他专注于解决可能带来安全风险或在用户体验中产生摩擦的技术债务——这也是他对整个遗留技术所采取的方法。

“有些技术债务是可以接受的,可以保留,因此,你必须决定哪些技术债务是你能够容忍的,同时让其他事情变得更好。”他补充道。

专业服务公司毕马威的全球技术、媒体和电信业务负责人Mark Gibson提供了类似的策略,建议在处理任何遗留技术(包括代码债务)时采取“超级有针对性的主动投资和快速调整策略”。

他说,大多数CIO都知道这些痛点在哪里。他指出,毕马威2024年全球技术报告中的调查结果显示,57%的受访企业领导者表示,他们基础IT系统中的缺陷每周都会干扰正常业务运营。

修复这些有问题的系统是一个好的起点,Gibson说,并补充说CIO们可以利用日志和对IT员工的调查来确定其他应该优先修复的问题。

在争取支持以解决技术债务时,IT领导者应该向高层管理人员说明技术债务是一种业务风险。

5. 设定具体目标

施耐德电气北美地区高级副总裁兼CIO Bobby Cain必须在2025年底前削减12%的遗留技术。“我们有明确的目标状态。”他说。

拥有具体目标为Cain和他的团队提供了明显的动力,促使他们实现系统现代化,并在此过程中解决任何有问题的代码。

为了实现这一目标,Cain制定了一项多管齐下的策略,包括列出并衡量当前状态,以便他了解遗留技术/技术债务的位置,以及确定优先级和规划行动。

尽管这类工作是任何良好运行的IT职能的基础,但Cain承认,设定一个既定目标能让团队保持紧迫感。正如他所说,“没有强制力,你就无法推动变革。”

6. 认识到债务管理是一个持续的过程

美国国家农村电力合作协会(National Rural Electric Cooperative Association)的CIO兼IT高级副总裁Wayne F. McGurk并不认为技术债务是好是坏,而是将其视为“开发过程的自然结果,因为正在构建新东西”。

“人们倾向于尽快推出最小可行产品(MVP),而不一定在一开始就构建一个过于工业化的应用程序,”他说。团队会做出权衡,选择适用于MVP的技术,但他们知道这些技术在解决方案扩展时将不足够。

因此,McGurk不仅将其纳入开发周期,还纳入IT运营中,采用各种策略来创建一种持续管理技术债务的整体方法。作为这种方法的一部分,McGurk的团队会记录并详细说明任何新引入的技术债务,然后通过企业的工单系统进行跟踪,以便IT团队“能够将其全部拉取上来,进行报告和查看”。

McGurk还考虑每项技术债务如何在五个关键领域影响运营:简单性、灵活性、连续性、安全性和透明度。

“当技术债务开始阻碍任何这些运营原则时,那么它就达到了我们需要解决的程度。”他解释说。

McGurk和他的IT团队会考虑影响程度、对企业的风险以及企业的整体战略,然后确定需要关注的事项,然后,他们会公布这些决定,从而在整个企业中提高对这一问题的可见性。

McGurk表示,所有这些都纳入了他IT部门的工作流程中,确保管理技术债务不会被视为一次性项目,而是以持续的方式进行管理。例如,他的Scrum团队被期望识别新的技术债务,并确定何时以及如何解决它。

“你必须建立问责和责任的文化,这样你的团队就会知道,仅仅因为项目交付了,并不意味着就完成了。这是一个旅程,没有终点,因此它成为你需求管理策略的一部分——既要处理新工作的需求,也要处理遗留工作和技术债务的需求。”他说。

企业网D1net(www.d1net.com):

国内主流的to B IT门户,旗下运营国内最大的甲方CIO专家库和智力输出及社交平台-信众智(www.cioall.com)。旗下运营19个IT行业公众号(微信搜索D1net即可关注)。

版权声明:本文为企业网D1Net编译,转载需在文章开头注明出处为:企业网D1Net,如果不注明出处,企业网D1Net将保留追究其法律责任的权利。

链接已复制,快去分享吧

企业网版权所有©2010-2025 京ICP备09108050号-6京公网安备 11010502049343号