作者 | Shodhan Sheth、Tom Coggrave、Alessio Ferri
老旧系统是阻碍许多企业发展的瓶颈问题。尽管现代化的需求十分迫切,但高昂的成本、繁琐的流程和庞大的时间投入,往往让许多企业止步不前。
在这方面,生成式人工智能可以发挥重要作用。虽然它通常用于客户支持和内容创作,但实际上,生成式人工智能可以加速完成老旧系统现代化过程中的一些复杂环节,尤其是在帮助理解现有系统和填补相关能力缺口方面。通过解决这些问题,人工智能能够帮助团队更高效地推进工作。
这并非空想,我们已经通过实际项目获得了验证。例如,在某个项目中,我们成功帮助客户将老旧代码的反向工程时间缩短了三分之二。这意味着,企业可以迅速夯实基础,进而加快后续发展步伐,实现更大的业务价值。
为什么老旧系统现代化如此困难?
老旧系统现代化究竟存在哪些困难?简单来说,这项工作之所以具有挑战性,是因为它需要团队应对“意外的复杂性”,而这往往会消耗大量的时间和精力。
造成复杂性的原因有很多,主要包括:
- 文档缺失或不完善
- 人员流动导致内部知识丧失
- 多年来不断堆积新流程和需求(但却没有进行重构或清理不必要的部分)
- 缺乏技能应对老旧系统中所用的过时语言和工具
然而,最严重的原因其实是“拖延”。如果忽视了技术债务,老旧系统在没有明确规划和管理的情况下不断演变,最终就会形成所谓的“泥球效应”(big ball of mud)。这意味着,未来将面临更加棘手和痛苦的局面。
因此,生成式人工智能在系统现代化中发挥着至关重要的作用。它能助力解决在现代化项目初期必须应对的复杂问题(比如老旧代码反向工程),从而加速现代化进程。生成式人工智能够将大量的数据转化为更易于处理和理解的信息,这对于处理庞大且复杂的项目尤其重要。
生成式人工智能如何推动老旧系统现代化
生成式人工智能正在推动老旧系统现代化,帮助实现价值,并提升团队的工作效率。通过有效应用生成式人工智能,团队能够节省时间,专注于更具创造性和战略性的任务,从而实现更高的生产力和更大的价值。
更好地理解现有系统,弥补能力缺口
老旧系统现代化的第一步通常是对现有系统进行全面分析,这个过程通常被称为“AS-IS”(现状分析)。
然而,这一步往往充满挑战,因为许多老旧系统通常包括不同年代的各种组成部分或层级。例如,一些老旧的数据库可能已经运行了几十年,但与现代应用程序连接时,所用的编程语言和工具可能在团队内已经没人能理解了。除非系统架构设计得非常规范,否则它往往以一种近乎“随机”的方式不断演化,最终形成十分复杂的结构,导致团队难以理解老旧系统的复杂性及其背后的原因。
以上问题是老旧系统现代化进程中的一个重大瓶颈。例如,Thoughtworks曾与某欧洲汽车制造商合作,在推进现代化项目时,对现有代码库(大约1500万行代码)进行逆向工程遇到瓶颈,导致项目进度落后了9个月。这类逆向工程需要大量领域专家的参与,他们不仅要理解老旧代码,还要将其与实际业务需求对接,而领域专家编制的文档往往让推进项目的业务分析师感觉难以准确理解,增加了沟通的难度。
在这种情况下,借助生成式人工智能对老旧代码库进行深度分析,不仅可以更快速生成文档,而且可以确保文档符合业务分析师的具体需求。
使用生成式人工智能的优势显而易见:它将逆向工程的时间缩短了三分之二。更重要的是,减少了对领域专家的需求,让他们可以腾出更多时间专注于开发未来架构。生成式人工智能不仅展现了在大规模理解复杂系统方面的巨大潜力,还有效弥补了经常在老旧系统现代化过程中暴露的技能和知识缺口。
正因如此,我们需要认识到生成式人工智能在软件工程中的真正价值——它不仅仅是加速代码编写的工具,更是提升沟通、分析和理解效率的得力助手,能够帮助团队成员专注于更具价值的工作。
聚焦未来架构设计
生成式人工智能不仅能够解放软件工程师和架构师的时间,让他们更加专注于设计现代化系统,还能提高设计过程的效率和深度。通过帮助工程师更快理解复杂系统并减少繁琐的工作,生成式人工智能可以直接提升架构决策的质量。
换言之,当你面对一个没有完整文档(甚至根本没有文档)的复杂系统时,生成式人工智能可以帮助你更好地理解该系统,从而做出更加明智的设计决策。
展望未来,我们可能会见证一种工具的诞生,它类似于人工智能编程助手,专门帮助优化架构思维。这类工具不仅能帮助架构师和工程师更轻松地验证设计决策,还能帮助他们更全面地思考问题,降低盲点的风险,确保设计决策符合最佳实践和成熟的架构原则。
需要注意的是,生成式人工智能并不能完全替代设计讨论,但可以让这些讨论更高效。这意味着,团队能够更迅速地完成工作,同时最终产出的架构方案也会更具影响力。
管理风险与提升弹性
启动老旧系统现代化项目往往让人感到不安,因为这感觉是在将自己置于不必要的风险之中。如果现有系统运行良好,为什么要进行重建?但实际上,如前文所述,不进行现代化会让企业面临更大的风险,这既包括安全风险也包括商业风险。
生成式人工智能能够针对系统提供更清晰的洞见,助力降低风险并提升系统弹性。例如,生成式人工智能可以帮助扩展测试用例,大幅缩短人工操作的时间,同时也能帮助评估架构决策是否合理优化。
简而言之,将生成式人工智能作为老旧系统现代化项目的基础,可以让你增强信心,确保系统按照预期运行。从长期来看,随着现代化进程的推进,系统问题将逐步减少,团队的工作效率和生产力也会得到提升。
为老旧系统现代化奠定坚实基础
老旧系统现代化项目总是让人感到压力重重。不过,生成式人工智能可以帮助团队减轻工作负担,让任务变得更加可控,同时满怀信心地加快交付进程。
虽然生成式人工智能已经备受关注,但现在是时候超越一时的热度,深入挖掘其真正的价值了。将生成式人工智能融入软件开发的各个环节,能够释放出巨大的战略潜力,发挥深远且持久的作用。现在就是最佳时机,抓住机会挖掘生成式人工智能的潜力,为企业创造长期价值。