我们在Python中重写了我们的USD30B资产管理平台

2021-03-30 04:56:26

2015年,人类数字开始从SA到Python重新平台和迁移其业务的过程。这意味着大修和重写定量建模,投资组合优化和研究平台,完全取代了在25年的过程中逐步发展的生态系统。该项目是该公司最大,最雄心勃勃的历史,2019年12月31日,经过近五年的努力,遗产制度的最终遗弃情况被退役。

该职位将反映该职位,讨论该倡议的理由,并试图对费用,风险和福利进行无偏见的(如果是允许的事后)的评估。此外,它将突出团队使用的一些策略,使巨大的项目更具易行,维持势头,最重要的是减轻风险。

迁移Man数字远离SAS编程语言和Python的决定并未轻描淡写。完全重新平台公司是一个昂贵和冒险的事业。 Capoverflow的联合创始人Joel Spolsky总结了关于完整的传统智慧,从划痕重新写入他的经典文章的标题:"你永远不应该做的事情" - 从那以后的文献往往会同意他的意见。

此外,SAS平台促进了该公司的出现作为定量股权投资的早期领导者。该平台有几十年的飞行时间,在此期间,它累计了有关它交易的数据和市场的无价值数量。它已经在2007年的量牌和GFC的量危机之后,到2015年,在历史积极绩效连续几年内产生了几年。

然而,在20多年的过程中,SAS平台已经累计了很多复杂性。更改需要大量资源。在一个越来越竞争的行业中,它变得越来越难以保持灵活,并将创新迅速迅速到市场上。

除了渴望更高的敏捷性之外,2014年人民集团的商品投资者的收购也在重新平台努力的方向和资源方面发挥了重要作用。虽然已经进行了开始重新平台的决定已经进行了,但收购将数字带入与Man AHL的合作,最近完成了自己的Python转换。这项新伙伴关系为基础设施和现有技术方面提供了重要的支持。

在解决Python之前,人类数字在解决之前简要探讨了许多选项。与人类组的联盟队伍当然更容易做出决定,但其他因素也很重要。

Python迅速成为数据科学,机器学习和自然语言处理的De-Facto语言;它将解锁新的创新来源。 Python允许我们与其相当大的开源社区进行互动,在允许定制的同时在内部提供最先进的技术。在竞争激烈的招聘市场中,Python也对顶级人才更具吸引力;作为最想要的开发人员和第三个最受欢迎的语言排名为堆栈溢出。此外,还可以加快新雇用的船上,因为新员工将配备有必要的技能在第一天。最后,Python平台将允许我们的研究人员,数据科学家和技术人员讲述相同的语言,并从其他Python程序员的广泛在线社区找到支持和建议。

所有这些福利都服务于相同的潜在目的,但是降低了创新成本。

值得注意的是那些准备踏上重新平台的人的一个缺点是,虽然它是开源的,但Python在生产环境中肯定不是“自由”。在整个SAS生态系统整洁的情况下,齐全和包括电池,Python为您提供了构建生态系统的自由和义务。包管理和数据持久性等内容在SAS生态系统中解决了问题,但需要在Python中进行投资。

转换为Python的决定具有强大的业务支持和坚实的理由,但成功远未在一开始就不可避免。在任何业务中,这种性质项目的风险可以很高。当数十亿美元的客户'如果事情出现问题,那么从仅仅毁灭性(Axa Rosenburg)到完全灾难(骑士资本)的后果的后果范围都是如此。

除了Splashy标题故障之外,还有一个无数技术公司经历的彩色品牌:时间轴故障。也就是说,他们只是淡入过时,重点关注他们在重新编写和未能提供其客户需求的新功能的代码中的所有努力。

毫无疑问,重新平台公司是一种冒险的主张。事实上,它可能比文学评论更远的是你相信的,因为这些毫无疑问的论文遭受了生存偏见。

减轻了标题失败,失去动量的风险,或者缓慢淡入过时至关重要,并且曾经做过的人数字的策略,包括经验教训,足以使他们值得分享。

确定新业务和创新与重新平台的资源分配是决定两种不同类型的债务的运动。重点缩点100%的代码重写资源可能会更快地传递它,但也可能导致不可逾越的商业债务。换句话说,如果公司未能向客户提供现有的承诺,或者将新产品带到竞争时间框架中的市场,那么它可能会发现一旦重新平台竞争,就可以赶上竞争不可行的比赛已完成。

另一方面,通过投资所有关于提供新产品的资源,您将承担技术债务,堆积材料重新编写的速度比您可以重新编写,无限期地围绕遗留软件,并失败了重新平台的好处。

商业债务和技术债务有不同的风险奖励简介。就像任何形式的杠杆一样,既不是客观的坏(大多数房主并没有支付现金!),但他们必须仔细管理。尽力避免接受高利息债务;制作小增量胜利;并利用机会,使重新平台努力和业务增长有益。

最后,我们提前做出了一个决定是戒指围栏,该团队负责从其他项目工作中的新平台建设。这为短期资源决策提供了自然障碍,这些决定可能会减少我们的长期战略目标。

完整,100%奇偶校验与以前的系统永远不是人类数字的目标'重新平台;它本来是不切实际的,并且排除了重写的许多升级。

