シナリオ
あなたはSaaS企業 Novalite のシニアエンジニアです。昨日発生した P1 インシデント(決済サービスの503エラー、約40分のダウンタイム)の対応が完了し、今日は正式な ポストモーテムドキュメント(Postmortem Report) を英語で作成して GitHub に PR します。
このドキュメントはエンジニアリングチーム全員、PM(Sarah)、および将来の担当者が参照します。自己完結した記述にすること。
重要なコンテキスト
「誰が悪いか」ではなく「システムと手順の何が失敗を許したか」にフォーカスする。Lessons Learned は人を主語にしない
1年後に初めて読む人が文脈なしで理解できるよう書く。略語・固有名詞は初出時に説明を添える
"We will improve monitoring" は行動アイテムとみなされない。担当者と期限が揃って初めてコミットメントになる
タスク
以下のインシデント情報をもとに、英語のポストモーテムドキュメント(300〜450語) を書いてください。Markdownの見出し・箇条書き・テーブルを使って構造化すること。
payment-service v2.4.1 のメモリリークが根本原因。Kubernetes の OOM Killer による pod クラッシュの技術的連鎖を説明することReport/Doc × Engineering 必須語彙
カードをクリックすると日本語訳と例文を表示します。
ヒント(段階的開示)
ヒント 1 — 構成・方向性
- 6セクション構成を守る: Summary → Timeline → Root Cause → Contributing Factors → Action Items → Lessons Learned。この順番は「事実 → 原因 → 改善」の3層構造で、読み手が必要な部分だけ読めるように設計されている
- 時制は過去形で統一: "The service began returning 503 errors..." など。Action Items のみ現在・未来形が混在してよい
- Lessons Learned の主語はシステムや手順: "The alert threshold was too high" / "The checklist lacked a load test step" — 人を主語にしない
- 冒頭に blameless 宣言を置く: ブロック引用(>)を使って "This is a blameless postmortem..." を入れると、読み手の心理的安全性を確保できる
ヒント 2 — キーフレーズ
"This is a blameless postmortem. Our goal is to understand what happened and prevent recurrence.""The root cause was a memory leak introduced in the v2.4.1 release of payment-service.""The leak caused the pods to steadily consume memory until they hit their limit and were killed by the Kubernetes OOM killer.""The alert threshold was set at 85%, allowing the memory to creep up undetected.""A load test would have surfaced this memory growth pattern in staging.""Monitoring thresholds must be calibrated against failure patterns, not arbitrary percentages."
ヒント 3 — 骨格
モデル解答
On June 11, 2026, our payment-service experienced a P1 outage caused by a memory leak introduced in the v2.4.1 release. The service began returning 503 Service Unavailable errors at approximately 10:45 AM JST, making it impossible for users to complete checkout. Approximately 1,200 users were affected over a 40-minute window. Service was fully restored at 11:25 AM JST via a rollback to v2.4.0.
- 10:45 AM
payment-servicepods started crashing in production; 503 errors began spiking in Datadog. - 10:52 AMOn-call engineer declared a P1 incident and looped in the backend team.
- 11:10 AMKevin Park identified the root cause: a memory leak in the v2.4.1 release deployed the previous day.
- 11:25 AMRolled back to v2.4.0 and restarted pods. Checkout flow fully restored. Incident resolved.
The root cause was a memory leak in a new feature shipped as part of the v2.4.1 release. The leak caused the payment-service pods to steadily consume memory until they hit their limit and were killed by the Kubernetes OOM killer, resulting in repeated pod crashes and 503 errors downstream.
85%. The leak caused a gradual climb that crossed 90% before we were alerted — by which point the pods were already crashing. An earlier threshold (e.g., 70%) would have allowed preventive action before users were impacted.| # | Action | Owner | Due |
|---|---|---|---|
| 1 | Lower memory alert threshold from 85% to 70% | Kevin Park | 2026-06-13 |
| 2 | Add load testing step to the production deploy checklist | You | 2026-06-19 |
| 3 | Scope and plan canary deployment strategy to limit blast radius on future releases | You + Alex Kim | Q3 2026 |
解説
構成分析
引用ブロック(>)を使って "This is a blameless postmortem." を文書の最初に置くことで、読み手は「責任追及のドキュメントではない」と理解し、心理的安全性を持って読める。この1文がなければ、エンジニアは自分のミスを隠すように書き始める可能性がある。
Root Cause(根本原因)はメモリリーク1点。Contributing Factors(寄与因子)は「なぜ問題が検知・防止できなかったか」のシステム的・プロセス的要因。この2つを混在させると「何が一番の問題だったか」が不明瞭になる。上手なポストモーテムはこの分離が明確。
Action Items をテーブルで書くと、後からフォローアップするときに担当者と期限を即座にスキャンできる。"We will improve monitoring." では誰も動かない。"Owner: Kevin | Due: 2026-06-13" という形式によって初めてコミットメントとして機能する。
"An engineer forgot to add a load test" ではなく "The deploy checklist lacked a load test step" と書く。前者は個人を責め、後者はシステムと手順を改善対象にしている。これがblamelessの言語的実践で、組織の心理的安全性を維持しながら継続的改善を実現する。
重要表現
| 英語表現 | 日本語 | ポイント |
|---|---|---|
blameless postmortem | 非難なしの事後検証 | 文化的前提を宣言するフレーズ。Google SRE Book に由来 |
OOM killer | メモリ超過時の強制終了機能 | Kubernetes + memory leak の文脈で必須の技術用語 |
contributing factor | 寄与因子 | Root Cause との区別が重要。直接原因ではない要素 |
downstream | 下流で | エラーがユーザー側に伝播する様子を一言で表す |
calibrated against | 〜に基づいて調整された | 設定が根拠を持つべきというニュアンスを含む洗練した動詞句 |
not a formality | 形式的なものではない | 「意味のある手順を守れ」という強調。"should be taken seriously" より鋭い |
文化的ポイント
英語でblameless を体現するには「人ではなくシステム・手順を主語にする」言語技術が必要。"The checklist is a system control" という抽象化がその例。日本語のポストモーテムは往々にして「○○さんが確認を怠り」と書いてしまいがち。
英語技術文書では数値を使った記述が評価される。"~1,200 users" / "85% threshold" / "40-minute window" のように定量化することで、文書が具体的かつ客観的になる。曖昧な "many users" や "some time" は避ける。
ポストモーテムは「1年後に初めて読む人」を想定して書く。略語は初出時に展開し(OOM = Out-Of-Memory)、コンテキストを自己完結させることで、ドキュメントが組織の知識資産として長期間機能する。
よくある日本人のミス
ワンランク上の表現(Phase 3 以降)
Detection & Response table (Detection: 7 min / Diagnosis: 18 min / Recovery: 15 min / Total MTTR: 40 min)
"Our MTTR of 40 minutes is above our SLO target of 30 minutes. The 18-minute diagnosis phase represents our biggest opportunity for improvement — a pre-built runbook for memory-related incidents would have reduced this to under 5 minutes."
※ C1表現のポイント: ① Impact を GMV・エラー率で定量化 ② MTTR をフェーズ別に分解して改善余地を特定 ③ SLO との対比で組織目標との乖離を可視化 ④ Runbook 言及で具体的な改善手段を示す
次のステップ
- 発展: このポストモーテムを元に、ステークホルダー(CEO・顧客)向けの簡潔な障害報告メールを書く(Email × Engineering)
- さらに発展: Runbook(インシデント対応手順書)を英語で作成する(Report × Engineering 応用)
- 次回予告: Day 060 — Conversation × Engineering(Phase 2)