Staff+ 工程师如何推动跨团队重大技术变革

许多资深工程师在职业生涯中都会经历这样一个时刻:他们发现了一项对组织未来至关重要的技术投资,可能是一次大规模架构调整,也可能是一项需要持续数年的基础设施改造。

但 Staff+ 工程师如何推动重大技术变革,并让跨团队技术方案真正进入产品和研发路线图,往往比提出方案本身更困难。

他们认真撰写了一份 RFC,发给相关人员评审,也收到了一些含糊的赞同意见。

Staff+ 工程师如何推动跨团队重大技术变革

大家似乎都认为这个方向“听起来不错”,但最终,路线图上没有增加任何项目,也没有人真正承诺投入资源。

这种既没有明确反馈、也没有实际结果的状态,往往令人沮丧。

公司似乎在不断回避一个重要问题,而资深工程师也无法借此展现 Staff+ 层级所要求的跨团队、长期性影响力。

但这正是迈向更高层级技术工作的必经阶段。

工程师过去熟悉的团队级 RFC 流程,在推动更大规模的技术变革时往往不再适用。此时,他们通常会遇到以下几类挑战。

推动重大技术变革的常见挑战

管理层利益相关者

工程经理、总监和其他管理者,是跨团队重大技术变革能否落地的关键。

说服其他工程师相信一项变更在技术上安全可行,往往并不是最困难的部分。

真正困难的是,说服管理者为一项成本高昂、短期回报可能并不明显的技术投资配置人员、时间和预算。

技术利益相关者

其他团队的资深工程师或技术负责人,需要支持或认可新的架构方向。

但他们通常比提案发起者更熟悉自己负责的系统,也更担心大规模变更会打乱团队计划,或者给现有系统带来新的风险。

系统复杂性

当一项技术变革涉及多个团队,并且需要持续数年时,方案很容易变得异常复杂。

设计者需要同时考虑架构、迁移、兼容性、团队边界、实施顺序和资源配置。信息越多,方案就越难解释,也越难评审。

规划周期

重大技术变革的规划和评审通常需要几个月,真正实施则可能持续数年。

其中包含大量模糊的沟通与协调工作。因此,参与者很难判断:项目是在稳步推进,还是已经悄无声息地陷入停滞。

我参与过几项持续多年的重构计划,也帮助过多位工程师规划类似项目。

我无法直接解决每家公司的具体技术问题,因为这些问题高度依赖实际环境,但可以分享一套帮助大型技术项目持续推进的里程碑框架。

里程碑 0:记录当前系统的权衡与限制

大型技术计划遇到的第一个问题通常是:负责评审方案的领导者已经远离一线代码很久,对系统的理解可能已经过时、不够准确,甚至彼此之间并不一致。

同时,他们往往也没有足够时间重新调查整个系统。

如果缺少一套共同的系统认知,评审者就会把大量时间花在理解系统如何运作上,而不是讨论下一步应该选择什么方向。

为了加快讨论,你需要能够简洁地帮助合作者建立对当前系统的共同认知。

可以从以下几个方面着手。

更新系统文档

为现有文档补充一份系统概览,重点说明:

  • 核心架构模式;
  • 当前设计的主要权衡;
  • 系统边界;
  • 与其他系统的连接关系;
  • 现有约束和已知风险。

这份文档不需要详细解释每一个实现细节,重点是让并不熟悉代码的人快速理解系统整体。

对于需要长期维护的系统知识,可以借助 PingCode Wiki 等知识库,将系统概览、架构图、RFC、接口说明和迁移记录集中沉淀,并与具体需求、项目和研发过程关联起来。这样不仅便于评审者快速建立系统认知,也能减少人员变动后关键背景和历史决策的流失。

补充架构决策历史

记录系统为什么会形成现在的样子。

尤其要说明那些没有被正式记录的决定,包括:

  • 当时有哪些可选方案;
  • 为什么选择了当前方案;
  • 哪些决定是主动做出的;
  • 哪些设计只是历史演进的结果;
  • 当时成立的假设现在是否仍然成立。

许多今天看起来“不合理”的系统设计,在当时的业务和资源条件下可能完全合理。

理解这些背景,有助于避免团队重复过去的讨论。

建立共同的技术语言

