因为忽视技术债,我们差点造成几十亿美元的损失

众所周知,技术债务非常糟糕。然而,仍然有许多人为了某项新功能的未来价值而宁愿背上技术债。在它们眼中,新功能的潜在价值比技术债更重要。有个团队曾经尝试过此举,最终后悔不已。(本文中使用的名字均为化名)

对Tidal Wave团队而言,关键时刻即将到来。他们新的支付路由系统经受住了Litmus测试的考验,测试中涉及的少量客户都是精挑细选的。在这个工作周期(Sprint)中,它们会将产品部署到银行完整的国际内部支付流程中。这意味着数以百万计的付款操作,和数以十亿美元的资金。

这可是大事!

一件小事

然而,一件发生的小事占据了开发团队成员克莱尔和产品负责人杰西的心头。

克莱尔担心:“普尼特认为他发现的问题缘由来自生产环境,因为我们之前走了捷径而没有采用另一个耗时长却更严谨的解决方案。因此,它无法正常运行。如果开展修复工作,那要花上半个周期(Sprint)。“

杰西:

“这不行,克莱尔,我不能将全部时间耗在这上面。初步分析显示,我们完全可以绕过问题。我提议,大家先了解下解决办法,后期再去修复。如今,我们还有更重要的事情要做,不能分神。”

克莱尔:

“杰西,这只是初步分析,我们还不能100%保证我们已经找到问题根源。”

杰西:

“普尼特做的分析,他对代码了如指掌。如果他确定,我百分之百相信他。”

克莱尔:

“我同意。先绕开这部分,但是要记得将这一点添加到‘已知问题’中。”

杰西:

“我会将这条写道产品待办事项里,毕竟它迟早是要修复的。”

重要日子

今天很重要,Payment Router正式发布,这可是公司年度最重要的产品发布会,众人皆到,举杯相庆。尽管Tidal Wave团队成员只喝不含酒精的饮料,但依然配有香槟。

公司CTO 玛利亚发表演讲,称赞团队的工作,然后按下代表项目开始运行的红色按钮。马上,监控屏幕显示流量急剧上升,直到达到litmus test的50倍。随后,上升势头保持稳定。欢呼声响起,他们成功了!

第一天,晚上11:30

普尼特刚到公寓,准备美美地睡一觉。今天很好,一切顺利,真完美。

突然,电话声响起,这是前台打来的。这在意料之中,这个7X24小时的功能才刚上线,因此人们还需要熟悉其工作原理和反馈信息。这就是为什么本周团队中有两人随时待命。

克莱尔:

“嗨,普尼特,我在监控屏幕上看到一条直线。它不该出现这样的情况。看起来,程序好像停止运行了。”

普尼特:

“是的,这很奇怪。不,它不应该是这样。我们去查查,随时向你汇报最新情况。”

快速分析后,他意识到他必须要给克莱尔打电话来解决这个问题。

普尼特:

“嗨,克莱尔。你还记得几周前那个生产中的小问题吗?实际上,问题比我预想的要严重,需要修改代码才能修复这个问题。我们必须立即行动,才能在一小时内解决战斗。”

一小时后,克莱尔和普尼特成功部署修复程序。但是,问题依然还在,还是一条直线,修复程序没有起作用。

普尼特喃喃自语:

“糟糕,情况真糟糕。问题比我预想的要更复杂,我们需要深入分析问题所在。”

克莱尔叹气:

看样子,今夜注定无眠,普尼特。

凌晨2点,电话响了,是CTO 玛利亚打来的。

玛利亚:

“问题修复情况如何?我们的客户都快疯了。你们知道,这种故障会带来多大的损失吗?”

普尼特:

”我完全明白。我们的客户无法收钱,还是数百万美元的钱。相信我,我们正在全力解决问题。对我们来说,现在没有什么比解决这个问题更重要了。“

玛利亚:

“需要什么,尽管说,我会为你们提供任何所需。”

普尼特:

