Meta — 按核心价值观扩展题库(Prachub 2026) · Be Direct and Respect Your Colleagues

讲讲你曾与一位高级工程师或技术负责人就架构设计产生根本性分歧的经历。你们最终是如何解决的?

Tell me about a time you fundamentally disagreed with a Senior Engineer or Tech Lead on an architectural design. How did you resolve it?

答案语言

考察要点

这道题旨在评估你影响他人的能力,尤其是在没有直接权威的情况下。它直接考察 Amazon 的 Have Backbone; Disagree and Commit (敢于谏言,服从大局) 和 Earn Trust (赢得信任) 这两条领导力准则。一个好的答案会展示你如何用数据和逻辑进行有理有据的反对,同时保持对他人的尊重,并最终致力于团队的最佳方案。

高分示范答案(STAR)

Situation(背景) 去年 Q2,我在我上一家公司的电商核心订单团队(团队约 8 名工程师)。当时我是一名 SDE II。我们正在重构一个有 5 年历史的订单履约状态机系统,这个系统是单体应用的一部分,技术债严重,难以扩展。

Task(任务) 我的任务是设计一个新的、高可用的履约状态机服务。目标是支持未来三年业务量增长 5 倍的预期,要求系统达到 99.99% 的可用性,并且状态转换的 P99 延迟必须低于 200ms。

Action(行动) 我和团队的 Tech Lead(一位资深工程师)在核心架构选型上产生了根本分歧。

  • 分歧点:他主张使用我们内部自研的分布式调度框架(基于 Zookeeper 和定时任务轮询 DB),因为团队对它最熟悉,且已有现成的运维工具。而认为,对于状态机这种事件驱动的场景,应该采用更现代的、基于云原生的方案,比如 AWS Step Functions。我的理由是,自研框架的轮询机制会带来不必要的延迟和数据库压力,且难以做到精确的事件触发和重试,无法满足 200ms 的延迟目标。

  • 我的第一步:用数据说话,而非感觉。我没有在会议上直接反驳他,而是在会后花了两天时间,创建了一个详细的对比分析文档。从五个维度进行了量化对比:1) 性能:通过一个简单的 PoC 证明,Step Functions 的事件驱动模型延迟在 50ms 左右,而轮询机制在压力下延迟可能飙升到 500ms+。2) 成本估算了两种方案未来三年的 TCO(总拥有成本),指出虽然 Step Functions 的单次执行费用更高,但自研方案需要投入至少 2 名工程师 30% 的时间进行维护和扩容,TCO 反而高出 40%。3) 可靠性:AWS 提供了 99.99% 的 SLA,而我们的自研框架历史上每季度至少有一次 P1 级别的故障。4) 开发效率用代码示例展示 Step Functions 的状态定义(JSON 格式)比我们用 Java 硬编码逻辑要简洁 70% 以上。5) 风险:指出了自研方案在极端情况下(如 DB 抖动)可能出现的状态不一致风险。

  • 我的第二步:私下一对一沟通,保留对方面子主动约了 Tech Lead 进行一对一的方案评审。首先肯定了他方案中“利用现有技术栈”的优点,然后将我的分析文档作为“一个补充视角”分享给他。我们深入讨论了我的 PoC 数据和 TCO 计算模型。他最大的顾虑是团队对 Step Functions 不熟悉,有学习成本。

  • 我的第三步:提出共赢方案,化解阻力。针对他的顾虑,主动提出:“我愿意承担前期的技术预研和布道工作。可以先花一周时间,整理出最佳实践和开发模板,并为团队组织一次 Tech Sharing,把学习曲线降到最低。” 这个提议打消了他最后的疑虑。

