文档结构  
翻译进度:已翻译     翻译赏金:0 元 (?)    ¥ 我要打赏

我的1岁哥哥(左边那个),我妈妈和我(右边那个)

我母亲在我出生之前就一直在欧盟最大的银行工作,我一直对她的工作着迷,特别是在我成为程序员以来的最后几年。 我被要求采访她很多次了,最后决定这样做。

一些注释

银行程序设计界是一个完全不同于我们大多数人的世界,在接下来的几个小时之后,我会接受你对她可能提出的任何问题,但是请记住,由于安全问题,一些问题可能无法回答。 我会把这个发布到HN & Reddit ,也回答那里的问题。
我不会把这个写成一个问答,但更像我告诉你她的故事。

更新:我添加了一些常见问题的Q&A到帖子的底部!

第 1 段(可获 2 积分)

1991

这一年她开始在诺底亚银行进行内部培训。这个银行后来被称作北方银行,但是在2001年改名成诺迪亚银行。在培训期间,她要参加各种各样的测试,最值得一提的是一个智商测试,看她是否有在此领域工作的能力。其他的测试包括确定她有能力做这个行业的心理检查和一个多任务测试。她在多任务测试中表现十分不好,满分100,而她只得了22分。但是她其他的测试都完成十分出色。在16个可以选择的职位中,她得到了1个职位。

 

第 2 段(可获 2 积分)

所述的职位是一个 IBM Mainframe COBOL 程序员,到今天,25年后,她仍然在同一家银行工作。

这个职位是银行中最重要的一个,至少从技术的角度来看。 如果让我们假设,我的母亲和她团队中的每个人都会辞职,如果他们幸运的话,银行会在几个星期内就倒闭了。 在她的团队里有轮流的人24/7全天候待命。 我记得当我年幼的时候,她不得不在星期天晚上乘坐出租车去工作,以解决死锁问题。

第 3 段(可获 2 积分)

COBOL语言…

...不是一个花哨的编程语言,与函数式编程语言Haskell或并发Golang语言相比-它是一个命令式的过程语言,自2002年以来,面向对象。 语言本身没有什么问题,问题是几乎没有人知道它 - 至少不是在大型机编程的环境中。 我的母亲是她团队中第二个最年轻的人,她出生于1964年,最年轻的人比她还要小2岁。 由于世界上几乎所有最大的银行都在IBM Mainframe上使用COBOL作为主要编程语言运行,这是一个全球性问题。 然而较小的银行更好,通常运行类似Java语言而且不使用大型机。

第 4 段(可获 2 积分)

我的母亲过去问我是否想学习,但是因为和更多的人一起工作,使用更加炫酷的技术,像Postgres,Redis,Node,Crystal,PHP等等,我一直回答“永远不会”! 我仍然对她做什么很感兴趣,但这些类型的系统给出了你可以想象的可能最糟糕的企业感觉,我想避免。
我只能想象一个20岁的大型机程序员会得到的丰厚的薪水,因为你的年龄在这种情况下是无价的。

数据库

它们的主数据库称为IMS,它是由IBM为Apollo程序构建的分层数据库。 在内部他们称之为DL / 1,这是数据库语言One的简称。 他们试图迁移到 DB2,后者是一个使用常用SQL语言的关系数据库,但考虑到Nordea存储的庞大数据量,这是一个需要花费数年的任务。 它不像将数据从IMS移动到DB2那么简单,他们还必须更新他们的模块以使用DB2加载和保存数据而不是IMS,并且它们有数千个模块,其中许多是由已去世或已退休的程序员开发的。

第 5 段(可获 2 积分)

每个事务存储在DB2中。 他们尽可能避免向IMS写入数据,只读取数据,直到新购买的系统完全集成,并且可以开始在那里存储数据。

IMS非常老,(对于某些任务)非常慢。
搜索数据可能需要几个小时。 哈,我们在这里,争论MySQL比Postgres的查询速度快2ms提供了更好的查询速度。 这有点讽刺。

他们还使用扁平的文件结构来执行大量任务,这些任务本身具有IMS支持的不同风格。 一个这样的例子是GSAM,由于模块在同一时间工作在同一个GSAM文件,产生死锁,迫使我的母亲多次乘出租车去工作。

第 6 段(可获 2 积分)

让我们谈一会儿他们的数据库的大小。 DB2仅存储关于事务的数据,并且每个事务的大小根据事务去往/来自的帐户类型而不同。 像我个人的银行账户这样的私人账户比商业使用的银行账户简单多了。 每个事务都在2KB到500字节之间,所以让我们假设平均为1KB。
目前,他们的DB2数据库拥有110亿笔交易,法律要求他们保存每笔交易10年,已经结算了11年。 目前,交易只有7岁,交易金额估计每年增长大约5-8%,直到他们达到11年的标记,他们可以排除掉11岁以上的交易。

第 7 段(可获 2 积分)

因此,目前,DB2数据库保存大约10TB的数据,并且该数据只是事务。 4年后,它将是一个大约13-14TB的数据。
IMS保存大多数其他信息。 这种数据大小不一,所以很难估计它有多大,但我想它比他们的DB2数据库大得多。

他们还在磁带上存储一些数据,他们的程序告诉机器从特定磁带加载/保存数据,这非常酷!

IDE

每个人都有某种形式的IDE或文本编辑器,对吧? 嗯,是的,他们也是。 IDE称为 ISPF,类似于整个操作系统。 ISPF可以扩展,我们称为IDE的部分是对ISPF的扩展,称为Endevor。

第 8 段(可获 2 积分)

ISPF直接连接到大型机,在这里没有像本地开发环境这样的东西。

在网上找到的ISPF接口

批处理

