购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 架构现代化的业务动机

本节将概述架构现代化在常见业务场景中所能带来的好处。虽然这不是一个完整的清单,但即使在不同的业务场景下,架构现代化也仍然可能具有重要的价值。

在确定了业务动机之后,与不同的利益相关者进行对话,提出针对性的问题是一种迅速获得反馈的有效方法。比如,你可以问:“您是否认为,与其担心落后于迅速发展的竞争者,我们更应该集中精力降低运营成本?”或者“您觉得对我们组织构成最大威胁的外部因素是什么?是快速发展的竞争对手还是消费者消费习惯的变化?”以及“我们的产品具有多少独特性?您认为竞争对手能轻易模仿我们的产品吗?”

3.1.1 落后于快速发展的竞争对手

Simon Wardley曾经指出:“成功孕育了惰性。”他解释道:“过去成功的模式越是行之有效,产生的惰性就越大。”这意味着,一旦企业取得了成功,它们便很可能失去继续创新的驱动力。与之形成鲜明对比的是,市场上的新进入者往往带着完全不同的思维方式,面对挑战现有品牌的巨大任务,它们必须展现出极高的创新性和冒险精神。此外,新进入者有机会从零开始,利用最新的技术和方法,而那些老牌企业则背负着长年累月甚至数十年积累下来的技术和组织债务。这种差异创造了翻转现状的理想条件。许多成熟企业发现自己处于这种困境,因为它们所在的行业涌入了新的竞争对手,或是现有的竞争对手投资架构现代化,能够更快速地创新。

