概要
OKR の本質: Output ではなく Outcome を測る
KR に「配信数を増やす」「負債を解消する」を置くのは Output KR(活動・作業の量)。本来の KR は Outcome KR(状態の変化・成果)。例:「配信数 300万通」→「キャンペーン経由 GMV ¥20M/月」。チームが動いた結果、ビジネスがどう変わったかを測る。
Leading KR と Lagging KR の組み合わせ
Lagging KR(遅行指標)は結果を測るが、改善が遅い(GMV・CVR 等)。Leading KR(先行指標)は結果の予測因子を先に測る(開封率・CTR 等)。両方を組み合わせることで「結果が出る前に軌道修正」できる OKR 設計が可能になる。
ICE スコアリング: 施策の定量優先順位
ICE = Impact × Confidence × Ease。各要素を 1〜10 でスコアリングし積算する。議論を「感覚」から「仮説の見える化」へ移行させる。Confidence が低い施策は PoC フェーズを先に置き、Ease が低い施策は分割(スライシング)を検討する。
技術的負債は KR ではなく Initiative に置く
「技術的負債を解消する」は手段(Initiative/Output)。KR に置くと「解消した!」で満足してしまい、ビジネス価値への接続が切れる。正しくは「負債解消によって達成される状態」— Lead Time 短縮・ベロシティ回復 — を KR にする。
問題
ECサイト MOps チームのシニアエンジニア兼テックリードとして、スプリントレビューで PM から共有された Q2 KPI レポートを受けて「Q3 OKR を策定してほしい」と依頼があった。PM が作成した Bad OKR ドラフトには 6 つの設計上の問題 が潜んでいる。問題点を全て洗い出し、Leading/Lagging × ビジネス/品質/信頼性/速度 の 4 軸で Good OKR に再設計せよ。また ICE スコアリングで Q3 施策のトップ 3 を選定せよ。
Q2 MOps キャンペーン配信 KPI レポート
| 指標 | 実績 | 目標 / 業界水準 |
|---|---|---|
| 配信数(メール) | 月平均 2,400,000 通 | — |
| 開封率 | 平均 18.2% | 業界平均 21% |
| クリック率(CTR) | 平均 2.1% | 業界平均 3.5% |
| コンバージョン率 | 平均 0.8% | 業界平均 1.2% |
| 配信エラー率 | 平均 4.3% | SLO: 2.0% 以下 |
| GMV 貢献(推定) | ¥12,400,000/月 | — |
| チームベロシティ | 最近3スプリント: 28, 31, 29 pt | 平均 42 pt |
| 施策 Lead Time | 平均 38 日 | 14 日以内 |
| 技術的負債 | レガシーエンジンが全配信の 61% | — |
制約・前提条件
- OKR: Objective 1 つ + KR 3〜4 つ(4 つ以内推奨)
- Objective: 感情を動かす定性ゴール(数値不要)
- KR: Outcome(状態の変化)のみ。Output(活動量)は KR にしない
- KR はすべて定量・期限付き・ベースライン明示
- KR 達成度は 0〜1.0 で測定可能
- Leading/Lagging を意識して組み合わせる
- 技術的負債解消は Initiative(施策)として位置づけ、KR には直接置かない
悪い OKR (Before)
# Q3 OKR ドラフト(Bad)
Objective:
MOps チームのキャンペーン配信を改善する
# 問題①: 「改善する」は達成基準不明 / 感情を動かさない
KR1:
メール配信数を月 3,000,000 通に増やす
# 問題②: Output KR(配信量の増加)
# 配信数を増やすことが目的ではなく「価値を届けること」が目的
KR2:
開封率を上げる
# 問題③: 定量・ベースライン・期限が全て欠如
# 0.01% 上げるだけで達成できてしまう
KR3:
エラー率を下げる
# 問題④: ベースライン(4.3%)・数値目標・期限が未記載
# SLO との紐付けもなし
KR4:
技術的負債を解消する
# 問題⑤: Output / Initiative KR(活動・作業)
# 「解消した」で満足してビジネス価値と切断される
KR5:
スプリントベロシティを改善する
# 問題⑥: Input KR(プロセス指標)
# ベロシティは開発内部の指標。Outcome ではない
ヒント(段階的開示)
ヒント1 — 方向性
ヒント2 — アプローチ
- KR1(Bad: 配信数増): Lagging KR として GMV 貢献を置く。ベースライン ¥12,400,000 → 目標 ¥20,000,000/月(+61%)
- KR2(Bad: 開封率を上げる): Leading KR として定量化。ベースライン 18.2%、目標 22.0% 以上・CTR 3.5% 以上(業界平均超え)
- KR3(Bad: エラー率を下げる): SRE 的 KR。ベースライン 4.3%、SLO 2.0%、ストレッチ 1.5% 以下
- KR4/5(技術的負債・ベロシティ): 統合して Operational KR に。Lead Time 38 日 → 10 日以内(74% 削減)
- Objective 設計: 「MOps キャンペーンを EC 事業の確かな成長エンジンへ変革し、顧客に届く『1通の価値』を業界トップ水準まで引き上げる」
ヒント3 — Good OKR の骨格
Objective:
MOps キャンペーンを ○○ の成長エンジンへ変革し、
顧客に届く「1通の価値」を ○○ まで引き上げる
KR1(Lagging / GMV):
Q3 末(9/30)時点で、キャンペーン経由 GMV を ¥___/月 に引き上げる
ベースライン: ¥12,400,000 / 目標: ¥20,000,000
KR2(Leading / エンゲージメント):
Q3 末時点で、開封率 ___% 以上・CTR ___% 以上を達成する
ベースライン: 18.2% / 2.1%
KR3(SRE / 信頼性):
Q3 末時点で、配信エラー率を ___% 以下に抑制する
ベースライン: 4.3% / SLO: 2.0%
KR4(Operational / Lead Time):
Q3 末時点で、施策 Lead Time を ___日以内に短縮する
ベースライン: 38 日 / 目標: 10 日以内
ICE スコアリング(施策候補):
施策名 | Impact | Confidence | Ease | ICE Score
問題点分析(6 点)
| # | 問題点 | 分類 | 改善方法 |
|---|---|---|---|
| 1 | Objective が「改善する」— 達成基準不明・感情を動かさない | 定性目標 | 「EC 事業の成長エンジンへ変革し、業界トップ水準まで引き上げる」 |
| 2 | KR1「配信数 300万通」— Output KR(活動量) | Output→Outcome | GMV ¥20M/月(Lagging Outcome KR) |
| 3 | KR2「開封率を上げる」— 定量・ベースライン・期限なし | 定量化 | 18.2% → 22% / CTR 2.1% → 3.5%(Q3 末) |
| 4 | KR3「エラー率を下げる」— ベースライン・数値目標未記載 | 定量化 | 4.3% → 1.5% 以下(SLO 2.0% のストレッチ) |
| 5 | KR4「技術的負債を解消する」— Output/Initiative KR | Initiative化 | Lead Time 38 日 → 10 日以内(効果を KR 化) |
| 6 | KR5「ベロシティを改善する」— Input(内部プロセス)指標 | Input→Outcome | Lead Time KR(KR4)に統合し、市場への速さで測る |
OKR 構造図 — Bad vs Good の変換フロー
模範解答
## 問題点の列挙(6点)
### 問題①: Objective が感情を動かさない
Bad: 「MOps チームのキャンペーン配信を改善する」
理由: 「改善する」は達成基準が曖昧で、何が達成されると「勝ち」か不明。
チームを鼓舞する定性ゴールとして機能しない。
Fix: 「MOps キャンペーンを EC 事業の確かな成長エンジンへ変革し、
顧客に届く『1通の価値』を業界トップ水準まで引き上げる」
### 問題②: KR1 が Output KR(活動量)
Bad: 「メール配信数を月 3,000,000 通に増やす」
理由: 配信数増加は活動量(Output)。CVR が下がれば GMV は変わらない。
「配信数を増やすこと」ではなく「GMV に貢献すること」が目的。
Fix: 「Q3 末(9/30)時点で、キャンペーン経由 GMV を ¥20M/月 に引き上げる」
ベースライン: ¥12,400,000(+61% ストレッチ)
### 問題③: KR2「開封率を上げる」が定量・ベースライン・期限ゼロ
Bad: 「開封率を上げる」
理由: 0.01% 上げるだけで達成できてしまう。何をもって「達成」か不明。
Fix: 「Q3 末時点で、メール開封率 22.0% 以上・CTR 3.5% 以上を達成する」
ベースライン: 18.2% / 2.1%(業界平均 21% / 3.5% 超え)
### 問題④: KR3「エラー率を下げる」がベースライン・数値目標未記載
Bad: 「エラー率を下げる」
理由: SLO 2.0% という情報があるのに活用されていない。
「下げる」では SLO 遵守の優先度が見えない。
Fix: 「Q3 末時点で、配信エラー率を 1.5% 以下に抑制し SLO を全 Sprint 遵守」
ベースライン: 4.3% / SLO ストレッチ: 1.5%(SLO 2.0% より厳格)
### 問題⑤: KR4「技術的負債を解消する」が Initiative KR(Output)
Bad: 「技術的負債を解消する」
理由: 技術的負債解消は「手段」(Initiative)。KR に置くと
「解消した!」で満足し、ビジネス価値(Lead Time 短縮)との接続が切れる。
Fix: 「技術的負債解消」をInitiativeに。KR4を「Lead Time 10日以内」にする
→ 技術的負債解消の「効果」で測定する
### 問題⑥: KR5「スプリントベロシティを改善する」が Input KR
Bad: 「スプリントベロシティを改善する」
理由: ベロシティは開発内部の Input 指標。
ベロシティが上がっても市場に早く届かなければビジネス価値なし。
Fix: KR4(Lead Time 38 日 → 10 日以内)に統合。
市場への速さ(Outcome)で測定する
# Q3 OKR(Good)— MOps キャンペーン配信基盤
Objective:
MOps キャンペーンを EC 事業の確かな成長エンジンへ変革し、
顧客に届く「1通の価値」を業界トップ水準まで引き上げる
──────────────────────────────────────────
達成イメージ:
- 1通 1通がパーソナライズされ、開封→クリック→購買まで自然につながる
- エラー・遅延のないキャンペーン基盤で全施策が安心して動かせる
- アイデアが2週間で本番に届き、仮説→検証のサイクルが高速化する
KR1(Lagging / ビジネス成果 — GMV):
Q3 末(2026-09-30)時点で、
キャンペーン経由 GMV を ¥20,000,000/月 に引き上げる
─────────────────────────────────────────
ベースライン: ¥12,400,000/月(Q2 平均)
目標: ¥20,000,000/月(+61%)
測定方法: BigQuery campaign_attribution mart / Looker Studio 月次レポート
達成度: ¥0→¥12.4M = 0.0、¥20M = 1.0、¥25M = 1.25(超過達成)
KR2(Leading / エンゲージメント品質):
Q3 末時点で、メール開封率 22.0% 以上・CTR 3.5% 以上を達成する
─────────────────────────────────────────
ベースライン: 開封率 18.2%、CTR 2.1%(Q2 平均)
目標: 開封率 22.0%(業界平均 21% 超え)、CTR 3.5%(業界平均到達)
測定方法: メール配信プラットフォームの週次レポート
Leading 理由: 開封率↑→CTR↑→CVR↑→GMV↑ の因果チェーン先頭
KR3(SRE / 信頼性 — SLO 遵守):
Q3 末時点で、配信エラー率を 1.5% 以下に抑制し、
SLO(2.0% 以下)を全スプリントで遵守する
─────────────────────────────────────────
ベースライン: 4.3%(Q2 平均、SLO 超過中)
目標: 1.5% 以下(SLO 2.0% のストレッチ)
測定方法: DataDog SLO ダッシュボード / Pub/Sub DLT dead_letter_message_count
SLO 超過スプリントが 0 であることも同時に測定
KR4(Operational / 開発速度 — Lead Time):
Q3 末時点で、施策の要件定義〜本番 Lead Time を 10 日以内に短縮する
─────────────────────────────────────────
ベースライン: 38 日(Q2 平均)
目標: 10 日以内(74% 削減)
測定方法: Linear / Jira: 「要件定義 Issue 作成日」〜「本番デプロイ日」の差分
Initiative: レガシーエンジン Python 3.12 移行 / Argo Workflows 自動化
(技術的負債解消は Initiative として実行、効果を KR4 で測定)
# Q3 施策 ICE スコアリング
## スコアリング基準
# Impact (1-10): KR 達成への貢献度(高いほど直接的・大きい)
# Confidence (1-10): 達成確度(高いほど不確定要素が少ない)
# Ease (1-10): 実装容易さ(高いほど工数・リスクが少ない)
# ICE Score = Impact × Confidence × Ease
施策候補 1: Pub/Sub DLT + リドライブ自動化(エラー率削減)
Impact: 6 — エラー率 4.3%→1.5% 達成でKR3が大幅改善
Confidence: 9 — Pub/Sub DLT の実装パターンは確立済み・技術的リスク低
Ease: 7 — 既存 Pub/Sub 設定変更 + Terraform 追加が主作業
ICE Score: 378 ← 優先度 1位
施策候補 2: AI パーソナライズ件名生成(LLM × セグメント)
Impact: 8 — 件名は開封率に最大影響。+20〜30% 改善事例あり(→KR2)
Confidence: 7 — LLM API コスト・品質のばらつきが不確定要素
Ease: 6 — Vertex AI Gemini API + A/B テスト基盤の整備が必要
ICE Score: 336 ← 優先度 2位
施策候補 3: レガシーエンジン Python 3.12 移行 + Argo Workflows 自動化
Impact: 7 — Lead Time 38日→10日達成には必須の基盤改善(→KR4)
Confidence: 8 — 移行パターンは既知。主リスクは工数見積もりの精度
Ease: 5 — 全配信の61%を占めるレガシーエンジン移行は中〜大規模作業
ICE Score: 280 ← 優先度 3位
# 選定理由サマリー
# 1位 Pub/Sub DLT (378): 確度が最も高く、即効性があるSLO改善施策
# 2位 AI件名生成 (336): 開封率KR2のLeading改善に最大インパクト、PoCで先行検証
# 3位 Py3.12移行 (280): KR4のLead Time達成に必須だが工数が大きいため計画的に着手
| KR | 分類 | 測定指標 | 設計意図 |
|---|---|---|---|
| KR1 GMV ¥20M/月 | Lagging / ビジネス成果 | BigQuery campaign_attribution mart | すべての施策が最終的に GMV 向上に寄与するかを測る。配信数ではなく「売上への貢献額」 |
| KR2 開封率 22% / CTR 3.5% | Leading / エンゲージメント | メール配信プラットフォーム週次レポート | GMV(Lagging)が悪化する前に軌道修正できる先行指標。1通の質向上がゴール |
| KR3 エラー率 1.5% | SRE / 信頼性 | DataDog SLO ダッシュボード / DLT | SLO 2.0% より厳格なストレッチで設定。信頼性は長期的なブランド・顧客体験に直結 |
| KR4 Lead Time 10 日 | Operational / 速度 | Linear/Jira: Issue作成〜本番デプロイ差分 | 技術的負債解消・プロセス改善の「効果」を Outcome で測る。ベロシティでなく市場への速さ |
ポイント解説
「改善する」「向上させる」は達成基準が曖昧で動機づけにならない。Objective はチームが「この方向に全力を注ぎたい」と思える世界観を描く。「EC 事業の確かな成長エンジンへ変革し、顧客に届く『1通の価値』を業界トップ水準まで引き上げる」のような表現は、エンジニア・PM・経営すべてが同じビジョンを共有できる。Objective に数値を入れる必要はなく、数値は KR に委ねる。
「配信数 300万通」「負債を解消する」「ベロシティを改善する」はすべて活動・作業(Initiative/Output)。OKR の KR は「その施策を実行した結果、世界がどう変わったか」を測る。「Q3 末時点で GMV が ¥20M になっている」「Lead Time が 10 日以内になっている」という状態記述が正しい KR の形。
Lagging KR(GMV 等の結果指標)だけでは「Q3 末に失敗とわかる」という手遅れ情報しか得られない。Leading KR(開封率・CTR 等の先行指標)を組み合わせることで「GMV が悪化する前に、開封率の下落から軌道修正できる」早期警戒システムになる。Leading KR は「GMV の予測因子」として因果チェーン(開封率↑→CTR↑→CVR↑→GMV↑)を意識して選ぶ。
「レガシーエンジンの Python 3.12 移行」は技術的手段(Initiative)。これを KR に置くと「移行が完了した!」で達成とみなされ、Lead Time が短縮されたか・ベロシティが回復したかというビジネス価値への接続が切れる。正しくは「移行によって達成される状態」= Lead Time 10 日以内を KR にし、移行が Initiative として実行される。
Impact × Confidence × Ease の 3 軸は絶対値ではなく、チームで合意した仮説の可視化。Confidence が低い施策(AI 件名生成: 7)は必ず A/B テストを事前設計し、HARKing(後知恵仮説)を防ぐ。Ease が低い施策(Python 移行: 5)は「スライシング」= 最小実行可能ユニットに分割して着手する。
「ベースライン: 18.2% → 目標: 22.0% / Q3 末 / メール配信プラットフォーム週次レポートで測定」という4要素が揃ってはじめて達成度 0〜1.0 で測定できる KR になる。測定方法が曖昧なままだとスプリントレビューで「どのデータを見ればいいか」論争が起きる。
実務への応用
- スプリントレビューでの KR 達成度確認: 各スプリント末に KR の達成度(0〜1.0)を確認。0.7 未満の KR は「ブロッカー特定 → 施策見直し」を即実行。特に KR2(Leading)が下落していれば KR1(Lagging の GMV)が悪化する前に方針転換できる
- 技術的負債 vs ビジネス価値の CFO 提案: KR4「Lead Time 10 日以内」を根拠に「レガシーエンジン移行工数 X スプリント = Lead Time Y 日短縮 = 施策数 Z 本増 = GMV ¥__ 億円/年の機会損失解消」と数値で提案できる
- ICE からの A/B テスト設計: Confidence が 7 未満の施策(AI 件名生成)は A/B テスト(50:50 split / 2 週間 / 検出力 80% / MDE = ±0.5%)を必ず事前設計し、HARKing(後知恵仮説立案)を防ぐ
- SLO を OKR KR に組み込む: SRE 的な KR3「エラー率 1.5% 以下」をスプリントゴールに含めることで、インフラ改善が「ビジネス目標」として可視化される。DataDog の Error Budget burn rate アラートを KR3 の自動監視に活用する