其大约80%的系统是批处理作业。 这些是在特定时间或间隔运行的作业,对其数据进行某种处理或将数据发送到其他银行/代理/等。 例如,当我购买一罐可口可乐,钱从我的帐户余额中取出,但是这笔钱实际上并没有转移到任何地方,直到他们的一个批处理作业运行。 这些工作通常在夜间执行,这通常是为什么银行之间的交易需要一天的时间才能完成的原因。同一个银行的交易通常是即时的,因为它立即执行。

第 9 段(可获 2 积分)

批处理作业使用的是千兆字节(有时是千兆字节级)的数据集,在某些情况下可能需要几个小时才能完成。 我很想看看当时钟转到00:00点,在IBM的数据中心,大型机突然开始全容量工作的样子,将非常酷!

银行面临的问题

在大型机上运行的银行面临很多问题,他们需要照顾,但不幸的是,时间是稀缺的。

程序员越来越老了,没有多少人想学习,一个新员工可以自己站稳脚跟的时间是2 - 3年,即使那时还有很多灰色地带。

还有几十年前写的程序,没有人知道他们是做什么的,写的人已经走了。

第 10 段(可获 2 积分)

许多银行正打算购买崭新的系统用以将他们现有的系统替换掉, 于此同时这些系统的开发人员就会说:“这货不会好使的,不能把这个怪兽替换掉我们现在的东西”.

导致他们的系统变得今天这样庞大的部分原因是,自始自终他们的系统都不兼容别的系统. 一个很好的例子是想象一下如今我们是怎样构建RESTful风格的服务的, 一旦有程序想要从我们的系统获取数据(调用RESTful接口),那么他们的程序需要针对我们的接口做一些修改(用于兼容). 这不是仅仅几家银行会遇到的情况,事实是当系统与系统交互时,我们的系统将数据发送到其他系统(例如税务机构),这些系统可能在任何时候更新其系统,这又打破了银行用来发送数据的当前系统。

第 11 段(可获 2 积分)

银行系统也非常先进。 个人银行帐户与商业银行帐户有很大不同,每种至少有50种不同类型的银行帐户。 在北欧银行案例中,他们也有瑞典政府账户,这不同于个人和企业账户。 我认为他们有芬兰政府帐户,也可能是丹麦的一部分,也不相同。

最后的话

听到北欧银行和其他银行将在未来几年做这些,以及他们将实施的新技术,将是非常有趣的。

我可能忘了问问题,所以如果你有任何问题,请问,我会在接下来的几个小时把他们转发给她,并写下她的回应。

第 12 段(可获 2 积分)

问答

为什么选择使用IBM大型机COBOL语言编程?
- 我一直想“与电脑工作”,但我不是针对这个特定的工作。 我在报纸上看到一则广告,就申请并得到了工作。 在我申请之前,就有一点计算机背景。

你一天中看到的最糟糕的事情是什么?
- 我的同事忘记在我们称为“收银机”的系统最关键部分的模块的语句末尾添加一个点。 它是处理所有钱的部分。 结果是整个银行连续宕机16个小时,因为模块连续执行了语句,但它实际上应该在那个语句后停止。 它基本上重载了我们的系统,有点象一个 self-DOS。

第 13 段(可获 2 积分)

对于运行在与北欧银行相同的基础设施上的银行,您认为未来会发生什么?
- 大多数银行都承认,我们需要用更现代的东西替换旧的大型机。 北欧银行已经购买了一个新系统,它承诺在4年内更换现有系统,但北欧银行负责多个国家,更合理的数量是每个国家4年,因此总共16年。

尚未承认这一点的银行和金融机构将面临非常艰难的时期。 我仍然认为我们将依靠IBM基础设施。

第 14 段(可获 2 积分)

作为一个女性程序员,你在90年代开始面临的挑战是什么?
- 完全没问题。我有几个女性同事,但大多数都是男性。它并没有给我带来太大的困扰。

你一直在为同一个实体和可能是相同的代码库工作了超过20年。 它会变老吗?
- 是的,像大多数其他工作线一样,一段时间后也会感到疲倦。 但我在的这段时间里,为金融领域的各种事情建立了许多全新的系统,这一直很有趣。 不幸的是,从现在开始,我们将永远不会建立任何新的东西,只保持我们目前拥有的,并等待我们购买的新系统,以取代当前的。

为银行编写代码有多可怕?
- 这是非常可怕的,特别是当我们在星期日将改变推到生产环境时。 每当我们将新的变化推向生产环境时,系统的大部分都必须离线。 其中一个部分是整个IMS。 在此期间,任何事情都可能发生,但我们有一个非常强大的测试环境,所以它通常顺利进行。

第 15 段(可获 2 积分)

你为银行造成了什么巨大的错误?
- 肯定有,我在1997做的一个很大的错误,当我的小儿子(那是我,作者)刚刚开始学前班,我的父母的假期结束了。我们有一个为退休储蓄的制度。这些类型的银行帐户当时没有被锁定,法律规定,你不能在你55岁之前从该帐户提款。由于帐户没有锁定,如果您有银行帐号,就可以提款,所以解决方案很简单;不给客户他们的银行帐号。

我设法通过修改一个模块,将他们的银行帐号添加到发送给客户的邮件。所以发生了客户在他们被允许之前就开始从他们的退休储蓄帐户里面提取资金(它还没有征税呢!)的事情。
这引发了一个巨大的检查,瑞典政府都介入了,财务检查和媒体到处都是它。那就是我干的。

你的工作环境是什么样的?
- 我们最近搬到了一个更“时髦”的位置。 我们以前有个人书桌,但现在我们有了这个“选择任何地点可用”开放区域。 我很不喜欢它。

第 16 段(可获 2 积分)

文章评论