Result(结果) 最终,Tech Lead 和整个团队都同意采用 AWS Step Functions 的方案。主导了该项目的设计和实施,项目比原计划提前 3 周上线。上线后半年内,新系统平稳支撑了两次大促,订单量峰值达到预期的 3 倍,P99 延迟稳定在 80ms,系统可用性达到 100%(0 次非计划停机)。更重要的是,通过这次合作,和 Tech Lead 建立了非常好的信任关系。学到了,有理有据的反对和主动承担责任是赢得技术辩论的关键。

低分陷阱(常见扣分点)

  • 将技术分歧个人化:“那位资深工程师思想僵化,不愿意接受新技术。” —— 这是大忌,显得你非常不专业,缺乏团队合作精神。
  • Action 停留在“我们”:“我们讨论了一下,最后我们决定用新方案。” —— 面试官会追问:“具体‘你’在讨论中贡献了什么?别人为什么会听你的?”
  • 没有数据支撑的“我觉得”:“我觉得云服务更好,更稳定。” —— 毫无说服力。对比“我做的 PoC 显示,云服务延迟低 80%,TCO 低 40%”。
  • 故事结局是找老板告状:“我和他争执不下,最后我的经理拍板用了我的方案。” —— 这说明你影响同级的能力不足,只能依赖向上管理。
  • 分歧不够“根本”:“他对一个 class 命名有不同意见。” —— 这种琐碎的例子无法体现你的架构思考和影响力。

高概率追问(3 个 + 示范回答要点)

  1. 追问:如果在你做了所有分析之后,你的 Tech Lead 仍然坚持己见,你会怎么做?

    • 要点 1 (服从大局):首先,我会明确表示,虽然我个人有不同看法,但我尊重他作为 Tech Lead 的最终决定权。我会记录下我的顾虑(例如在设计文档的“风险”章节中),然后 100% 投入地去执行他的方案。
    • 要点 2 (积极贡献):在执行过程中,我会尽我所能去规避我预见到的风险。比如,我会特别关注数据库的监控和告警,并主动设计更完善的补偿和对账机制,以确保即使他的方案有弱点,我也能帮助项目取得成功。这体现了 Disagree and Commit 的后半部分。
  2. 追问:这次分歧对你们之后的工作关系有什么影响?

    • 要点 1 (建立信任):关系变得更好了。因为我不是当众挑战他,而是私下带着数据和解决方案与他沟通,他认为我既尊重他又对技术负责。
    • 要点 2 (改变合作模式):在此之后,他经常在做重要技术决策前,主动找我一起“碰撞一下想法”,把我当成了一个可信赖的参谋。我们的团队也形成了“用数据和 PoC 说话”的技术决策文化。
  3. 追问:你是如何做那个 TCO 分析的?成本模型里都考虑了哪些因素?

    • 要点 1 (具体细节):云服务成本部分,我使用了 AWS Pricing Calculator,输入了预估的月均状态转换次数、平均执行时长等参数。
    • 要点 2 (隐性成本):自研方案成本部分,除了服务器和数据库的硬件成本,我重点量化了“人力成本”。我估算维护这个系统需要 2 名工程师投入 30% 的时间,然后乘以公司的平均工程师时薪,再加上了每年 1-2 次故障可能造成的业务损失预估。把这些隐性成本显性化,是说服他的关键。

故事复用建议

这个故事非常扎实,除了 Have Backbone; Disagree and CommitEarn Trust,还可以根据提问的侧重点进行微调,用于回答以下问题:

  • Ownership (主人翁精神): 你没有因为自己不是 Tech Lead 就放弃对最佳方案的追求。
  • Deliver Results (交付成果): 你不仅解决了分歧,还交付了一个远超预期的优秀项目。
  • Bias for Action (崇尚行动): 你没有停留在无休止的争论,而是主动通过写文档和做 PoC 来推动决策。
  • Think Big (着眼大局): 你从未来三年的扩展性、TCO 等长期视角来思考架构,而不仅仅是当前实现。
  • Dive Deep (深入细节): 你深入到成本计算、性能测试、风险评估等细节中去支撑你的观点。