可以组织读书会或论文阅读小组,共同学习这一问题领域中的行业标准模式、概念和术语。

这样做可以减少不同团队因为词汇和认知不一致而产生的误解。

把里程碑 0 视为探索阶段

这项准备工作可能会揭示新的信息,从而改变你对问题和解决方案的理解。

因此,我建议把里程碑 0 视为一项探索性工作或能力发展项目,而不是一开始就承诺解决某个特定问题。

这也是一个很好的检查点,可以重新判断:这个问题现在是否仍然值得解决?

也许组织当前还有更紧迫的问题。即便如此,新增的系统文档仍然能够帮助新加入的工程师理解系统,因此这项投入并不会白费。

里程碑 1:跨团队技术问题获得管理层认可

跨团队技术变革,需要大量工程师共同参与。

他们需要帮助你了解变更对其他系统的影响,探索可能的方案,并最终承担一部分实施工作。

但说服工程师暂时放下日常任务,投入时间参与设计和实施,往往比完成技术设计本身更具挑战性。

为了获得这些支持,最好在管理层中找到一位明确的倡导者,例如工程总监或更高级别的负责人。

同时,你需要撰写一份问题陈述,清楚说明为什么这个问题值得投入宝贵的工程资源。

下面是一份我经常使用的问题陈述模板。

理想状态

理想情况下,系统应该能够……

用一句话描述你希望达到的状态。

当前现实

但目前,系统……

用一句话概括当前最主要的痛点。

由此产生的影响

列出当前问题对业务和工程组织造成的影响,例如:

  • 影响用户体验;
  • 限制业务增长;
  • 增加系统风险;
  • 消耗大量工程时间;
  • 降低交付速度;
  • 导致运维成本持续上升。

建议采取的行动

建议由某个跨团队工作组评估并设计解决方案,解决上述问题,并由指定的管理者和技术负责人参与评审。

同时,应明确说明,方案必须保留哪些最重要的系统特性,例如可靠性、安全性或兼容性。

其他考虑因素

简要说明:

  • 相关但不在本次范围内的问题;
  • 过去已经开展的工作;
  • 尚未解决的关键问题;
  • 已知限制和依赖关系。

我建议将问题陈述控制在一到两页以内。

篇幅过长,通常意味着你还没有识别出最核心的问题,这也会让后续方案设计失去重点。

篇幅过短,则可能说明调查还不够充分,或者尚未与足够多的利益相关者沟通,因而没有真正理解项目风险。

此外,还应该把质量属性和业务影响明确记录下来。

质量属性可能包括:

  • 性能目标;
  • 可用性目标;
  • 安全要求;
  • 可扩展性要求;
  • 恢复时间目标。

业务影响则可以包括:

  • 可以节省多少工程工时;
  • 能够降低多少基础设施成本;
  • 可以减少多少故障损失;
  • 能够支持哪些新的业务能力。

这些内容将成为明确的非功能性需求,帮助团队判断方案做到什么程度才算“足够好”,也有助于估算实施所需的人力。

里程碑 2:重大技术方案已经具备讨论条件

经过几周或几个月的探索,你应该能够使用公司现有的 RFC 模板,撰写一份初步方案。

如果公司没有统一模板,也可以参考海外某些公司公开的技术提案结构。

但大型计划的沟通难度,往往不亚于方案设计本身。

如果把所有分析和实现细节都放进同一份文件,最终很可能得到一份内容极其庞杂、作者难以完成、评审者也难以读懂的文档。

为了避免作者和评审者负担过重,我建议先提炼一份“高层级 RFC”,重点描述需要组织共同批准的核心决策。

这份文档主要应包括以下内容。

关键架构权衡

说明哪些决定会改变系统的重要特性,以及不同方案之间需要作出哪些关键取舍。

例如:

  • 一致性与可用性如何平衡;
  • 短期迁移成本与长期维护成本如何取舍;
  • 集中式架构与分布式架构分别带来什么影响;
  • 新方案会牺牲哪些现有能力。

价值交付里程碑

将长期计划拆分为能够逐步产生价值的阶段,并说明:

  • 每个阶段能够交付什么价值;
  • 关键决策点在哪里;
  • 哪些阶段可以独立停止;
  • 每个阶段预计需要多少成本;
  • 如何判断是否应该继续投入。

