对公司内部还在生产环境中正常使用的老软件请不要说“遗留软件”系统,而要说“传承”系统.我在宝马公司工作,入职时就被告知不要用“legacy”(遗留)这个词来描述我们老的应用软件系统,而要用“heritage”(传承)这个词,因为“legacy”(遗留)这个词带有负面含义。我坐下来仔细想了想,意识到“遗留软件”这个词实际上非常有害。改变我们谈论现有应用软件的方式我们谈论软件系统的方式深刻地影响着开发团队的文化以及我们对所维护代码的认知。几十年来,“遗留软件”一词一直占据着我们的词汇,并且往往带有浓重的负面含义。它暗示着老旧、缓慢、笨重,以及应该被替换而不是被尊重。是时候对语言表达进行升级了。我们不应再将早年开发的基础系统称为“遗留软件系统”,而应采用“传承软件系统”这一术语 。 这一简单的改变,就能将叙述重点从义务和负担,转变为价值、历史和战略意义。为什么我们必须停止使用“遗留软件”在软件领域,“遗留软件系统”一词的主要问题在于其固有的负面含义。通常,遗留系统指的是遗留下来的义务或经济负担。在开发领域,这意味着:隐含技术债务:它表明系统从根本上来说是坏的、代码编写得很差的,或者充满了缺陷——即使它是你公司拥有的最稳定、最赚钱的系统。维护人员士气低落:负责“遗留软件”系统的开发人员常常觉得自己的工作不如那些参与“全新软件”项目的人员有价值或令人兴奋。这会导致关键系统士气低落和人员流动率升高。鲁莽重写的理由:当一个早年开发的老软件被贴上“遗留系统”的标签时,管理层更容易为代价高昂、风险巨大且往往不必要的彻底重写找到理由,而不是选择有条不紊的重构和迭代改进。正如马丁·福勒(Martin Fowler)的名言:“遗留代码就是没有测试的代码。” 问题不在于代码的年代,而在于其缺乏可维护性。耻辱感和恐惧:新开发人员面对“遗留软件”代码时会感到担忧,认为他们即将面对的是一团乱麻般的代码,而不是从多年的业务逻辑实现中学习的机会。“传承软件”的力量改用“传承软件系统”一词 ,可以重新定义围绕现有软件资产的讨论,并引入几个强有力的积极概念:注重价值和可靠性“传承软件系统”是指经受住了时间考验的申请。它代表着数年甚至数十年的:经过时间验证的业务逻辑:它包含了您业务运营的核心和来之不易的知识。其功能经过多年实战检验,值得信赖。高稳定性:它能够持续稳定地运行关键任务。你不会替换那些运行良好且能盈利的传承软件系统。战略基础:它是所有新功能和系统构建或集成的可靠基石。尊重历史和工艺“传承”一词体现了开发人员多年来构建和维护该系统所展现的技能和奉献精神。它将关注点从人们感知到的缺陷转移到:知识产权:它承认代码中包含的巨大智力投入。精通:它鼓励开发人员将系统开发视为掌握复杂领域知识的机会,而不是与过时问题进行一场注定失败的斗争。一条通往现代化而非毁灭的道路使用“传承”一词鼓励人们树立一种发展和保护的思维模式 ,而非单纯的破坏。讨论的焦点也随之转移:旧(遗留软件):“我们如何摧毁这个系统?”新(传承软件):“我们如何在保持整体已证明的稳定性的同时,对最关键的组件进行战略性现代化改造,以满足当前的需求?”通过这种简单的语言转变——从贬义的“遗留软件”到重视的“传承软件”——我们培养了一种更健康、更尊重的发展文化,这种文化注重管理而不是遗弃。