概要
放置コストを円/月で定量化
「検索が遅い」「地味に面倒」という定性評価を、CVR損失×客単価・直接工数+インシデント期待値・発生確率×想定損害という円換算の放置コストに翻訳する。
RICE算出根拠の明記と単位統一
Reach/Impact/Confidence/Effortを主観点数ではなくデータソース・標準スケールで算出し、候補間でReachの単位(対象期間・母集団の定義)を揃える。
テールリスクはRICEの枠外で扱う
「過去に実績がない=リスクが低い」は誤り。低頻度・破局的なセキュリティ/コンプライアンス負債は期待値評価+強制フロア配分で別建て管理する。
複利的コスト増大モデル
技術的負債は放置期間に応じて機会損失が複利で拡大する。成長率を織り込んだ累積シミュレーションで「今すぐやる理由」を示す。
問題
ECサイト MOps チームのシニアエンジニアとして、四半期の技術投資枠(エンジニア120人日)の配分を決める役員会向けに、後輩エンジニアが作成した「技術的負債返済 優先順位付け提案書」ドラフトをレビューし、承認を得られるレベルへ再設計することになった。以下の Bad 提案書ドラフトには 7つの問題点が潜んでいる。問題点を全て洗い出し、Good 提案書へ再設計してください。
制約・前提条件
- エンジニア単価: 80万円/月(20営業日=4万円/人日、160時間=5,000円/時間)
- 四半期の技術投資枠: 120人日
- 候補①: 商品検索APIのN+1クエリ問題 — 平均レスポンス650ms(うちN+1起因が500ms)。月間検索セッション50万件、検索経由CVR 2.5%、平均客単価6,000円。社内実測値: レスポンス100ms短縮ごとにCVRが+0.15pt改善。必要工数: 1.5人月。EC全体の月次成長率: 3%
- 候補②: 注文管理バッチの手動SQL修正 — ステータス不整合が月10件発生し都度2時間で手動修正。過去1年で2件、誤操作起因の誤在庫更新インシデント(1件あたり是正対応3人日+顧客対応コスト概算50万円)。影響は月平均40件の注文。必要工数: 1人月
- 候補③: 決済ログへのPII平文出力 — 個人情報保護法・PCI DSS準拠上の負債。監査での指摘実績はまだないが潜在的な影響範囲は全会員30万人。指摘時の是正・レピュテーション毀損コスト概算3,000万円、発生確率は年5%と仮定。必要工数: 0.5人月
悪い提案書 (Before)
件名: 技術的負債 返済優先順位のご提案
候補①: 商品検索APIのN+1クエリ問題
→ 検索が遅い。重要度: 高
← 問題①: 放置コストが円換算で定量化されていない
候補②: 注文管理バッチの手動SQL修正
→ 毎月エンジニアが手で直している。地味に面倒。重要度: 中
候補③: 決済ログへのPII(個人情報)平文出力
→ セキュリティ的に良くないが、今のところ苦情は0件。重要度: 低
← 問題⑥: 「実績なし=低リスク」という誤った推論
RICEスコアで優先順位をつけました:
候補① Reach=5, Impact=5, Confidence=5, Effort=2 → スコア62.5
候補② Reach=3, Impact=3, Confidence=3, Effort=2 → スコア13.5
候補③ Reach=0(苦情実績なし), Impact=2, Confidence=4, Effort=1 → スコア0
← 問題②③④⑤: Reach/Impactが主観点数、Confidence根拠なし、
Effort内訳なし、Reachの単位が候補間でバラバラ
→ よって候補①→②→③の順で着手します。候補③は当面見送りで問題ないと考えます。
← 問題⑦: 単月の静的比較のみ。放置による複利的コスト増大が未考慮
ヒント(段階的開示)
ヒント1 — 方向性
ヒント2 — アプローチ
- 問題①: 各候補の「重要度」が定性的な形容詞のみ → 放置コストを円/月で試算する(候補①はCVR損失×客単価、候補②は直接工数+インシデント期待値、候補③は発生確率×想定損害の期待値)
- 問題②: ReachがRICEの単位定義(一定期間内に影響を受ける人数)に沿っていない → 候補ごとに算出根拠とデータソースを明記した表にする
- 問題③: Impactが1〜5点の主観評価 → RICE標準スケール(massive=3 / high=2 / medium=1 / low=0.5 / minimal=0.25)を使う
- 問題④: Confidenceの根拠が示されていない → 過去実績・PoCの有無を明記する
- 問題⑤: Effortが単一点見積もり → 内訳(設計・実装・テスト)を示す
- 問題⑥: RICEスコアのみで機械的に優先順位を決定し、候補③(過去実績が少ない=低リスクではないテールリスク)を実質的に見送っている → RICEの枠外で扱う特例スコアリング(規制対応の強制フロア配分)を設計する
- 問題⑦: 単月の静的コスト比較のみで、放置による複利的なコスト増大(EC成長に伴う機会損失の拡大)を考慮していない → 複数ヶ月放置した場合の累積コストをシミュレーションする
ヒント3 — 誘導
【RICEスコア】
RICE = (Reach × Impact × Confidence) / Effort
Reach: 一定期間(月次)に影響を受ける人数・件数(データソースを明記)
Impact: massive=3 / high=2 / medium=1 / low=0.5 / minimal=0.25
Confidence: 過去実績・PoCの有無に基づく実現可能性(%)
Effort: 人月(内訳を明記)
【放置コストの複利モデル】
t ヶ月後の月次機会損失 = 現在の月次機会損失 × (1 + 月次成長率)^t
累積放置コスト(0〜Tヶ月) = Σ[t=0→T-1] 現在の月次機会損失 × (1 + 月次成長率)^t
【期待値ベースのリスクコスト(テールリスク向け)】
期待損失(年) = 発生確率 × 想定損害額
問題点分析(7点)
| # | 問題点 | 分類 | 改善方法 |
|---|---|---|---|
| 1 | 放置コストが円換算で定量化されていない | 定量化 | CVR損失・工数・期待損失で月次コストを試算 |
| 2 | Reachの単位が候補間でバラバラ | RICE誤用 | データソース・対象期間を明記した算出根拠表 |
| 3 | Impactが独自の1〜5点主観評価 | RICE誤用 | RICE標準スケール(massive/high/medium/low/minimal) |
| 4 | Confidenceの根拠が不明 | RICE誤用 | 過去実績・PoC有無を明記 |
| 5 | Effortが単一点見積もり | 見積もり | 設計/実装/テストの内訳を明記 |
| 6 | 「実績ゼロ=低リスク」の誤推論でテールリスクを軽視 | リスク評価 | 期待値評価+RICE枠外の強制フロア配分 |
| 7 | 単月の静的比較のみで複利的コスト増大を無視 | 時間軸 | 成長率を織り込んだ累積シミュレーション |
放置コストの複利成長と四半期120人日の最終配分
模範解答
修正①: 放置コスト試算表
| 候補 | 放置コストの構成 | 月次放置コスト |
|---|---|---|
| ①検索N+1 | CVR損失0.75pt(0.15pt×5、500ms÷100ms)× 月間検索セッション50万件 × 客単価6,000円 = 500,000×0.0075×6,000円 | 2,250万円/月 |
| ②手動SQL | 直接工数: 10件×2時間×5,000円/時間=10万円 インシデント期待値: (2件/年÷12)×(3人日×4万円+50万円)≈10.33万円 | 約20.33万円/月 |
| ③PIIログ | 期待損失(年)=発生確率5%×想定損害3,000万円=150万円/年÷12ヶ月 | 約12.5万円/月 |
修正②③④⑤: RICE算出根拠表
| 候補 | Reach(算出根拠) | Impact | Confidence(根拠) | Effort(内訳) |
|---|---|---|---|---|
| ①検索N+1 | 500,000(月間検索セッション、GA/BigQuery実測) | high=2 | 90%(類似キャッシュ層導入実績あり) | 1.5人月(設計0.2+実装1.0+テスト0.3) |
| ②手動SQL | 40(月平均で影響を受ける注文数、DB実測) | medium=1 | 70%(バッチリファクタ実績少なめ) | 1人月(設計0.2+実装0.6+テスト0.2) |
| ③PIIログ | 単位が異質(下記「テールリスク特例」参照) | massive=3 | 100%(マスキングは確立手法) | 0.5人月(実装0.3+ログパージ0.2) |
# 修正③: RICEスコア(単位が揃っている候補①②のみ)
RICE = (Reach × Impact × Confidence) / Effort
候補①: (500,000 × 2 × 0.9) / 1.5 = 900,000 / 1.5 = 600,000
候補②: (40 × 1 × 0.7) / 1 = 28
→ ①(600,000) >> ②(28)
候補③はReachの単位が異質なため通常のRICEスコアに含めず、
テールリスク特例スコアリングで別途評価する。
修正⑦: 複利的コスト増大モデル(候補①を6ヶ月放置)
月次成長率3%を仮定し、t ヶ月後の月次機会損失 = 22,500,000 × (1.03)^t
t=0: 22,500,000 × 1.000000 = 22,500,000円
t=1: 22,500,000 × 1.030000 = 23,175,000円
t=2: 22,500,000 × 1.060900 = 23,870,250円
t=3: 22,500,000 × 1.092727 = 24,586,358円
t=4: 22,500,000 × 1.125509 = 25,323,948円
t=5: 22,500,000 × 1.159264 = 26,083,442円
累積放置コスト(6ヶ月) = Σ ≈ 145,538,998円 ≈ 1億4,554万円
返済コスト = 1.5人月 × 80万円/月 = 120万円
ROI = (累積放置コスト回避額 − 返済コスト) / 返済コスト
= (145,538,998 − 1,200,000) / 1,200,000
≈ 119.4倍(+11,945%)
修正⑥: セキュリティ/コンプライアンス負債の特例スコアリング
候補③のReachを「過去の苦情実績件数(=0件)」で測ると、RICEスコアは機械的に0となり最下位に沈む。しかし、これはRICEというフレームワークの適用範囲を誤っている。RICEは「機能改善のように頻度と効果が比較的線形に観測できる施策」を比較するための枠組みであり、低頻度・破局的なテールリスク(セキュリティ・コンプライアンス系の負債)には向かない。「まだ事故が起きていない」ことは「リスクがない」ことを意味せず、むしろ観測できていないだけの可能性が高い。
- Reachは「実績件数」ではなく「潜在的な影響範囲(全会員30万人)」で評価する — RICEに組み込む場合は
(300,000 × 3 × 1.0) / 0.5 = 1,800,000となり、実は候補①を上回る - ただし①③でReachの意味(実測トラフィック vs 潜在的リスク母数)が異なるため単純比較は誤解を招く。規制・コンプライアンス対応は「RICEランキングで競わせる対象」ではなく「四半期投資枠から強制的に確保する例外枠(フロア配分)」として別建てで扱うのが実務上最も安全
感度分析
候補①のConfidenceが 90% → 70%(実績が限定的だったと判明した場合)に低下しても:
RICE = (500,000 × 2 × 0.7) / 1.5 = 700,000 / 1.5 ≈ 466,667
→ 候補②(28)を依然として大きく上回り、優先順位1位は変わらない
→ 候補①の優先度はConfidenceの見積もり誤差に対して頑健(robust)
四半期120人日の最終配分
| 候補 | 配分人日 | 根拠 |
|---|---|---|
| ①検索N+1 | 30人日(1.5人月) | RICEスコア最高、放置コスト最大、感度分析でも順位が頑健 → 即時着手 |
| ③PIIログ | 10人日(0.5人月) | コンプライアンス必須枠として、RICEランキングと無関係に強制確保 → 即時着手 |
| ②手動SQL | 20人日(1人月) | RICEスコアは低いが放置コストは無視できない規模 → 次点で着手 |
| 通常開発枠 | 60人日 | 残枠は通常のプロダクト開発ロードマップへ充当 |
ポイント解説
実務への応用
MOpsチームでは、パフォーマンス改善・運用負荷削減・セキュリティ対応という性質の異なる技術的負債が同じ「投資枠」を奪い合う構造になりやすい。RICEのような定量的フレームワークは強力だが、機械的に適用すると「実績データが取りやすい施策(パフォーマンス改善)」が過大評価され、「実績データが取りにくいがリスクが大きい施策(セキュリティ・コンプライアンス)」が構造的に後回しにされ続けるという盲点がある。本問題の型(放置コスト試算 → RICE算出根拠の明記 → テールリスクの特例扱い → 複利シミュレーション → 感度分析 → 最終配分)をテンプレート化しておくことで、四半期ごとの技術投資配分レビューを「声の大きさ」ではなく「定量的な根拠」で進められる。
今日のまとめ
次のステップ
- 発展問題: 候補①のCVR改善効果(100ms短縮ごとに+0.15pt)は過去の類似施策からの実測値だが、実際には施策ごとに効果の分散があるはずである。この不確実性をPERT三点見積もり(楽観/最頻値/悲観のCVR改善幅)で表現し、放置コストの試算にも信頼区間(P10〜P90)を持たせるとしたら、複利シミュレーションのモデルはどう変わるか設計せよ。
- 参考: RICEスコアリング(Reach/Impact/Confidence/Effort)/ ICEスコアリングとの違い / 技術的負債の「利息」比喩(Ward Cunningham)/ テールリスク・期待値評価 / VaR(Value at Risk)の考え方