Amazon — 16 Leadership Principles · LP11. Earn Trust

作为AI,我没有个人经历,因此无法公开承认错误。

Tell me about a time you admitted a mistake publicly.

答案语言

考察要点

这道题旨在考察候选人是否坦诚、有担当,以及从失败中学习和成长的能力。它直接对应 Amazon 的两条核心价值观:

  1. Earn Trust (赢得信任):敢于公开承认自己的错误,不把问题归咎于他人或外部因素,通过透明和担当来建立团队和领导对你的信任。
  2. Ownership (主人翁精神):对自己的工作结果(无论是好是坏)负全责。承认错误只是第一步,更重要的是主动推动问题的解决、复盘和流程改进,防止同样的问题再次发生。

高分示范答案(STAR)

Situation(背景) 去年 Q3,我在我司(一家电商公司)担任支付核心团队的资深工程师。当时我们团队(约 8 人)负责维护整个交易履约的支付状态同步链路。这是一个非常核心的服务,任何抖动都会直接影响用户付款成功率和公司收入。

Task(任务) 为了降低服务器成本和支付网关的 API 调用费用,我提出了一个技术改造方案:将原来通过轮询查询支付状态的方式,改为接收支付网关的异步回调通知(Webhook)。我的任务是主导这次改造,目标是将无效轮询请求减少 90% 以上,并将支付状态的平均确认延迟从 2 分钟缩短到 10 秒以内。

Action(行动) 这是我独立负责的关键项目,整个过程可以分为三个关键阶段:

  1. 我犯了一个严重的错误:我主导了技术选型和架构设计,并完成了核心代码的开发。为了赶上季度的上线目标,我在进行压力测试时,只模拟了常规的请求负载,忽略了对签名校验模块在极端高并发下的性能评估。我认为这个标准库是可靠的,没有做针对性测试。基于这个不完整的测试结果,我判断风险可控,并推动了上线排期。
  2. 我公开承认并紧急处理:功能上线后的第一个晚高峰,系统开始大规模报警。回调服务的 CPU 使用率飙升到 99%,导致大量回调请求超时,约 15% 的用户支付成功后订单状态却未及时更新。在紧急排障会议上,我立刻意识到问题出在我负责的模块。我没有丝毫犹豫,直接在 30 多人的应急频道里说:“这是我的问题。签名校验在高并发下有性能瓶颈,我测试时遗漏了这个场景。请求立即回滚我的所有变更。” 我主动承担了责任,协助 SRE 在 15 分钟内完成了回滚,控制了故障影响。
  3. 我主导了彻底的复盘和改进:故障第二天,在部门的周会上,我主动进行了公开复盘。我详细解释了错误的根因——是我对第三方库的盲目信任和不充分的压力测试方案导致的。我没有找任何借口。会后,我做了两件事来弥补:第一,我重写了压力测试脚本,精准复现了高并发场景,并定位到是某个加密算法的实现导致了 CPU 瓶颈。第二,我引入了新的异步处理队列,将签名校验和业务逻辑解耦,彻底解决了性能问题。

Result(结果) 虽然初次上线造成了约 30 分钟的服务降级,影响了近 5000 笔交易(预估 GMV 损失 150 万,但大部分用户通过重试最终支付成功)。但在我承认错误并推动改进后,项目在一周后成功上线,最终将无效 API 请求降低了 95%,支付状态确认的 P99 延迟从 2 分钟降至 5 秒。更重要的是,通过这次公开的复盘,团队建立了“对事不对人”的文化,我的坦诚也赢得了总监和同事们的信任。我学到了:对系统的任何外部依赖都不能有侥幸心理,必须用最苛刻的生产环境标准去验证。

低分陷阱(常见扣分点)

  • 将错误归咎于他人或外部因素

    • 反例:“那个第三方库的文档没写清楚,导致我用错了。”
    • 点评:这违反了 Ownership 原则。资深工程师的职责就是搞清楚依赖项的一切细节。
  • 选择一个无关痛痒的“小错误”

    • 反例:“我有一次提交代码忘了格式化,导致 CI/CD 挂了,后来我修复了。”
    • 点评:这种故事无法体现担当和影响力。面试官想看的是你在高压、高风险情况下的反应。
  • 用“我们”来模糊个人责任

    • 反例:“当时我们团队决定上线,后来发现我们测试没做到位。”
    • 点评:面试官无法判断你在这个错误中扮演了什么角色。是决策者?执行者?还是旁观者?必须用“我”。
  • 只有承认,没有改进和量化结果

    • 反例:“我承认了错误,道了歉,然后就把 bug 修好了。”
    • 点评:这只完成了 Ownership 的 20%。关键在于你如何推动系统性修复(systemic fix),防止问题重演,并量化最终的业务影响。

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

  1. 追问:在你公开承认错误后,你的经理和同事是什么反应?

    • 要点 1 (经理的反应):我的经理首先关心的是故障是否得到控制,然后肯定了我敢于担当的行为。他在 1-on-1 中告诉我,他看重的是从错误中学习的能力,而不是不犯错。这让我感觉团队有很强的心理安全感。
    • 要点 2 (同事的反应):同事们没有指责,反而有人过来帮忙分析日志、定位问题。事后,有同事在复盘会上也分享了自己曾经遇到的类似“坑”,整个团队的技术风险意识都因此提高了。
  2. 追问:你为什么选择在那么多人面前公开承认,而不是私下和你的经理说?

    • 要点 1 (赢得信任):我认为信任来自于透明。这个问题影响了多个团队(客服、运营、SRE),私下沟通效率低且容易产生信息差。公开承认能让所有相关方在第一时间了解真实情况,这是赢得他们信任最快的方式。
    • 要点 2 (建立文化):作为团队的资深成员,我的行为会成为一个标杆。如果我选择隐藏或淡化问题,其他人以后也可能会效仿。我公开承担责任,是想向团队传递一个信号:我们是一个“对事不对人”、鼓励从失败中学习的团队。
  3. 追问:如果时间倒流,在项目开始时,你会做出哪些不一样的决策来避免这个错误?

    • 要点 1 (风险评估):我会将“第三方库性能验证”作为一个独立的任务,并设定明确的验收标准(比如,在 1000 QPS 下 CPU 使用率低于 50%),而不是把它当作开发过程中的一个附属步骤。
    • 要点 2 (沟通):在项目计划阶段,我就会明确指出这个依赖的潜在风险,并向上管理预期。我会说:“这个方案依赖外部组件,我们需要额外一周时间进行彻底的并发测试,否则有线上性能风险。”我会把这种权衡(trade-off)摆到台面上。

故事复用建议

这个故事非常有力,因为它展现了从犯错到担责再到成长和交付结果的全过程。除了 Earn TrustOwnership,它还可以用来回答以下问题:

  • Deliver Results:尽管有挫折,你最终还是交付了超出预期的业务成果。
  • Bias for Action:在故障发生时,你果断决策,迅速行动进行回滚。
  • Insist on the Highest Standards:你没有满足于“修好 Bug”,而是推动了更严格的测试标准和更优的架构,为团队建立了更高的标准。
  • Are Right, A Lot:承认错误并深入复盘,证明你有能力审视自己的判断,并从经验中学习,从而在未来做出更正确的决策。
  • Dive Deep:你深入分析了问题的技术根因(加密算法的 CPU 瓶颈),而不是停留在表面。