停止指责COBOL

2020-07-11 11:52:14

在COVID危机开始时,新泽西州州长呼吁COBOL开发商帮助该州修复其失业保险制度。这些系统在压倒性的需求下崩溃了,罪魁祸首似乎是支撑福利申请的几十年的代码。不出所料,批评人士纷纷抨击政府继续使用一种50多年前发明的编程语言来操作重要的系统。

快讯:C编程语言是世界上最流行的语言,它几乎和COBOL一样古老。SQL是数据库编程的支柱,它发明于20世纪70年代。一项技术的年龄并不是其解决关键任务问题的可行性或适当性的指标。某物陈旧的事实可能只是意味着它经受住了时间的考验。

事实证明,新泽西州最终没有雇佣任何COBOL开发人员,因为问题其实不是COBOL,而是一些更平常、更不那么戏剧性的东西:以一种可伸缩的方式处理互联网上的表单的能力。新泽西州和其他政府面临的问题不是他们使用的是旧代码或旧的编程语言。问题通常是他们使用的代码不是为满足使用它的人的需求而设计的。

新泽西州失业保险系统的沮丧用户不一定要把他们遇到的错误归咎于COBOL。他们应该将其归咎于不是为处理不断增长的需求而构建的系统架构,或者是直接从PDF复制而来的界面,而不是基于与用户的密集测试而设计的界面。将其归咎于不能在幕后相互交流的系统,因此他们不断要求人们重新输入他们的信息。对于无需用户创建帐户或登录即可完成的任务,请将其归咎于复杂的身份验证过程。

政府需要将自己视为数字服务提供商,这意味着投资于必要的产品、用户体验和研究技能,以了解人们使用其服务的问题,以及使服务在某人需要时可靠和可用的软件工程和运营技能。如果不需要交付团队的这些特定功能,简单地发布新软件项目的采购并不能保证它易于使用或能够在需求大幅增加的情况下站得住脚。

首先,政府需要培养将表格放到互联网上并进行扩展以满足需求的能力,同时与后端系统和办公流程顺利集成。这项技能是几乎所有现代政府数字服务的核心,然而许多机构继续运营在线表单,这些表单是获得重要服务的门户,但无法与常见消费者应用程序的用户体验和可靠性竞争。

如果每个政府机构愿意遵循消费者技术的最佳实践来设计和运营这些服务,那么创建便于公众填写和办公室工作人员处理的在线表单对每个政府机构来说都是绝对可以做到的。在Ad Hoc,我们从引入产品管理和用户研究专家开始,与机构密切合作,调查要解决的主要问题,并确定机构正在寻求的结果。在Ad Hoc,我们从引入产品管理和用户研究专家开始,与机构密切合作,调查要解决的主要问题,并确定机构寻求的结果。我们考虑了从隐私到安全再到可访问性的所有政府约束,并将这些约束与真实用户的研究需求进行平衡,将权衡结果告知机构利益相关者,并赋予他们做出有效选择的权力。我们对那些来到政府网站寻找服务的人进行可用性研究,以找出他们被困在哪里,以及可以做些什么来改善体验。

我们的研究团队也花时间与处理公众请求的公务员进行交流,看看他们在处理过程中的瓶颈在哪里,以及我们如何确保任何新的面向公众的应用程序与他们的后端系统集成在一起。这通常意味着我们必须将新应用程序与旧系统和“旧”代码(如新泽西州失业保险系统中的COBOL)进行集成。

在项目开始和整个开发过程中,用户研究都会告知我们的产品经理如何设置“北极星”,或如何与政府客户共享对未来成功的愿景和成果指标。当我们的工程师和设计师创造这些新服务时,他们始终致力于为真实的人们创造成果。我们问,有多少人能够登记参加一项福利?该站点多久关闭一次并拒绝访问应用程序?我们优先考虑基于结果的度量,而不是我们交付了多少功能、完成了多少故事点,或者我们是否使用了最新的技术来完成工作。

是的,机构应该评估他们在COBOL和大型机上的持续投资是否对他们有意义,因为他们有可用的预算和技术资源的独特限制,就像他们应该持续检查任何系统,无论其技术堆栈或特定组件的年龄,是否在他们拥有的限制范围内交付他们想要的结果。

各机构还应该纠正过去的错误,投资于新的、更高效的技术。任何公务员都不应该把网上提交的表格打印出来,然后重新输入到另一个系统中。但我们必须准确地说明什么需要更新以及为什么需要更新,而不是仅仅因为技术的年龄而对它们不屑一顾。

所谓的“冯·诺依曼体系结构”描述了地球上几乎每台计算机是如何设计和运行的。它可以追溯到20世纪40年代中期,无论出于何种意图和目的,它都没有改变到今天。我们不会将新泽西州的困境归咎于冯·诺伊曼计算机,就像我们不应该仅仅因为COBOL代码太旧就指责表单崩溃一样。