对业务和技术领导者而言,最令人担忧的问题之一是在意识到自己的开发能力严重落后时,往往为时已晚。我们都熟悉像Blockbuster(http://mng.bz/EQMD)、Netscape(https://airfocus.com/blog/why-did-netscape-fail/)和Nokia(https://www.bbc.co.uk/news/technology-23947212)这样的著名公司被颠覆的故事。然而,并非每个企业都到了已经太晚时才意识到问题。正如第1章中提到的Netf lix案例所展示的,一些有远见的领导者能够提前识别出这些警示信号,这为他们提供了更大的生存和成功的机会。

在与客户沟通时,我经常提出这样的问题:“在竞争对手构成威胁之前,在不进行任何改进的情况下,你们能维持多长时间?”一位首席运营官曾回答说:“我们大概有18个月的缓冲,直到竞争对手追上并超越我们。”在这种情况下,18个月是一个合适的时间框架,这个期限足够近,既能激发公司着手进行架构现代化的紧迫感,又足够长,以便它们有时间做出深思熟虑的决策,避免仓促行事。然而,重要的是要认识到,时间的长度并不是唯一的考量因素。比如说,对于规模更大、需要落后架构的更多代码进行现代化改造的组织来说,18个月可能就显得不那么充裕了。

面对快速发展的竞争对手所带来的落后风险,组织需要做出明智的架构现代化决策。在未来变化不大的落后系统上耗费一年时间进行现代化改造,可能会导致灾难性的后果。

沃德利地图(将在第5章介绍)专注于业务环境的变化,会帮助我们识别未来优势的所在以及有可能发生颠覆的潜在领域。在这种情况下,运用沃德利地图方法非常重要。

行业案例:在金融服务市场失去领导者地位

有一家金融服务公司找到我,希望我支持新任CTO开展一项跨年度的架构现代化项目。该公司的背景令人瞩目,它不仅一直处于行业排名的首位,是十多年的市场领导者,而且在公司内部形成了一种优先考虑稳定和安全、避免风险的思维模式。由于品牌声誉极佳,只要系统在线且客户能够使用,公司就能继续保持其市场领导地位。

虽然对外呈现出优秀的业绩,但该组织在内部运作方面却存在明显的问题。例如,严格的安全政策、过度限制的开发流程、对解决技术债务投入不足,以及自上而下的管理方式,导致工程师们在执行简单任务时遭遇重重障碍。特别是开发部门和运维部门之间的关系尤其糟糕。

随着时间的推移,行业开始发生变化。发展更快的竞争对手出现,它们提供了更好的用户体验,导致该公司失去了其行业领先地位。它们的产品开始显得落后,许多才华横溢的员工因为感到沮丧而选择离职。公司高层领导意识到,他们不能再忽视这些警告信号了。于是,他们引入了一位新的CTO以及其他一些在金融服务领域建立过高效组织的经验丰富的业务、产品和技术领导者。

从项目伊始,我就积极参与,领导前两个团队设计和构建现代化架构,并采用新的方式工作。同时,我还与运营团队紧密协作,共同搭建开发平台,并与架构团队共同确立愿景。我投入了大量时间,向组织内的不同部门、各利益相关者及团队传递这些理念。这是一种完全不同的思维模式,需要他们花时间来学习、接受,并最终决定是否愿意成为公司未来的一部分或者选择离开。

面对行业的激烈竞争,作为现代化投入的一环,领导层期望在六个月内实现显著的产品改进。然而,由于技术和组织债务累积甚重,即便得到了高层的坚定支持,我们仍耗费了整整一年时间才将首批现代化代码投入生产,这给团队带来了巨大的压力。团队成员之间出现了相互指责的情况,彼此认为对方未能按时交付,尽管实际上每个团队都已尽其所能在自己的限制条件下工作。这种压力迫使团队寻求捷径和快速解决方案,如在陈旧的基础设施上开发新应用,从而产生了战术性的折中。

如果该组织能早些认识到自身正逐步落后,并明白实现架构现代化所需的努力远超初期的预期,它就不会因急于追求现代化而采用不理想的方式。这样,组织就能更加有效地、步步为营地应对预料到的和没有预料到的挑战。接下来的例子将展示一个组织在及时识别警示信号、做出充分的现代化承诺和投入后所能达成的成就。但值得注意的是,这两个案例涉及完全不同的公司背景,因此它们之间并非直接可比。

行业案例:OpenTable

在2011年,OpenTable在餐馆预订市场上占据领先地位,竞争几乎不存在。然而,随着Yelp等对手的加入,局面开始发生变化。尽管OpenTable拥有众多维持其领先地位的创新想法,但工程部门成为了实施这些想法的瓶颈。与竞争对手相比,OpenTable在产品创新的开发速度上无法匹敌。当时,OpenTable依赖于一个庞大、单一且杂乱的代码库,超过100名工程师都在此基础上进行开发。代码的高度耦合使得进行任何变更都显得缓慢且风险高,且经常出现合并冲突。此外,部署周期长达四周,还需额外好几天进行人工质量保证测试。

提示

此行业案例由我和Orlando Perri共同撰写,他在2010—2015年间在OpenTable工作。

伦敦的团队意识到,他们有潜力提高生产效率。通过创建一个松耦合的、领域对齐的代码库,团队能够实现独立操作。结合高度自动化的持续交付基础架构和卓越的开发者体验,使每天进行多次部署成为现实。更关键的是,这样做能够让他们通过A/B测试来更有效地加快产品的反馈,从而提升产品质量。虽然实现这个愿景能使OpenTable大大领先其竞争对手,但是要实现这个目标并获得所需的支持是一项挑战。

在多轮迭代后,他们成功提出了一个具有明确业务收益的架构现代化蓝图,董事会终于决定暂停所有新功能的开发,以便对现有系统进行全面的架构现代化改造。公司迎来了一位具有远见的新CTO,负责实现这个架构现代化愿景,并通过引进专业技能涵盖DevOps、持续交付和DDD的工程师来加强团队。

这个故事之所以引人注目,是因为高层领导团队做出了一个大胆的决策:暂停所有新功能的开发,全力投入到架构的现代化改造中。这一决策源自一个共同的愿望,即迅速且全面地完成架构现代化,确保不遗漏任何细节。面临的一个主要挑战是董事会对项目时间表的要求。虽然最初的预估是6个月,但实际上直到8个月后,团队才有机会开始增加新的产品功能,而整个架构现代化的工作几乎耗时12个月才圆满完成。尽管如此,这一努力的结果令人鼓舞:一旦架构现代化实施完成,其愿景就得以完全实现,团队变得高度自治,能够每天多次将代码部署到生产环境中。通过这样的改革,OpenTable的开发能力远远超越了其竞争对手。

对OpenTable而言,决定暂停所有项目并全力投入到架构现代化中是一个明智之举。然而,对于许多组织而言,采取这种全面停工的策略既不切实际也不明智,因此更倾向于逐步实施的方法。OpenTable能够成功地采取这种策略,关键在于几个方面:拥有高质量的人才队伍;能够承受长达八个月暂停开发新功能而不对业务产生重大负面影响的能力;以及对于架构现代化的ROI有一个清晰且有说服力的展示。

3.1.2 架构阻碍业务增长

即使面临的竞争威胁不显著,架构依然可能成为制约企业释放全部潜力的关键因素。绝大多数公司都在追求增长,不论是和风细雨的渐进式还是暴风骤雨的迅猛式。作为架构现代化的领导者,深入理解组织的增长目标和潜能非常重要。这将有助于评估架构在多大程度上会成为业务扩张的障碍。架构现代化的目标应当是支撑公司的增长愿景,无论是解决现有的可扩展性问题还是在战略领域里加速创新。

你需要了解的四个主要增长战略包括:市场渗透、市场开发、产品开发和多元化。这些战略中的任何一个都可能在任何给定时间段对你的组织产生影响。本章将进一步探讨这些增长战略及其与架构现代化之间的联系。

3.1.3 奉行退出战略

对某些企业而言,核心战略目标可能是成功退出,比如通过被其他公司收购或进行首次公开发行(Initial Public Offering,IPO)来上市。举个例子,2022年初,我服务的一位客户CEO向我们团队明确表示他的目标是在三年内让公司具有足够的吸引力以被收购。在讨论架构现代化的过程中,他特别关注那些能在这个时间框架内显著提升业务价值的措施。任何短到中期内无法带来明显好处的架构现代化方案都不予考虑。技术领导和工程团队实际上也感受到了这一点,尤其是当公司不愿意投入额外的时间和资源来解耦那些与系统的大部分模块紧密耦合的庞大落后架构数据库时。

企业所有者计划在三年内实现退出,因此他们设定了一个时间框架来完成架构现代化。值得一提的是,一个现代化的架构能够增强公司对投资者的吸引力,有利于顺利执行成功退出的战略。一位有丰富并购(Mergers and Acquisitions,M&A)经验的架构师强调:“任何优秀的架构师在考虑并购潜在伙伴时,都会仔细检查其代码、架构、设计文档和测试流程等。如果目标是市场退出,那么不能仅仅靠外观上的吸引来掩饰内在问题,因为进行尽职调查的人会识别并排除那些华而不实的公司。一个成功的退出战略,需要依托于更完善和现代化的架构。”

对于那些不寻求退出战略的公司来说,专注于两到三年内的短期目标可能更为合适。这允许公司聚焦资源于那些能在短期内带来显著效果的工作上。实际上,架构现代化的成效并不总是需要三年时间才能显现。关键是,对于大多数公司而言,需要制定一个包括短期、中期和长期行动的架构现代化项目组合,以便定期实现价值增长。同时,也需要规划如何应对那些更为复杂和更为基础的架构挑战,常见的例子包括庞大的单体数据库和落后架构的COBOL系统等。

如这位CEO所强调的,当公司以退出战略作为其目标时,业务领导人会专注于增强公司对潜在买家的吸引力。这通常意味着优化关键的业务和财务指标,例如毛利率、收入增长率或净利润,这些都是最为关键的指标。在某些情况下,领导者还会努力提升EBITDA(Earnings Before Interest,Taxes,Depreciation,and Amortization,利息、税项、折旧及摊销前利润),这是衡量企业运营效率的财务指标,常用于不同公司之间的比较。对于那些希望吸引投资者的公司来说,EBITDA有时候会成为一个关键指标。然而,重要的是要理解EBITDA和其他指标都不能全面反映公司的实际状况,有时它们甚至可能造成误导。

对于负责架构现代化的领导者而言,全面理解公司的业绩——而不仅限于EBITDA——是极其宝贵的。这样不仅能帮助他们更准确地设定现代化项目的优先级,还能让他们能够用公司的语言进行沟通,从而提升自己的信誉。 Financial Intelligence 一书是一个极佳的学习资源,能够提供深入的财务知识(可参考:http://mng.bz/N2lx)。

3.1.4 通过并购实现增长

并购活动对某些企业非常重要,它们可以通过并购来实现各种增长战略。例如,企业可以通过并购市场上的现有竞争者来扩大市场份额,或是收购处于不同市场的企业来推进其多元化战略。最近的一个案例是Salesforce于2021年以270亿美元收购了Slack(http://mng.bz/D4Xg)。Salesforce认为收购Slack将使其能够在远程工作的新时代为客户提供更加完整的产品套餐。另一个例子是微软在2018年斥资70亿美元收购GitHub,此举不仅加强了微软的开发者社区,还促进了其在人工智能领域的创新,如AI编程助手GitHub Copilot。

在担任Salesforce主任工程师期间,我深切地体会到了一个热衷于并购的大型企业所面临的架构现代化挑战。在公司外部,公众期望Salesforce提供的多样化产品彼此之间能够实现无缝对接。然而,在公司内部,尽管业务和产品领导层也持有同样的期望,但是技术方面情况却大相径庭。每次并购都进一步加剧技术架构的复杂性,带来在不同时代、不同文化背景下开发的落后架构的单体系统,而且这些系统包含运行在不同的基础设施栈上的技术栈,需要在同一个组织内实现高效的无缝对接。

为了打造统一的用户体验,公司启动了多项整合系统的计划,比如引入一个集中的统一身份认证解决方案。但是,由于需要兼顾多个团队及其需求,因此这些计划的推进速度十分缓慢。此外,我还观察到了其他的一系列挑战,包括团队在大局中迷失方向、形成信息孤岛、用户体验不连贯、能力重复、领域界限不清晰且缺乏对齐,以及在技术和基础设施的选择上的不一致。

并不是所有采取并购战略的公司都有Salesforce那样的规模,但在一定程度上,这些挑战的部分或全部可能同样适用。因此,为了确定收购后最佳的架构布局,可能需要从根本上重新考虑产品、领域、软件及团队的布局。

提示

如果想深入了解与本节主题密切相关的行业优秀案例,请参考Ora Egozi Barzilai在2019年MuCon会议上的演讲(http://mng.bz/lW6R)。她分享了自己在2016年Taboola完成收购之后,领导多次架构现代化改造的经验。

如果你的组织正在积极寻求通过收购实现增长,却发现现有的架构难以融合新收购公司的技术,那么在你的架构现代化战略中,一个重要步骤就是识别这些挑战,并展示架构现代化如何促进新系统的快速整合和利用。

3.1.5 糟糕的用户体验成为公司发展的绊脚石

对于某些产品而言,用户体验是决定其商业成功与否的关键因素。当用户体验不佳时,仅仅重新设计网站往往不能从根本上解决问题,深层次的架构现代化或许是解决方案的关键。

不可靠的架构是导致糟糕用户体验的根本原因之一。我的朋友Dan Young就有过一次不愉快的经历。2021年秋,他想租辆车,但却因为架构问题导致其经历了糟糕的用户体验,意外租回了三辆车。尽管网站后台成功创建了预订,但却返回错误信息,结果网站让他重试支付。租车公司最初只同意给他退还一笔预订的费用,这给Dan带来了不必要的压力,并彻底损害了Dan对该品牌的信任。

在我参与的一个系统架构现代化项目中,遇到了一个显著的用户痛点:用户无法输入足够的工单信息,导致需要额外通过电话或书信进行沟通的烦琐过程,该过程令用户感到沮丧。遗憾的是,字符输入限制是由XML Schema、数据库和中间数据库几个脆弱的落后系统所共同强制实施的,这使得看似简单的用户体验问题因架构的多层复杂性而难以解决。

不熟悉技术限制的领导者有时会认为用户体验问题可以通过重新设计网站来解决,却没有意识到需要更深入的架构现代化工作。因此,有必要帮助所有利益相关者理解用户体验问题的深层原因,以及不解决这些根本问题将面临的局限。这关乎的是一种深层次而非仅仅表面的改进。

3.1.6 低效的内部工具和流程

对于一些组织而言,面向内部用户的产品的用户体验问题可能与面向外部的产品一样严重,甚至更糟。通常会认为,相比于外部用户,员工使用的工具的用户体验并不是那么重要。这种看法导致依赖内部系统的员工(比如代理人和案件处理人员)在使用这些工具时遇到挑战,难以高效地完成任务。尤其是当系统经过长时间的使用后性能逐渐下降,运营成本增加和关键交付的延迟可能成为组织所面临的主要问题。

我曾协助过一家公司,其代理人因需使用三种不同的工具完成一项简单任务而感到沮丧。这些工具不仅学习曲线陡峭而且用户体验也明显落后,加剧了不断在不同工具间切换所带来的不便。此外,案件处理的交付时间也远超预期,迫使该组织不得不考虑增聘代理人来应对不断增加的工作量以满足业务需要。

三种复杂的内部工具导致培训新代理人所需的成本、时间和精力过高。随着时间推移,这一问题演变成该组织发展新产品计划的重大障碍,因为组织发现自己无法迅速或有效地扩展流程的处理能力。这使得组织面临着必须要对内部系统的用户体验和架构进行现代化改造的局面。

3.1.7 改善招聘和留住人才

招聘和留住有才华的员工是架构现代化可带来的关键收益之一,但是这一点经常被忽略。在2018年,我为一家欧洲的大型航空公司工作,期间发现该公司难以招聘和留住经验丰富的工程师。其中一个主要原因是公司依赖于落后架构的C++单体系统,该系统包含超过一万条业务规则,对于富有才华的专业人士来说,这种工作缺乏吸引力。因此,公司不得不过分依赖初级工程师和应届毕业生,这使得系统的架构问题进一步恶化。在最初的两天研讨会上,我就能明显感觉到这种紧张的氛围。公司迫切希望寻找能够迅速实施的解决方案,以改变这一现状。

在适宜的环境下,人才是推动产品改进、加速创新,以及构建可持续发展系统的关键。现代化的架构或者对架构现代化的真诚投入,都能显著提高吸引人才的机会。对他们来说,吸引力在于有机会解决振奋人心的问题和展现潜力,而不是与落后系统及僵化流程做无望的抗争。

招聘和留住人才可能不是架构现代化的主要动机,但这是值得强调的一点。而且可能比你意识到的更为重要。 rn2nuflWxn2kcwh8JazRFgXPHLYkPc57taIoDIjaOV43ylai87Wc63HrRbz6RNzs

点击中间区域
呼出菜单
上一章
目录
下一章
×