团队级 RFC 的范围

把整体问题拆分成多个可以由具体团队负责的子问题。

这些子问题不必在高层级 RFC 中完成详细设计,可以留到后续由负责实施的工程师分别撰写团队级 RFC。

把细节放入附录

更深入的分析、实验结果和技术探索,可以放入附录或独立的辅助文档。

这些细节可能对部分利益相关者非常重要,但并不是所有评审者都需要阅读。

将核心决策与支持材料分开,可以让不同读者按照自己的需要选择阅读深度。

同时,为后续工程师保留关键组件的设计空间,也能够让他们参与改进实现方式,并展示自己在架构设计和 RFC 编写方面的影响力。

当然,任何技术方案只有在充分吸收评审反馈后,才算真正完成。

里程碑 3:跨团队技术方案获得正式批准

当一项计划涉及多个技术系统和团队依赖时,所有负责实施或受到影响的团队,都应该参与评审并正式认可方案。

这类评审最常见的陷阱是:资深工程师往往习惯了团队级 RFC 的审批方式。

在团队内部,只要方案能够充分处理已知风险,并证明不会对系统造成明显损害,通常就可以获得批准。

但对于大规模技术变革而言,“不会造成损害”远远不够。

方案不仅需要在技术上合理,还需要获得相关团队的积极支持和资源承诺。

为了建立这种共识,可以采用一种被称为“根回”的做法。

“根回”原本是一个日语概念,字面上指移植树木前先处理根系。在组织决策中,它指的是:在正式作出集体决定之前,先与所有关键参与者分别沟通,了解他们的意见,并逐步建立共识。

提前与关键决策者一对一沟通

安排与受影响系统的技术负责人和团队负责人分别沟通。

讨论内容可以包括:

  • 他们如何评价当前方案;
  • 他们最关心哪些风险;
  • 哪些部分可能影响他们的团队;
  • 他们希望方案增加哪些保障;
  • 他们是否愿意承诺后续资源;
  • 哪些敏感意见不适合直接写进公开文档。

一对一沟通往往能够获得比公开评审更真实的信息。

根据反馈持续修改 RFC

将每位关键利益相关者的意见与 RFC 逐项核对,并不断调整方案。

这一过程可能需要反复进行多轮。

这并不是在正式会议之前操纵结论,而是在进入集体决策之前,确保重要问题已经得到充分讨论。

最后举行正式批准会议

当所有关键决策者都已经在私下沟通中表达支持后,再安排一次简短的正式审批会议。

会议的目的不再是第一次讨论方案,而是公开确认:

  • 这是目前最合理的方向;
  • 主要风险已经得到处理;
  • 相关团队愿意参与实施;
  • 组织愿意为计划配置必要资源。

可以让每位与会者依次明确表态,确认自己是否支持方案进入实施阶段。

方案获批后,还需要把长期计划转化为明确的行动。可以借助 Worktile 等项目协作工具,将跨团队里程碑、负责人、依赖关系、风险和会议行动项集中管理,避免一项持续数年的变革因为信息分散或责任模糊而逐渐失去推进动力。

至此,计划才算真正获得批准。

Staff+ 工程师推动重大技术变革的关键

推动跨团队重大技术变革,不能只依靠一份技术上正确的 RFC。

Staff+ 工程师还需要建立共同认知、获得管理层支持、设计清晰的价值里程碑,并提前争取关键利益相关者的认可。

这套流程可以概括为四个阶段:

  • 记录当前系统的权衡与限制;
  • 让问题陈述获得管理层认可;
  • 将方案整理为可以讨论的高层级 RFC;
  • 通过跨团队共识建立,获得正式资源承诺。

完成这些工作后,你已经解决了重大技术变革中最容易被低估、却最为关键的一部分:让一个跨团队、持续多年的技术方向,从“听起来不错”变成一项拥有明确支持者、资源承诺和实施基础的正式计划。

接下来,真正漫长的实施工作才刚刚开始。

文章包含AI辅助创作,作者:guo,如若转载,请注明出处:https://docs.pingcode.com/baike/5250220

(0)
guoguo
免费注册
电话联系

4008001024

微信咨询
微信咨询
返回顶部