人工智能与技术债务
人工智能在软件开发中十分实用,但需警惕由此产生的技术债务。
本文要点:
什么是技术债务?
人工智能与技术债务有何关联?
能否利用人工智能管理技术债务?
生成式人工智能的强项在于能够生成海量文本,其中包括程序代码。如果软件能正常运行,这自然是好事。但许多使用者只关心代码能否一次性跑通,几乎不考虑其长期运行效果,也不在意这些代码是否会让日后的功能修改或漏洞修复变得更加困难。
什么是技术债务?
沃德・坎宁安早在 1992 年就创造了 “技术债务” 这一术语,用来指代因程序员、工程师和开发人员的决策,而在业务中持续产生的隐性成本。
首次交付代码就好比举债。适度的债务能加快开发速度,前提是通过重写代码及时偿还……
危险在于债务逾期不还。每一分钟耗费在不够完善的代码上,都相当于在支付债务利息。
无论是否采用面向对象设计,杂乱无章的实现所累积的债务负担,都可能让整个工程团队陷入停滞。
—— 沃德・坎宁安《技术债务》
我们都曾面临工期紧张、为绕过问题而临时拼凑代码等困境,如果时间和工具允许,我们本可以用更合理的方式完成工作。过去这些工作都由人工完成,正如保罗・埃尔利希所言:
人非圣贤,孰能无过;但要把事情彻底搞砸,你还得靠计算机。
—— 保罗・埃尔利希
而如今,生成式人工智能乃至智能体 AI,正在把这种 “搞砸” 的效率推向新高度。
简单来说,技术债务是项目中有意或无意遗留、需要在未来解决的问题。它会持续消耗时间与资金,且成本往往随时间不断攀升。
技术债务的成因多种多样:
工期与时间压力
需求变更或定义模糊
开发流程问题与工作延期
实现逻辑不统一
未遵循最佳实践
过度设计或设计不足
当然,当下 AI 一方面试图解决这类问题,另一方面又在生成大量未经审核就直接上线的代码。
人工智能与技术债务有何关联?
AI 与技术债务关系紧密,既会制造债务,也能用于修复债务。本文主要以软件为例,但技术债务存在于任何产品或服务的开发与部署全流程。
从制造债务的角度来看:AI 与聊天机器人能批量生成远超人工可轻松审核量的软件代码。遗憾的是,AI 生成的内容未必符合行业最佳实践,也未必契合你的实际需求。有利的一面是,软件需要经过编译器编译才能正常使用,这只能解决部分问题;代码的逻辑合理性则是另一回事。由于 AI 和许多开发者习惯复制粘贴代码,加之未遵循最佳实践,技术债务只会不断累积。
从排查问题的角度来看:AI 能够识别、解决问题,如今已被广泛用于定位漏洞、性能瓶颈并给出修复建议。当然,我们也得警惕 AI 给出的解决方案是否比问题本身更糟。
最后,AI 还能辅助提升真实开发者的工作效率:让他们写出技术债务更低的新代码,或借助 AI 更快修复现有问题。
能否利用人工智能管理技术债务?
如前文所述,AI 或许能协助排查、甚至修复与技术债务相关的问题。但使用 AI 工具时必须谨慎,因为它同样可能让问题雪上加霜。
AI 擅长模式匹配与识别逻辑不一致性,因此借助 AI 辅助开发者定位问题、评估遗留问题的潜在成本、计算修改所需投入,会变得更加高效。
但这一过程仍面临诸多挑战:当前大多数 AI 系统迭代速度极快,新版本号称性能更优,底层引擎的变更会导致提示词、工作流程等都需要随之调整。
过度依赖、缺乏监管同样是隐患。因为 AI 的审核与优化流程本身也会产生技术债务,而且正如我们所见,AI 制造混乱代码的速度远比人类快得多。
从积极层面看,智能体 AI 与生成式 AI 能够为开发、审核流程提供工具支持与管理能力,但必须始终保持人工严格监管。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码