在项目的前几个月,我们建立了一个系统,以交叉检查新平台的输出与其遗留对手,并销售诸如相关或覆盖范围大的发散等问题。该系统有助于保持迭代循环紧密,绝对是必要的,但最终不充分。

我们的仪器告诉我们,我们对遗留系统的完整匹配是多么接近,但它不能告诉我们我们有多远的后果。虽然真正的验收标准是匹配的返回和风险特征(范围内),但我们对交叉检查新平台的最初努力导致开发人员关注精确的产出匹配,这是一个更具挑战性的事项。

我们建立了工具,以使历史模拟风险和返回的全面评估,重新平台信号通过与任何新产品相同的争议,具有人类数字' S投资委员会审查和签署增量替代。然而,由于我们通过验收标准更紧密地对齐我们的仪器,我们可以在长远来看,我们可以更加紧密地对齐我们的仪器。

我们能够管理风险的一种方式是通过逐步替换我们的系统,尽可能多的变量。这是一个刻意的过程,它很慢;在我们的第一个Python代码开始处理客户资金的时间之间几乎三年,以及我们关闭了遗留系统的最后一块的时间。通过该时间段,我们并排维护两个系统的成本,但在我们所做的每种变化范围内都有增加的置信度。

这种方法的另一个好处是它有助于使项目可管理。增量交付意味着每个释放都很小,但它也是真实而有意义的,这对于从事多年努力的团队的士气非常重要。它还为平行化创造了很多机会。

但是,在按组件迁移系统组件时,阻力最小的路径导致显示器的系统架构,这些架构看起来很像您的遗留系统。对于我们认为他们应该去的系统组件之间的边界来说,这对我们认为他们应该去的地方非常重要。在某些情况下,这是实用的,在其他情况下,它采取了额外的工作,但最终我们留下了一个良好的遗产系统,这些系统是没有遗留的技术决策。

人类数字'迁移到Python是成功的。完成了它,我们正在衡量可敏捷性和减少上市时间增加的益处。但这不是一个简单的项目;一家拥有较少可用资源的公司,一个顽强的团队,没有这种激烈的支持和投资团队的参与可能没有成功。从一开始,上面提出的策略并不明显,而是通过经验学习。

决定完全重新平台一个成熟公司是一个难以做出的企业的决定。费用和风险是具体而立即的,而益处是理论并具有永不重要的概率。但如果他们确实实现了,它们可以完全转化。

阅读这篇文章的读数:"你永远不应该做的事情"作者:joel spolsky https://www.joelonsoftware.com/2000/04/06/2000/04/06/2000/04/06/things-you-should-never-do-part-i/i /#34;软件重写&#34的神话; eric deitrich https://daedtech.com/the-myth-of-the-software-rewrite/"我们所做的最好的决定是放弃完整的代码重写"由Tyler King Https://www.less annoyingcrm.com/resources/code_rewrite_cautyary_tale"我们决定重写我们的软件。你不会相信接下来发生的事情!"由Aaron Hardy https://medium.com/adobetech/we-decidede-to -rewont-believe-what-happened-next-dd03574f6654"技术债务和加入风&# 34;通过ted unangst https://flak.tedunangst.com/post/technical-debt-and-tacking-into-the-wind"来自6个软件重写故事的课程和#34;由Herb Caudill(以其他一些优秀文章的评论和链接)https://medium.com/@herbcaudill/less-from-6-software-rewrite-from-635e4c8f7c22"为什么软件重写经常失败 - 以及如何'用户目标'可以修理它们"作者:jonah bailey https://spin.atomicobject.com/2018/04/16/software-rewrites-fail/"堆栈溢出开发人员调查"通过堆栈溢出" https://insights.stackoverflow.com/survey/2020"

表达的意见是提交人的意见,可能不会被人民群体PLC的所有人员分享(“人”)。这些意见如有更改,恕不另行通知,仅供参考,不构成在本公司和/或其关联公司提供投资咨询或任何其他金融咨询或任何其他财务的任何产品中进行投资的要约或邀请服务。此材料中描述的任何组织,金融仪器或产品仅供参考目的提及,这些目的仅被视为购买或销售的建议。本公司和作者均不应对根据所提供信息所采取的任何行动对任何人负责。本材料中包含的一些陈述,涉及目标,策略,前景或其他非历史事项可能是前瞻性陈述,并根据当前指标和期望。这些前瞻性陈述仅截至所做的日期,​​本公司不义务更新或修改任何前瞻性陈述。这些前瞻性陈述受风险和不确定性的影响,可能导致实际结果与陈述中所载的结果不同。本公司和/或其关联公司可能在任何此类证券中提到的任何金融工具中或可能不会在任何此类证券中进行职位。本材料是本公司及其关联公司的专有信息,不得在本公司事先书面同意的情况下全部或部分转载或以其他方式转发或以其他方式传播。该公司认为内容是准确的。但是,无需保证或保证准确性。该公司在错误报告或不完整的情况下,该公司在任何责任中都不承担任何责任。除非否则否则本公司提供所有信息。过去的表现并不预示未来的结果。