EXERCISE 60分

ストーリー

佐藤CTO
技術負債の理論は学んだ。次は実践だ
佐藤CTO
レガシーシステムを抱えた企業の技術負債管理計画を作成してほしい。分類から定量化、戦略立案、経営への提案まで一気通貫でやってみよう

ミッション概要

ミッションテーマ目安時間
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-001PHP 7.4 EOL依存関係意図的×慎重4人月
TD-002Laravel 6 EOL依存関係意図的×慎重6人月
TD-003jQuery フロントエンドアーキテクチャ意図的×慎重12人月
TD-004手動FTPデプロイプロセス無意識×無謀2人月
TD-005テストカバレッジ5%テスト無意識×無謀8人月
TD-006MySQL 5.7 EOL間近インフラ意図的×慎重3人月
TD-007オンプレミス3台構成インフラ意図的×慎重6人月
TD-008ドキュメント不在プロセス無意識×無謀4人月
TD-009300テーブルの正規化不足データ無意識×慎重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.6x20ヶ月 → ただし障害削減効果含めると8ヶ月
テスト基盤構築1,280万円(8人月)307万円0.24x/年4.2年 → ただし長期的な複利効果大
PHP/Laravel更新1,600万円(10人月)96万円長期 → ただしセキュリティリスク回避

推奨優先順位:

  1. CI/CD導入(最速でROI回収、他の施策の基盤にもなる)
  2. テスト基盤(CI/CDの上に構築、品質を底上げ)
  3. 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分