概要
技術的負債の定量化
「コードが汚い」ではなく「年間1,286万円を消費している」と言えると経営層が予算承認しやすい。
ROI 計算
施策ごとの投資額と年間削減効果でROI・ペイバック期間を算出し、優先順位を客観化する。
速度向上の価値換算
機能開発速度20%向上 = 年間開発コスト × 20% = 384万円という具体的な価値として提示できる。
C → A → B の順序
最小投資・最大効果の施策から着手。モニタリング基盤が整うと後続施策の効果測定も容易になる。
問題
CTOから「Argo Workflowsで動いている販促バッチ群の技術的負債を返済すべきか判断したい。費用対効果で整理してほしい」と依頼を受けた。
現状の技術的負債スナップショット
| 負債項目 | 詳細 | 現状の影響 |
|---|---|---|
| ①レガシーバッチ | Pythonスクリプト5本が型ヒントなし・テストなし・マジックナンバー多数 | 月平均2件のバグ対応(各3人日)、新機能追加時リードタイム+2週間 |
| ②データパイプライン二重管理 | BigQueryへの書き込みがdbt経由と直書きSQLが混在(約30テーブル) | データ整合性インシデント: 月1回(調査・修正: 5人日) |
| ③モニタリング欠如 | DataDog未導入・Argo Workflowsのアラートなし | 障害検知が遅延(平均2時間の気づきロス)、月1回の機会損失発生 |
想定リファクタリング施策
| 施策 | 内容 | 工数 |
|---|---|---|
| A: バッチリファクタリング | 型ヒント・pytest追加・マジックナンバー定数化 | 12人日 |
| B: dbt統一化 | 直書きSQL → dbtモデル移行(30テーブル) | 20人日 |
| C: DataDog + OTelセットアップ | Argo Workflows + Cloud Runへのトレーシング導入 | 8人日 |
前提条件
- エンジニア人件費単価: 80万円/月(160時間、1人日 = 5,000円)
- 障害1回による機会損失: 売上100万円(ECサイトの1時間停止に相当)
- 機能開発速度向上の価値 = チーム2名の年間開発コスト × 向上率
- 施策Aにより機能開発速度が20%向上すると試算
期待する回答形式: 数値計算 + 表 + 文章(優先順位の根拠は定量的に)
ヒント(段階的開示)
ヒント1 — 方向性
技術的負債の「現状コスト」は、毎月発生している無駄な工数(バグ対応・インシデント対応)を人件費換算することで定量化できる。「年間コスト = 月次コスト × 12」の基本式からスタートする。
ヒント2 — 施策Aの速度向上価値計算
施策Aの「機能開発速度向上の価値」は、現在チームが機能開発に使っている年間工数コストに20%をかけた値として試算する。
ROI = (年間削減効果 ÷ 初期投資額) × 100ペイバック期間(月) = 投資額 ÷ 月間削減効果
ヒント3 — 計算の骨格
【現状コスト】
①バッチ負債:
バグ対応 = 月2件 × 3人日 × 5,000円 = 30,000円/月 → 年間360,000円
機能開発ロス = 年4回 × 10人日 × 5,000円 = 200,000円/年
②データパイプライン負債:
インシデント対応 = 月1回 × 5人日 × 5,000円 = 25,000円/月 → 年間300,000円
③モニタリング欠如:
障害遅延損失 = 月1回 × 100万円 = 12,000,000円/年
【施策A 機能開発速度向上の価値】
チーム2名の年間開発コスト = 2名 × 80万円 × 12ヶ月 = 1,920万円
速度向上価値 = 1,920万円 × 20% = 384万円
模範解答 — 1. 現状コストの定量化(年間)
① バッチリファクタリング負債
バグ対応コスト: 月2件 × 3人日 × 5,000円 = 30,000円/月 → 年間 360,000円 機能開発ロス: 四半期1回の大型機能 × 年4回 × 10人日 × 5,000円 = 200,000円/年 ① 合計年間コスト = 560,000円
② データパイプライン二重管理負債
インシデント対応: 月1回 × 5人日 × 5,000円 = 25,000円/月 → 年間 300,000円 ② 合計年間コスト = 300,000円
③ モニタリング欠如負債
障害遅延による機会損失: 月1回 × 100万円 = 1,000,000円/月 → 年間 12,000,000円 ③ 合計年間コスト = 12,000,000円
全負債の年間コスト合計 = 560,000 + 300,000 + 12,000,000 = 約1,286万円
模範解答 — 2. 施策ごとの投資額
| 施策 | 工数 | 開発コスト(人件費) |
|---|---|---|
| A: バッチリファクタリング | 12人日 | 12 × 5,000 = 60,000円 |
| B: dbt統一化 | 20人日 | 20 × 5,000 = 100,000円 |
| C: DataDog + OTel | 8人日 | 8 × 5,000 = 40,000円 |
ROI 可視化 — 施策別削減効果 vs 投資額
模範解答 — 3〜5. ROI・優先順位・実施順序
3. 施策ごとの年間削減効果
| 施策 | 計算式 | 年間削減効果 |
|---|---|---|
| A: バッチリファクタリング | バグ対応360,000 + 機能ロス200,000 + 速度向上価値19,200,000×20% | 4,400,000円 |
| B: dbt統一化 | インシデント対応コストのみ削減 | 300,000円 |
| C: DataDog + OTel | 機会損失12,000,000 × 50%削減(保守的試算) | 6,000,000円 |
4. ROIと優先順位
| 施策 | 投資額 | 年間削減効果 | ROI | ペイバック期間 | 優先度 |
|---|---|---|---|---|---|
| C: DataDog + OTel | 40,000円 | 6,000,000円 | 15,000% | 0.08ヶ月(約2日) | 1位 |
| A: バッチリファクタリング | 60,000円 | 4,400,000円 | 7,333% | 0.16ヶ月(約5日) | 2位 |
| B: dbt統一化 | 100,000円 | 300,000円 | 300% | 4.0ヶ月 | 3位 |
5. 推奨実施順序: C → A → B
まず施策C(DataDog + OTel)を最優先で実施する。投資額最小(4万円)・年間削減効果最大(600万円)で即日回収できる上、モニタリング基盤が整うことで施策A・Bのリファクタリング後の動作確認も容易になる。次に施策A(バッチリファクタリング)で機能開発速度を20%向上させ、中長期のチーム生産性を底上げしてから、施策B(dbt統一化)の工数を吸収する流れが最もROIが高い。
ポイント解説
1
技術的負債は「毎月発生するコスト」として可視化する
「コードが汚い」ではなく「年間1,286万円を消費している」と言えると、経営層が予算承認しやすくなる。特にモニタリング欠如による機会損失は金額が大きく、放置コストが投資コストを大幅に上回る典型例。
「コードが汚い」ではなく「年間1,286万円を消費している」と言えると、経営層が予算承認しやすくなる。特にモニタリング欠如による機会損失は金額が大きく、放置コストが投資コストを大幅に上回る典型例。
2
ROI計算で施策優先順位を客観化する
感覚や政治で優先度を決めるのではなく、ROI・ペイバック期間の数字で優先順位を示すことでPM・CTOへの説明が格段に楽になる。施策CとBはROIが約50倍違うことが定量的に示せる。
感覚や政治で優先度を決めるのではなく、ROI・ペイバック期間の数字で優先順位を示すことでPM・CTOへの説明が格段に楽になる。施策CとBはROIが約50倍違うことが定量的に示せる。
3
「速度向上の価値」を人件費換算する
非機能改善(リファクタリング)の価値をスプリント速度向上として測定し、年間開発コスト × 向上率で換算するアプローチは実務でよく使われる。この試算なしに「品質のため」だけでは経営承認が取りづらい。
非機能改善(リファクタリング)の価値をスプリント速度向上として測定し、年間開発コスト × 向上率で換算するアプローチは実務でよく使われる。この試算なしに「品質のため」だけでは経営承認が取りづらい。
実務への応用
- MOpsチームでは、バッチ処理の技術的負債が販促施策の実行速度に直接影響する。メール配信ロジックの変更に2週間かかる状態では、マーケティングチームのキャンペーン対応が遅延し、売上機会を逃す。
- DataDog + OTel を Argo Workflows と Cloud Run に導入すると、DAG単位・ステップ単位のレイテンシをトレースでき、ボトルネックの特定が容易になる。
- BigQuery のクエリ実行時間も DataDog のカスタムメトリクスとして送出し、コストとパフォーマンスの相関を一画面で確認できる状態にしておくと、チームの意思決定速度が上がる。
今日のまとめ
技術的負債の返済可否は「清潔さ」ではなく「年間コストと投資対効果の数字」で判断する。ROIとペイバック期間を並べると、どこから着手すべきかが一目瞭然になる。
シニアエンジニアに求められるのは「技術的に正しいこと」だけでなく、「コスト・効果・タイミング」を定量化してステークホルダーを動かせる提案力である。
シニアエンジニアに求められるのは「技術的に正しいこと」だけでなく、「コスト・効果・タイミング」を定量化してステークホルダーを動かせる提案力である。