ストーリー
田
田中VPoE
棚卸し、テクノロジーレーダー、技術的負債 — 理論は一通り学んだ。ここからは実践だ。架空のSaaS企業の技術スタックを分析し、棚卸しレポートを作成してもらう
田
田中VPoE
そうだ。このレポートは後のStepで策定する技術標準の土台になる。CTOに報告して「技術標準策定プロジェクト」の承認を得るための重要な文書だ。数字で語れるレポートを作ってくれ
ミッション概要
| 項目 | 内容 |
|---|
| 演習タイトル | 技術スタック棚卸しレポート |
| 想定時間 | 60分 |
| 成果物 | 技術スタック棚卸しレポート(棚卸し結果 + テクノロジーレーダー + 技術的負債評価) |
| 対象組織 | 中堅SaaS企業 TaskFlow株式会社(架空) |
前提条件
組織の概要
会社概要:
会社名: TaskFlow株式会社(架空)
事業: BtoB SaaS(プロジェクト管理・タスク管理ツール)
社員数: 400名
開発部門: 160名(8チーム、各チーム15-25名)
売上: 年間40億円
顧客数: 2,500社
設立: 2016年
開発チーム構成:
├── Webフロントチーム(25名)
├── モバイルチーム(20名)
├── APIチーム(25名)
├── 検索・分析チーム(15名)
├── 通知・連携チーム(15名)
├── 課金・決済チーム(20名)
├── SRE/インフラチーム(20名)
└── データプラットフォームチーム(20名)
各チームの技術スタック
| チーム | 言語 | フレームワーク | DB | インフラ | CI/CD |
|---|
| Webフロント | TypeScript | React 18, Next.js 14 | - | Vercel | GitHub Actions |
| モバイル | Kotlin, Swift | Jetpack Compose, SwiftUI | SQLite | Firebase | Bitrise |
| API | Go 1.22 | Echo | PostgreSQL 15 | ECS Fargate | GitHub Actions |
| 検索・分析 | Python 3.11 | FastAPI | OpenSearch 2.x | EC2 | Jenkins |
| 通知・連携 | Node.js 18 | Express | MongoDB 6.x | Lambda | GitHub Actions |
| 課金・決済 | Java 17 | Spring Boot 3 | PostgreSQL 15 | ECS Fargate | GitHub Actions |
| SRE/インフラ | Go, Python | - | - | EKS, ECS | GitHub Actions |
| データPF | Python 3.9 | Airflow 2.x | Redshift | EMR | Jenkins |
追加情報
| 項目 | 詳細 |
|---|
| 総リポジトリ数 | 87 |
| 社内ライブラリ数 | 12 |
| 直接依存パッケージ数(全体) | 約1,200 |
| サポート切れバージョン数 | 14パッケージ |
| 既知のCVE(中〜高) | 8件 |
| モニタリング | Datadog(Web/API/課金)、CloudWatch(その他) |
| ログ基盤 | Datadog Logs(一部)、CloudWatch Logs(大半) |
| IaC | Terraform(SRE)、手動構築(検索・データPF) |
| ドキュメント | Notion(チームごとにバラバラ) |
Mission 1: 技術スタックの棚卸し
要件
前提条件の情報をもとに、以下を作成してください。
- 技術スタック分類表(カテゴリ、技術名、バージョン、使用チーム数、状態、バス係数)
- 技術スタックマップ(レイヤー別の可視化図)
- 分析結果(集中度、分散度、鮮度、バス係数、セキュリティの5観点)
解答例
技術スタック分類表(主要項目)
| カテゴリ | 技術名 | バージョン | 使用チーム数 | 状態 | バス係数 |
|---|
| 言語 | TypeScript | 5.x | 2 | Active | 高 |
| 言語 | Go | 1.22 | 2 | Active | 中 |
| 言語 | Python | 3.9-3.11 | 3 | Active | 中 |
| 言語 | Java | 17 | 1 | Stable | 低 |
| 言語 | Kotlin | - | 1 | Active | 低 |
| 言語 | Swift | - | 1 | Active | 低 |
| 言語 | Node.js | 18 | 1 | Active | 低 |
| FW | React 18 | 18.x | 1 | Active | 中 |
| FW | Next.js | 14 | 1 | Active | 中 |
| FW | Express | 4.x | 1 | Stable | 低 |
| FW | FastAPI | - | 1 | Active | 低 |
| FW | Spring Boot | 3.x | 1 | Active | 低 |
| FW | Echo (Go) | - | 1 | Active | 中 |
| DB | PostgreSQL | 15 | 2 | Active | 高 |
| DB | MongoDB | 6.x | 1 | Active | 低 |
| DB | OpenSearch | 2.x | 1 | Active | 低 |
| DB | Redshift | - | 1 | Active | 低 |
5観点分析
| 観点 | 結果 | リスク |
|---|
| 集中度 | Pythonが3チームで使用されるが、バージョンが3.9と3.11で分裂 | バージョン差による互換性問題 |
| 分散度 | 言語7種、FW6種は400名規模として過剰 | ナレッジ断片化 |
| 鮮度 | Python 3.9(データPF)はEOL間近、14パッケージがサポート切れ | セキュリティ・互換性リスク |
| バス係数 | Java, MongoDB, OpenSearch, Expressはバス係数1(1チームのみ) | 人材リスク |
| セキュリティ | 既知CVE 8件(中〜高)が未対応 | セキュリティインシデントリスク |
Mission 2: テクノロジーレーダーの構築
要件
棚卸し結果をもとに、TaskFlow社のテクノロジーレーダーを構築してください。
- 4象限 × 4リングに全技術を配置
- 各技術の配置理由を簡潔に記載
- 特に議論が必要な注目項目を3つ挙げる
解答例
Languages & Frameworks
| リング | 技術 | 配置理由 |
|---|
| Adopt | TypeScript, Go, React | 実績豊富、人材確保可能、組織の中核 |
| Trial | Next.js App Router, FastAPI | 良好な評価だが全社展開前に追加検証が必要 |
| Assess | Kotlin Multiplatform | モバイルのクロスプラットフォーム化の可能性 |
| Hold | Express (Node.js), Java/Spring Boot | 新規は非推奨。既存は維持 |
注目項目
- Node.js/Express → Go/TypeScriptへの統合: 通知・連携チームのNode.jsを組織標準に統合すべきか
- Python バージョン統一: 3.9(データPF)と3.11(検索・分析)の統一が必要
- モバイル技術の将来: Kotlin/Swiftのネイティブ継続 vs Kotlin Multiplatform/Flutter検討
Mission 3: 技術的負債の評価
要件
特定した技術的負債を定量評価し、優先順位を付けてください。
- 負債項目一覧(最低5項目)
- 各負債の利息・元本・リスクの算出
- 優先順位付けと返済ロードマップ(4四半期分)
解答例
負債スコアリング
| 負債項目 | 月間利息 | 元本 | リスク | 優先度 |
|---|
| Python 3.9 EOL対応 | 5万円 | 150万円 | 高(セキュリティ) | 最優先 |
| CVE 8件の対応 | 10万円 | 80万円 | 高(セキュリティ) | 最優先 |
| Jenkins → GitHub Actions移行 | 15万円 | 200万円 | 中(運用負荷) | 高 |
| モニタリング統合(Datadog統一) | 20万円 | 300万円 | 中(可観測性) | 高 |
| IaC化(手動構築のTerraform化) | 25万円 | 400万円 | 中(再現性) | 中 |
| Express → Go/TS移行 | 10万円 | 500万円 | 低 | 低 |
返済ロードマップ
| 四半期 | 対応項目 | 投資額 | 利息削減 |
|---|
| Q1 | CVE対応、Python 3.9→3.11 | 230万円 | 15万円/月 |
| Q2 | Jenkins移行、モニタリング統合 | 500万円 | 35万円/月 |
| Q3 | IaC化 | 400万円 | 25万円/月 |
| Q4 | Express移行(開始) | 250万円 | - |
累計投資: 1,380万円 / 年間利息削減: 900万円 → 投資回収期間: 約18ヶ月
達成度チェック
| 観点 | 達成基準 |
|---|
| 棚卸しの網羅性 | 全チームの技術スタックが分類表に含まれている |
| 分析の深さ | 5観点(集中度、分散度、鮮度、バス係数、セキュリティ)で分析されている |
| レーダーの妥当性 | 配置理由が組織の状況に即している |
| 負債の定量化 | 利息と元本が金額ベースで算出されている |
| 優先順位 | リスクとROIに基づいた合理的な順位付けがされている |
| ロードマップ | 四半期単位の具体的な計画が提示されている |
推定所要時間: 60分