ストーリー
ミッション概要
| ミッション | テーマ | 目安時間 |
|---|---|---|
| Mission 1 | 技術負債の棚卸しと分類 | 15分 |
| Mission 2 | 定量化とROI算出 | 15分 |
| Mission 3 | リファクタリング戦略の策定 | 15分 |
| Mission 4 | 経営向け提案書の作成 | 15分 |
前提条件
企業: メディア企業「NewsWave」
事業: ニュース配信プラットフォーム(月間1,000万PV)
チーム: エンジニア18名
現在の技術スタック:
- フロントエンド: jQuery + PHP テンプレート(2015年構築)
- バックエンド: PHP 7.4(EOL済み)+ Laravel 6(EOL済み)
- データベース: MySQL 5.7(EOL間近)+ 300テーブル
- インフラ: オンプレミスサーバー3台
- CI/CD: なし(手動FTPデプロイ)
- テスト: ほぼなし(カバレッジ5%)
- 監視: Nagios(アラートのみ)
課題:
- デプロイは月2回(毎月第2・第4金曜深夜に手動)
- 障害頻度: 月平均4回
- 新機能リードタイム: 平均4週間
- エンジニア離職率: 年30%
- 新メンバー立ち上げ: 平均4ヶ月
Mission 1: 技術負債の棚卸しと分類(15分)
要件
上記の企業状況から技術負債を洗い出し、四象限で分類してください。技術負債レジストリを最低8項目作成すること。
解答例
| ID | タイトル | 種類 | 象限 | 影響度 | 返済コスト | 利子率 |
|---|---|---|---|---|---|---|
| TD-001 | PHP 7.4 EOL | 依存関係 | 意図的×慎重 | 高 | 4人月 | 高 |
| TD-002 | Laravel 6 EOL | 依存関係 | 意図的×慎重 | 高 | 6人月 | 高 |
| TD-003 | jQuery フロントエンド | アーキテクチャ | 意図的×慎重 | 中 | 12人月 | 中 |
| TD-004 | 手動FTPデプロイ | プロセス | 無意識×無謀 | 高 | 2人月 | 高 |
| TD-005 | テストカバレッジ5% | テスト | 無意識×無謀 | 高 | 8人月 | 高 |
| TD-006 | MySQL 5.7 EOL間近 | インフラ | 意図的×慎重 | 高 | 3人月 | 中 |
| TD-007 | オンプレミス3台構成 | インフラ | 意図的×慎重 | 中 | 6人月 | 中 |
| TD-008 | ドキュメント不在 | プロセス | 無意識×無謀 | 中 | 4人月 | 中 |
| TD-009 | 300テーブルの正規化不足 | データ | 無意識×慎重 | 高 | 10人月 | 高 |
| TD-010 | 監視基盤不足 | インフラ | 意図的×慎重 | 中 | 2人月 | 中 |
Mission 2: 定量化とROI算出(15分)
要件
技術負債の年間利子コストを算出し、主要な返済項目のROIを計算してください。
前提:
- エンジニア平均年収: 700万円(時間単価: 約4,000円)
- 月間稼働時間: 160時間/人
解答例
年間利子コストの算出:
| 負債項目 | 月間追加工数 | 年間追加工数 | 年間コスト |
|---|---|---|---|
| 手動デプロイ | 40時間(2名×20時間) | 480時間 | 192万円 |
| テスト不足による障害対応 | 64時間(月4回×16時間) | 768時間 | 307万円 |
| EOLによるワークアラウンド | 20時間 | 240時間 | 96万円 |
| 新メンバー立ち上げコスト | 30時間(月平均) | 360時間 | 144万円 |
| jQueryの生産性低下 | 80時間 | 960時間 | 384万円 |
| 合計 | 234時間 | 2,808時間 | 1,123万円 |
主要返済項目のROI:
| 施策 | 投資額 | 年間削減 | ROI | 回収期間 |
|---|---|---|---|---|
| CI/CD導入 | 320万円(2人月) | 192万円 | 0.6x | 20ヶ月 → ただし障害削減効果含めると8ヶ月 |
| テスト基盤構築 | 1,280万円(8人月) | 307万円 | 0.24x/年 | 4.2年 → ただし長期的な複利効果大 |
| PHP/Laravel更新 | 1,600万円(10人月) | 96万円 | 低 | 長期 → ただしセキュリティリスク回避 |
推奨優先順位:
- CI/CD導入(最速でROI回収、他の施策の基盤にもなる)
- テスト基盤(CI/CDの上に構築、品質を底上げ)
- PHP/Laravelアップグレード(セキュリティリスク回避)
Mission 3: リファクタリング戦略の策定(15分)
要件
12ヶ月間のリファクタリングロードマップを策定してください。Strangler Fig パターンの適用箇所、ボーイスカウトルールの実践方法、リファクタリング予算の配分を含めること。
解答例
# NewsWave リファクタリングロードマップ
## フェーズ1: 基盤整備(Month 1-3)
- CI/CDパイプライン構築(GitHub Actions)
- テスト基盤構築(PHPUnit、E2Eテスト)
- 開発環境のDocker化
- リファクタリング予算: スプリントの30%(立ち上げ期のため高め)
## フェーズ2: セキュリティ対策(Month 4-6)
- PHP 7.4 → 8.2 アップグレード
- Laravel 6 → 10 アップグレード
- MySQL 5.7 → 8.0 マイグレーション
- リファクタリング予算: スプリントの25%
## フェーズ3: アーキテクチャ近代化(Month 7-12)
- Strangler Fig でフロントエンド移行
- API Gateway(Nginx)設置
- 記事詳細ページ → Next.js(最も独立性が高い)
- 検索結果ページ → Next.js
- トップページ → Next.js
- リファクタリング予算: スプリントの20%
## ボーイスカウトルール
- 全PRに「改善ポイント1つ以上」を推奨
- 月次で「ボーイスカウト賞」を表彰
Mission 4: 経営向け提案書の作成(15分)
要件
経営会議(15分)で使う提案書を作成してください。金融アナロジー、ROI、放置リスクを含めること。
解答例
# 技術基盤投資提案 - NewsWave 2026年度
## 1. 現状(2分)
- 開発チーム18名の工数のうち、約25%(年間1,123万円相当)が
技術的な制約に起因する追加作業に費やされています
- デプロイ頻度は月2回(業界平均は週数回)
- 月平均4回の障害が発生(直近は増加傾向)
- エンジニア離職率30%(業界平均は15%)
## 2. 原因と影響(3分)
住宅ローンに例えると:
- 元本: 約55人月分の技術的な改善が必要
- 毎月の利子: 約93万円(年1,123万円)を余分に支払い中
- 利子は年々増加中(来年は推定1,500万円以上)
## 3. 放置した場合(2分)
- 2年後: デプロイ頻度 月1回、リードタイム 6週間
- セキュリティ: EOLソフトウェアへの攻撃リスク増大
- 人材: 離職率40%超の可能性(年間採用コスト1,800万円増)
## 4. 提案(5分)
12ヶ月の段階的投資プラン:
- Phase 1 (Q1): CI/CD + テスト基盤 → 投資640万円
- Phase 2 (Q2): セキュリティアップグレード → 投資960万円
- Phase 3 (Q3-Q4): フロントエンド近代化 → 投資1,200万円
- 総投資額: 2,800万円
## 5. 期待効果(3分)
- 年間コスト削減: 850万円(利子75%削減)
- デプロイ頻度: 月2回 → 週3回
- 障害頻度: 月4回 → 月1回
- 離職率: 30% → 15%(採用コスト900万円削減)
- 投資回収: 18ヶ月(2年目以降は年間1,750万円の純効果)
達成度チェック
| ミッション | テーマ | 完了 |
|---|---|---|
| Mission 1 | 技術負債の棚卸しと分類 | |
| Mission 2 | 定量化とROI算出 | |
| Mission 3 | リファクタリング戦略策定 | |
| Mission 4 | 経営向け提案書作成 |
まとめ
| ポイント | 内容 |
|---|---|
| 棚卸し | 四象限で分類し、レジストリで一元管理 |
| 定量化 | 利子コストとROIで投資判断を可能にする |
| 戦略 | 段階的なフェーズ分けで安全に返済する |
| コミュニケーション | ビジネス言語で経営層に提案する |
チェックリスト
- 技術負債レジストリを作成できた
- 利子コストとROIを算出できた
- リファクタリングロードマップを策定できた
- 経営向け提案書を作成できた
次のステップへ
次はチェックポイントクイズです。技術負債の戦略的管理に関する理解度を確認しましょう。
推定読了時間: 60分