“谢谢你,玛利亚。如果你能帮我们挡住那些妨碍我们工作的电话和短信,那就更好了。”

玛利亚:

“没问题,我会让他们来找我。祝你们好运!”

克莱尔和普尼特越是深层地排查代码,他们对问题根源就越迷茫,况且,他们精疲力尽。

他们不得不将这个问题转交给办公室中团队的其他成员。现在是早上九点,专注做事时,时间过得飞快。30分钟后,工作交接完成,二人倒头就睡着了。

第二天,下午3点

普尼特回到办公室,了解了最新情况,并为接下来的夜晚做好准备。

杰西对他说:“早上11点,我们设法重新上线Payment Router(支付路由),这只是暂时修复。目前,没什么大问题。我们现在应该聚焦于永久性的解决方案上。”

当普尼特听完这个临时方案的细节后,他不知道如何是好。一方面,他很高兴系统再次上线运行,但另一方面,这个方案看起来不靠谱。

普尼特:

“你检查过,支付的处理速度是否够快?我担心,高优先级客户的付款延迟可能会超过SLA(服务水平协议)。”

十五分钟后,团队唯一能确认的是普尼特是对的,支付处理延迟非常高。一切都挤在一起,这种状况不可持续。

他们决定在临时补丁上再加一个临时解决方案,然后采取轮班制工作。早上8点到晚上9点,约翰、卡洛斯和爱丽丝;晚上8点到第二天早上9点,则是普尼特、卡迪克和克莱尔。这样他们应该能撑过一周,这足以解决问题。

发布会后的第一个月,晚上10点

从车站到办公室,需要步行五分钟。对普尼特来说,这简直是条通往地狱的路。他开始讨厌公司大楼的红砖,公司的logo也让他有点反胃。

整整一个月,他每周工作90个小时,一直忙个不停。发布前的几个月,他也不清闲。他们付出了代价,但他知道事情远远没有结束,Payment Router仍然不稳定。

他对这一团糟感到内疚,如果当时进行更深入的分析或者请别人来帮忙,情况可能不是这样。

克莱尔看到普尼特朝办公室走来。他又迟到了。而卡迪克没来上班,因为他的妻子正在做手术。她对整个团队都很失望。值白班的人甚至都没象征性地等她和普尼特一起出现。

她感觉自己像独自一人,用一人之力堵住堤坝来阻止灾难性的洪水。直到卡迪克复工,她要一人扛起整个夜班的责任。她想指责普尼特错误的分析,但她也知道自己当初可以阻止团队做出忽视技术债的决策。

发布会后第三个月

Payment Router(支付路由)仍然可以运行,同时,情况有了很大地改善。在发布会后的第一周,团队每24小时约有20起一级事件,有6起发生在半夜。现在,已经减少到每天一起一级事件。

团队设法挽救了银行声誉,但这是在“走钢丝”。如果正式发布日,再次出现大规模故障,那么一切玩完。忽视技术在让银行揹负了百万美元的损失,全力以赴的修复才让银行免于数亿美元的损失。

你可能对Tidal Wave团队的后续感兴趣。正式发布2个月后,在情况有所改善时,普尼特称自己过度疲劳。如果继续在支付路由团队工作,克莱尔用辞职威胁离开公司。所以,她调任另一个团队。

现在没人想接手克莱尔和普尼特的工作,支付路由团队“声名狼藉”,而不知内情的两个外部人填上了空缺位置。团队中剩下的4人竭尽所能持续改善系统的稳定性。如果说他们还留在公司,那么唯一的原因就是责任感。

教训

技术债简直是无形杀手。如果仅优先考虑新特性而忽视技术债,那么这是在冒巨大风险。每次你做出这样的决策时,你都会下意识地选择忽略质量问题。

从Tidal Wave团队的经验中学习教训,当面对技术债时不要犯错误。

原文链接:
https://medium.com/serious-scrum/how-ignoring-technical-debt-nearly-destroyed-a-banks-reputation-62efdc3fd968

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章