“摆脱 COBOL 要花多少钱?”是每个董事会最先提出的问题,而诚实的答案是:它取决于的因素远不止代码库的规模。本指南拆解在英国真正驱动 COBOL 迁移成本的要素、切合实际的预算与时间表区间,以及那些把一个规划良好的项目变成超支的风险。

要点速览(TL;DR)

  • 英国中等规模的 COBOL 迁移通常花费 200,000800,000 英镑,耗时 12 年;完整的大型机退役则高达数百万英镑并持续多年
  • 成本受代码库复杂度、未记录的业务逻辑以及数据访问层重新设计的影响,远大于单纯的代码行数
  • 目标语言和迁移方式的选择会实质性地改变预算
  • 项目超支最常见的原因是低估范围,尤其是未记录的业务规则和数据访问层

真正驱动 COBOL 迁移成本的因素

代码行数是标题数字,但单凭它是一个薄弱的预测指标。真正的成本驱动因素是:

复杂度,而不仅仅是规模。 由整洁批处理程序组成的 100,000 行系统,比密布着 EXEC CICS、动态 CALL 和错综复杂 REDEFINES 的 50,000 行系统更便宜迁移。同等规模下,事务处理系统的成本高于批处理系统。

未记录的业务逻辑。 COBOL 系统常常承载着 30 到 40 年嵌入代码、却没有外部文档的业务规则。重新发现并验证这些规则,往往是单项中最大且最难预测的费用项。

数据访问层。 针对 DB2 的 EXEC SQL 和 VSAM 文件处理很少能自动转换。它们必须在目标平台的数据访问技术上重新设计,这通常是继业务逻辑发现之后最大的工作项。

数据格式转换。 压缩十进制(COMP-3)、EBCDIC 编码和定宽布局都需要显式映射,并用真实数据进行测试。

目标语言与方式。 它们以可预测的方式改变预算(下文详述)。

测试与切换。 构建一套证明输出一致性的回归测试套件,并执行带回滚的安全切换,是一项真实且绝不琐碎的工作量,缺乏经验的估算往往忽略它。

参考性成本与时间表区间(英国)

这些区间涵盖分析、迁移、测试和上线支持。它们不包括持续的运营成本、培训,以及项目中途常常浮现的下游集成工作。

系统规模方式估计成本典型时间表
小型(< 50,000 行)并行重写80,000 至 200,000 英镑3 至 9 个月
中型(50,000 至 500,000 行)Strangler fig200,000 至 800,000 英镑12 至 24 个月
大型(500,000+ 行)自动化 + 增量重构500,000 至 2,000,000+ 英镑2 至 4 年
遗留大型机退役完整项目1,000,000 至 10,000,000+ 英镑3 至 5 年+

请将它们视为规划区间,而非报价。一份合理的估算需要代码评估;每个区间内部的差异由上述复杂度因素决定。

目标语言如何影响成本

目标语言同时改变工作量特征和长期持有成本。大致而言:

  • Python 天然契合 COBOL 的过程式风格,并拥有最大的开发者群体,往往能降低转换成本和长期维护成本。
  • C# 对已采用 .NET 和 Azure 技术栈的组织高效,其原生 decimal 类型减少了正确处理金融精度的工作量。
  • Java 适合基于 JVM 的企业;BigDecimal 能正确处理精度,但会增加一些冗长度。
  • Go 构建和部署高效,但缺乏原生十进制类型,会增加金融字段的审查工作量。
  • Rust 往往趋向任何规模区间的上限,因为其所有权模型会增加前期设计工作量。

COBOL 迁移概览 将全部六种目标语言并排比较,帮助你做出选择。

迁移方式如何影响成本

  • 自动化转换 减少机械翻译的工作量,但永远无法产出一个成品系统;请为工具标记出的手工工作(嵌入式 SQL、CICS、动态调用、十进制精度)预留预算。
  • 并行重写 在过渡期间会使运营成本大致翻倍,因为两套系统同时运行,但它将连续性风险降到最低。它适合较小的关键任务系统。
  • 增量式(strangler fig 将成本分摊到一段时间内,并降低一次性切换的风险,代价是更长的混合期。它是英国大型企业系统最常见的方式。

大多数真实项目会把自动化转换与增量式推出相结合。

导致超支的风险

迁移会因可预测的原因而超支。五大风险:

  1. 低估的业务逻辑发现。 规则在代码里,而不在文档里。请为发现工作明确预留时间。
  2. 数据访问重新设计。 DB2 和 VSAM 访问无法自动移植。请把它当作独立的工作流。
  3. 回归测试不足。 没有在真实数据上进行输出一致性测试,你无法证明迁移是正确的。请在迁移开始之前构建测试套件。
  4. 十进制精度错误。 映射到浮点类型的金融字段会悄然破坏金额。请映射到目标语言中正确的十进制类型。
  5. 切换失败。 切到生产是风险最高的时刻。一份带回滚和对账的详细切换计划是必需的。

如何获得准确的估算

可靠的数字来自代码评估,而非代码行数统计。一份好的评估会盘点程序和 copybook,识别 EXEC SQL / EXEC CICS / 动态调用的热点,衡量业务逻辑密度,并绘制数据访问面。Mecanik COBOL 迁移服务 提供面向英国企业的评估和全流程迁移;对于 IBM z/OS 上的大型机资产,遗留大型机迁移服务 在代码之外还负责基础设施的退役。

关键要点

  • 英国中等规模的 COBOL 迁移通常在 12 年内花费 200,000800,000 英镑;大型机退役则高达数百万英镑。
  • 复杂度、未记录的业务逻辑和数据访问重新设计对成本的影响远大于代码行数。
  • 目标语言和迁移方式都会以可预测的方式改变预算。
  • 超支源于低估发现、测试和切换;一份合理的代码评估是报价唯一可靠的依据。

常见问题(FAQ)

在英国,COBOL 迁移的成本是多少? 小型系统通常花费 80,000200,000 英镑,中型系统 200,000800,000 英镑,大型系统 500,000 英镑以上。完整的大型机退役项目从 1,000,000 英镑直至数千万英镑。决定你落在区间何处的是复杂度,而非代码行数。

COBOL 迁移需要多长时间? 小型且文档完善的系统需要 39 个月。中型企业系统持续 1224 个月。大型大型机项目完成完整退役需要 35 年或更久。

为什么 COBOL 迁移成本差异如此之大? 因为复杂度差异极大。未记录的业务逻辑、嵌入式 SQL 和 CICS、数据格式转换、目标语言以及迁移方式,都会改变成本。两个相同代码行数的系统可能相差一个数量级。

自动化转换能降低成本吗? 它能减少机械翻译的工作量,但没有工具能产出成品系统。你仍需为工具标记出的数据访问层、十进制精度决策、测试和切换预留预算。

COBOL 迁移超支最大的原因是什么? 低估范围,尤其是未记录的业务逻辑和数据访问重新设计。在迁移开始之前构建一套用于输出一致性的回归测试套件,是控制该风险最有效的方法。