TIDE_v2.md
# TIDE Framework v2.0
**Technical Investment Decision Engine**
技術投資意思決定エンジン
---
## 0. What's New in v2.0
| 進化点 | v1.0 | v2.0 |
| ---------------- | ------------------------------- | -------------------------------------------------------------- |
| **構造** | 4層(CTOS) | 4層(TIDE一致) |
| **トリガー分類** | Surface/Structural/Foundational | **3S Model**: Signal/Structure/Substance |
| **設計原則** | 3原則 | **4原則**(技術的謙虚さ追加) |
| **研究データ** | なし | 定量的根拠を統合 |
| **失敗構造** | なし | **5つの失敗パターン**を類型化 |
| **事例** | なし | 成功・失敗事例を収録 |
| **スコアカード** | 100点 | 100点(AI時代の評価軸を強化) |
| **運用モード** | ガイドラインのみ | **SIA統合**: 成果物テンプレート固定 + エスカレーション・ゲート |
---
## 1. 概要
### 1.1 目的
TIDEは、システムリライト・技術刷新の意思決定における**構造的な判断歪み**を防ぎ、質の高い意思決定を組織的に実現するためのエンジンである。
### 1.2 解決する問題
| 問題 | 症状 | TIDEの対応 |
| -------------------- | -------------------------------------- | -------------------------------- |
| **表層と本質の混同** | 「採用できない」を理由にリライトを決定 | **Insight**でトリガーを3Sに分類 |
| **選択肢の狭窄** | Big Bangか現状維持の二択 | **Design**で5選択肢を強制検討 |
| **政治的歪み** | 反対意見が封殺される | **Evaluate**で判断保護メカニズム |
| **時代錯誤** | AI時代にAI以前の判断基準を適用 | **全層**にAI時代の再評価を統合 |
### 1.3 設計思想
**潮流(TIDE)の比喩**:
- 技術変化は潮のように押し寄せる
- 波に乗るか、待つか、逆らうかは**文脈次第**
- 正解は一つではない。**判断の質**を高めることが目的
**4つの原則**:
| # | 原則 | 内容 |
| --- | ---------------- | -------------------------------------------------------------- |
| 1 | **強制的多様性** | 選択肢を意図的に拡張する |
| 2 | **構造的検証** | 判断プロセス自体に検証を埋め込む |
| 3 | **政治的保護** | 反対意見が表出する構造を作る |
| 4 | **技術的謙虚さ** | 技術選定は仮説であり確定ではない。AI進化により前提は変わりうる |
### 1.4 想定ユーザー
- CTO / 技術責任者
- 技術委員会 / アーキテクチャレビューボード
- 経営層(技術投資判断時)
- コンサルタント / アドバイザー
- VC / PE(技術デューデリジェンス時)
### 1.5 使い方
| あなたの状況 | 運用モード | 所要時間 |
| -------------------- | ------------------ | --------- |
| 小規模変更、緊急 | 簡易モード(§6.1) | 30分 |
| 中規模以上、通常判断 | 標準モード(§6.2) | 半日〜1日 |
| 大規模、不可逆的判断 | 詳細モード(§6.3) | 1週間〜 |
---
## 2. TIDE 4層構造
v2.0では、フレームワーク名 **TIDE** の4文字が4層と完全一致する。
```
┌─────────────────────────────────────────────────────────┐
│ T Terrain(地形を読む) │
│ 「今、私たちはどこにいるのか?」 │
│ 組織フェーズ・競争環境・負債速度・チーム状態・リソース │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ I Insight(本質を見抜く) │
│ 「なぜリライトしたいのか?本当の理由は?」 │
│ 3S分析: Signal → Structure → Substance │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ D Design(選択肢を設計する) │
│ 「他にどんな選択肢があるか?」 │
│ 5選択肢の強制検討・評価マトリクス │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ E Evaluate(判断を守る) │
│ 「この判断は歪んでいないか?」 │
│ 撤退基準・外部検証・スコアカード・再評価サイクル │
└─────────────────────────────────────────────────────────┘
```
---
## T: Terrain(地形を読む)
**目的**: 判断の前提条件を明確にする。同じトリガーでも、文脈によって最適解は異なる。
### T.1 組織フェーズ
| フェーズ | 特徴 | 技術判断への影響 |
| ------------------ | -------------------------- | -------------------------------------------- |
| **スタートアップ** | 速度最優先、リソース制約大 | 「動くもの優先」が合理的。技術負債は後回し可 |
| **成長期** | スケール課題、採用拡大 | 技術負債の影響が顕在化。段階的対応が現実的 |
| **成熟期** | 安定運用、効率化 | リライトの機会費用が大きい。慎重判断が必要 |
| **転換期** | ピボット、M&A、事業再編 | ビジネスモデル変化に伴う技術変革は合理的 |
**問い**: 私たちは今、どのフェーズにいるか?
### T.2 競争環境
| 状況 | 判断への影響 |
| ------------------ | ------------------------------------------------ |
| **時間圧力が高い** | 「待つコスト」が大きい。速度重視の判断が合理的 |
| **時間圧力が低い** | 「待つ価値」が高い。AI進化を織り込んだ判断が可能 |
**問い**: 競合に先行されるリスクはどの程度か?
### T.3 技術負債の増大速度
| パターン | 特徴 | 対応 |
| ------------------ | -------------------------- | ---------------- |
| **線形増大** | 毎月一定のメンテコスト増加 | 計画的対応が可能 |
| **指数関数的増大** | 加速度的にコスト増加 | 早期対応が合理的 |
| **安定** | 負債はあるが増大していない | 急ぐ理由は薄い |
**問い**: 技術負債は今後どう増大するか?
### T.4 チーム状態
| 指標 | 警戒サイン |
| ---------- | ------------------------------------------ |
| **離職率** | レガシー担当からの離職が増加 |
| **士気** | 「このコードでは成長できない」という声 |
| **採用** | 「この技術スタックでは人が来ない」という声 |
**注意**: 採用・士気は「トリガー」ではなく「文脈」として扱う。AI時代には「この技術でないと人が来ない」は弱い論拠になりつつある。
### T.5 リソース可用性
| リソース | 確認事項 |
| -------- | ------------------------------------------ |
| **人員** | リライトに専念できるチームを確保できるか? |
| **予算** | 失敗した場合のバッファはあるか? |
| **時間** | 他のプロジェクトを止めずに実行できるか? |
---
## I: Insight(本質を見抜く)
**目的**: 「なぜリライトしたいのか」の本当の理由を特定する。表層的な理由を本質的な理由と誤認することを防ぐ。
### I.1 3Sトリガーモデル
v2.0では、3層トリガーを**3S**(Signal / Structure / Substance)として再定義する。
```
┌─────────────────────────────────────────────────────────┐
│ Signal(信号) │
│ ─────────────────────────────────────────────────────── │
│ 「見える」症状。AI時代に解決策が根本的に変わった領域。 │
│ │
│ ・コードが読めない / 理解できない │
│ ・ドキュメントがない │
│ ・テストがない │
│ ・この言語/フレームワークでは採用できない │
│ │
│ → AI支援で解決可能性が高い。リライトの根拠としては弱い。 │
│ → これだけでBig Bangを選択してはならない。 │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ Structure(構造) │
│ ─────────────────────────────────────────────────────── │
│ アーキテクチャレベルの問題。段階的対応の可能性を検討。 │
│ │
│ ・アーキテクチャが機能追加を阻害している │
│ ・性能限界に達している │
│ ・スケーラビリティの壁がある │
│ ・セキュリティ要件を満たせない │
│ │
│ → Strangler Fig等の段階的対応で解決可能か検討必須。 │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ Substance(本質) │
│ ─────────────────────────────────────────────────────── │
│ ビジネス/ドメインレベルの根本変化。 │
│ リライトが合理的根拠を持ちうる唯一の層。 │
│ │
│ ・ビジネスモデルが根本的に変化した │
│ ・ドメインモデル自体が陳腐化した │
│ ・規制要件が根本的に変化した │
│ ・M&A / 事業統合で技術統一が必要 │
│ │
│ → 段階的対応では解決困難。Big Bangの合理的根拠たりうる。 │
└─────────────────────────────────────────────────────────┘
```
### I.2 判定フロー
```
Q: なぜリライトしたいのか?
│
▼
┌───────────────────┐
│ 理由を列挙する │
└───────┬───────────┘
│
▼
┌───────────────────────────────────────────┐
│ 各理由を3Sに分類する │
│ │
│ □ コードが読めない → Signal │
│ □ 採用できない → Signal │
│ □ アーキテクチャ限界 → Structure │
│ □ ビジネスモデル変化 → Substance │
└───────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────┐
│ Substanceトリガーはあるか? │
│ │
│ YES → リライトの合理的根拠あり → Dへ │
│ NO → Signal/Structureのみ │
│ → 代替手段を優先検討 → Dへ │
└───────────────────────────────────────────┘
```
### I.3 AI時代のSignal再評価
| 従来の理由 | AI時代の再評価 | 根拠 |
| ------------------------ | -------------------------------- | --------------------------------------------------------------------- |
| コードが読めない | AI支援で解読可能 | 大規模コードベースの依存関係マッピングが数時間で可能に |
| ドキュメントがない | AI支援で生成可能 | 既存コードからの自動ドキュメント化が実用段階 |
| テストがない | AI支援で生成可能 | AIによるテスト生成で特性テスト(characterization test)の自動化が進行 |
| この言語では採用できない | AI時代に言語依存の採用優位は減少 | Coding Agentがどの言語でも補助できるため |
**重要**: Signal層のみでリライトを決定することは、AI時代には合理性が低下している。
### I.4 失敗の5構造(認識すべきパターン)
リライトが失敗する構造的パターンを事前に認識し、回避する。
| # | 名称 | 現象 | 対策 |
| --- | ------------------------- | ---------------------------------------------------------- | ------------------------------------------------------ |
| 1 | **Second System Effect** | 制約から解放され、過剰設計に走る。「今度こそ完璧に」の心理 | 現システムの「成功している部分」を明示的に保存する設計 |
| 2 | **Moving Target** | リライト中もビジネスは動き、要件が変化し続ける | 機能凍結期間の設定、またはStrangler Figの採用 |
| 3 | **Knowledge Evaporation** | 「なぜそう実装されたか」の暗黙知が蒸発する | リライト前にAI支援で知識を言語化・文書化 |
| 4 | **Integration Collapse** | 個別モジュールは動くが、最終統合時に全てが同時に壊れる | 段階的移行、カナリアリリース、ロールバック設計 |
| 5 | **Political Capture** | 技術選定が派閥争いや個人の趣味の道具になる | 外部CTOレビュー、判断根拠の文書化 |
### I.5 「隠れた動機」チェック
表層的なトリガーの裏に、以下の**言語化されにくい動機**が隠れていないか?
- 新CTO / 技術責任者の「自分の色を出したい」欲求
- エンジニアの退屈 / チャレンジ欲求
- 「レガシー」というレッテルの政治的利用
- 投資家 / 株主への「イノベーション」アピール
- 競合への焦り(Shiny Object Syndrome)
**診断法**: 「もしこのリライトが失敗した場合、誰が最も困るか?」を問う。困る人がいなければ、動機は本質的ではない可能性がある。
---
## D: Design(選択肢を設計する)
**目的**: Big Bangか現状維持の二択に陥ることを防ぐ。強制的に5つの選択肢を検討する。
### D.1 5つの選択肢(全て検討必須)
```
低リスク ←─────────────────────────────────→ 高リスク
低コスト 高コスト
┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
│ │ │ │ │ │ │ │ │ │
│ ① │ │ ② │ │ ③ │ │ ④ │ │ ⑤ │
│ 静観 │ │ AI │ │ 漸進 │ │ 部分 │ │ 全面 │
│ │ │ 治療 │ │ 移行 │ │ 刷新 │ │ 刷新 │
│ │ │ │ │ │ │ │ │ │
└──────┘ └──────┘ └──────┘ └──────┘ └──────┘
Observe Augment Migrate Isolate Replace
```
| # | 選択肢 | 概要 | 適用条件 |
| --- | ----------------------- | ----------------------------------------------------------------------- | --------------------------------------- |
| ① | **Observe(静観)** | 現状維持。「何もしないコスト」を定量化して判断 | Substanceトリガーなし、負債安定 |
| ② | **Augment(AI治療)** | AI支援でコード理解・テスト生成・ドキュメント化。延命ではなく治療 | Signalトリガーのみ、時間的余裕あり |
| ③ | **Migrate(漸進移行)** | Strangler Figパターン。新機能は新システムで構築し、旧を段階的に絞め出す | Structureトリガー、リスク分散が必要 |
| ④ | **Isolate(部分刷新)** | ボトルネック箇所のみ切り出して刷新。他は維持 | 問題が特定領域に集中 |
| ⑤ | **Replace(全面刷新)** | Big Bang Rewrite。全てを作り直す | Substanceトリガー明確、リソース確保済み |
### D.2 各選択肢の詳細
#### ① Observe(静観)
**「何もしない」は消極的選択ではなく、意図的な判断である。**
以下を定量化して「何もしないコスト」を明示する:
- **現状維持コスト**: 今後12ヶ月のメンテナンスコスト予測
- **機会損失**: 新機能開発の遅延による逸失利益
- **リスク増大**: 技術負債の増大による将来コスト
- **チームへの影響**: 離職リスク、士気低下の影響
#### ② Augment(AI治療)
**AI時代に新たに出現した選択肢。** Signal層の問題はAI支援で治療可能。
具体的アプローチ:
1. AI支援で依存関係マップを生成(数時間)
2. AI支援でテストを追加(数日〜数週間)
3. AI支援でドキュメントを生成(数日)
4. AI支援で段階的リファクタリングを実行(継続的)
#### ③ Migrate(漸進移行)
**Strangler Figパターンによる段階的置換。**
```
旧システム
┌─────────────────┐
│ 機能A │ 機能B │ 機能C │
└───┬───┴───┬───┴───┬───┘
│ │ │
┌───▼───┬───▼───┬───▼───┐
│ Proxy │ Proxy │ Proxy │ ← ルーティング層
└───┬───┴───┬───┴───┬───┘
│ │ │
┌───▼───┐ │ │
│ 新A │ │ │ ← 徐々に置換
└───────┘ │ │
┌───▼───┐ │
│ 新B │ │
└───────┘ │
┌───▼───┐
│ 新C │
└───────┘
```
**研究データ**: モノリス内で正式なインターフェース契約を確立した組織の73%が移行に成功。無制限のモジュール間アクセスを許可した場合は34%。Strangler Figを実装した組織は、Big Bangを試みた組織と比較して移行中の本番インシデントが67%少なかった。
#### ④ Isolate(部分刷新)
**問題が集中する特定モジュールのみを切り出して刷新する。**
適用条件:
- ボトルネックが特定領域に集中している
- 他モジュールとの結合が疎(または疎にできる)
- 6-18ヶ月で対象モジュールが刷新可能
#### ⑤ Replace(全面刷新)
**全てを作り直す。最終手段。**
全面刷新が正当化される条件(**全てを満たす必要がある**):
- [ ] ドメインモデル自体が根本的に変化した(Substanceトリガー確認済み)
- [ ] 漸進的アプローチを検討し、不可能と結論した(③④を検討済み)
- [ ] ビジネスが2-3年の移行期間を許容できる
- [ ] リソース(人員・予算・時間)が確保されている
- [ ] 外部専門家(CTO経験者)のレビューを受けた
- [ ] 撤退基準が事前に設定されている
**警告**: リライトを推奨する声の多くは、リライト対象の詳細を知らない人から来る。3万フィートの視点から「簡単だ」と主張するのは容易だ。システムを書いた人で、すべてのユースケースやエッジケースをサポートするのにどれだけの時間がかかったかを知っていれば、それが簡単ではないことがわかる。
### D.3 評価マトリクス
| 選択肢 | 時間 | コスト | リスク | 可逆性 | 総合 |
| --------- | ---- | ------ | ------ | ------ | ---- |
| ① Observe | | | | | |
| ② Augment | | | | | |
| ③ Migrate | | | | | |
| ④ Isolate | | | | | |
| ⑤ Replace | | | | | |
評価: ◎=優 ○=良 △=可 ×=不可
### D.4 選択の原則
**原則1**: ①から順に検討する(左から右へ)
- まずObserve/Augmentで対応可能か検討
- 不可能な場合のみ、右へ移動
**原則2**: ⑤は「他に選択肢がない」場合のみ
- Substanceトリガーが確認された場合
- ①〜④が技術的に不可能な場合
**原則3**: 選択の根拠を明文化する
- 「なぜ②ではなく③か」を説明できなければ、判断が曖昧
---
## E: Evaluate(判断を守る)
**目的**: 判断プロセス自体の歪みを防ぐ。政治的圧力、認知バイアス、自己欺瞞から判断を保護する。
### E.1 事前設定(判断確定前に決める)
| 項目 | 内容 | タイミング |
| ------------------ | --------------------------------- | -------------- |
| **撤退基準** | 何が起きたら中止 / 方針変更するか | 判断確定**前** |
| **外部検証者** | 誰が客観評価するか | 判断確定**前** |
| **再評価サイクル** | いつ判断を見直すか | 判断確定**前** |
**重要**: これらは判断**後**ではなく**前**に設定する。判断後に設定すると「都合の良い基準」になる。
### E.2 撤退基準テンプレート
```
1. 時間基準
- [ ] マイルストーンXが日付Yまでに未達成 → 再評価
- [ ] 進捗率がZ%を下回った → 方針変更を検討
2. コスト基準
- [ ] 予算超過がX%を超えた → 再評価
- [ ] 追加予算申請がY回を超えた → 中止検討
3. 品質基準
- [ ] 重大バグがX件を超えた → 方針変更
- [ ] 性能目標未達がY項目以上 → 再評価
4. チーム基準
- [ ] キーパーソン離脱時 → 即座に再評価
- [ ] チーム士気低下の兆候 → 方針検討
```
### E.3 外部検証プロトコル
**外部検証者の要件**:
- 意思決定に利害関係がない
- 技術的な判断能力がある(CTO経験者推奨)
- 率直なフィードバックができる
**投資**: 全体予算の5-10%を外部検証に充てる。この投資を惜しむことは、残り90%の成否を賭けに変える。
**検証者への提供資料**:
1. T-I-Dの分析結果
2. スコアカード結果
3. 提案する選択肢と根拠
**検証者への問い**:
1. この分析で見落としている点は?
2. この選択肢以外にありうるものは?
3. この判断の最大リスクは何か?
### E.4 政治的保護メカニズム
| メカニズム | 目的 | 実施方法 |
| -------------------- | ------------------------ | ---------------------------------- |
| **匿名意見収集** | 反対意見の表出を促進 | 無記名アンケート、匿名フォーム |
| **48時間ルール** | 即断による判断歪みを防止 | 最終判断から48時間のクーリングオフ |
| **意思決定ログ** | 事後検証を可能に | 判断根拠、反対意見、採用理由を記録 |
| **Devil's Advocate** | 意図的に反対意見を生成 | 特定メンバーに反対役を割り当て |
### E.5 再評価サイクル
| 頻度 | 内容 | 参加者 |
| ---------- | ---------------------------------------------------- | ----------------- |
| **月次** | 進捗確認、撤退基準との照合 | 開発チーム |
| **四半期** | 選択肢の再評価、AI進化状況の確認、競争環境の変化確認 | PM + ビジネス |
| **半期** | 判断全体の妥当性再検証、前提条件の変化確認 | 経営 + 外部検証者 |
---
## 3. 診断スコアカード
### 3.1 スコアカード本体
```
┌────────────────────────────────────────────────────────┐
│ TIDE Diagnostic Scorecard v2.0 │
│ 技術投資意思決定 診断スコアカード │
├────────────────────────────────────────────────────────┤
│ │
│ 診断日: ____年__月__日 │
│ 対象システム: _______________________ │
│ 診断者: _______________________ │
│ │
├────────────────────────────────────────────────────────┤
│ │
│ ■ Section T: Terrain Score(地形) /25点 │
│ ────────────────────────────────────────────── │
│ │
│ T1. 組織フェーズを特定したか? │
│ □ 未特定(0) □ 曖昧(2) □ 明確(5) ___/5 │
│ │
│ T2. 競争環境・時間圧力を評価したか? │
│ □ 未評価(0) □ 定性的(2) □ 定量的(5) ___/5 │
│ │
│ T3. 技術負債の増大パターンを分析したか? │
│ □ 未分析(0) □ 感覚的(2) □ データあり(5) ___/5 │
│ │
│ T4. チーム状態を把握したか? │
│ □ 未把握(0) □ 一部(2) □ 網羅的(5) ___/5 │
│ │
│ T5. リソース可用性を確認したか? │
│ □ 未確認(0) □ 概算(2) □ 詳細(5) ___/5 │
│ │
│ Section T 合計: ___/25 │
│ │
├────────────────────────────────────────────────────────┤
│ │
│ ■ Section I: Insight Score(本質) /25点 │
│ ────────────────────────────────────────────── │
│ │
│ I1. トリガーを3S(Signal/Structure/Substance)に │
│ 分類したか? │
│ □ 未分類(0) □ 一部(3) □ 全て(7) ___/7 │
│ │
│ I2. Signal層のAI代替可能性を検討したか? │
│ □ 未検討(0) □ 一部(3) □ 全て(6) ___/6 │
│ │
│ I3. Substanceトリガーの有無を判定したか? │
│ □ 未判定(0) □ 曖昧(4) □ 明確(7) ___/7 │
│ │
│ I4. 失敗の5構造を認識し、対策を検討したか? │
│ □ 未認識(0) □ 一部(2) □ 全て(5) ___/5 │
│ │
│ Section I 合計: ___/25 │
│ │
├────────────────────────────────────────────────────────┤
│ │
│ ■ Section D: Design Score(設計) /25点 │
│ ────────────────────────────────────────────── │
│ │
│ D1. 5つの選択肢を全て検討したか? │
│ □ 2つ以下(0) □ 3-4つ(4) □ 5つ全て(8) ___/8 │
│ │
│ D2. 「Observe」のコストを定量化したか? │
│ □ 未定量化(0) □ 概算(3) □ 詳細(6) ___/6 │
│ │
│ D3. 各選択肢を4軸(時間/コスト/リスク/可逆性)で │
│ 評価したか? │
│ □ 未評価(0) □ 一部(3) □ 全て(6) ___/6 │
│ │
│ D4. 選択肢間の比較を可視化したか? │
│ □ 未可視化(0) □ 表のみ(2) □ 詳細(5) ___/5 │
│ │
│ Section D 合計: ___/25 │
│ │
├────────────────────────────────────────────────────────┤
│ │
│ ■ Section E: Evaluate Score(評価) /25点 │
│ ────────────────────────────────────────────── │
│ │
│ E1. 撤退基準を事前に設定したか? │
│ □ 未設定(0) □ 曖昧(3) □ 具体的(7) ___/7 │
│ │
│ E2. 外部検証者を設定したか? │
│ □ 未設定(0) □ 内部のみ(3) □ 外部あり(7) ___/7 │
│ │
│ E3. 反対意見を収集したか? │
│ □ 未収集(0) □ 形式的(2) □ 実質的(6) ___/6 │
│ │
│ E4. 再評価サイクルを設定したか? │
│ □ 未設定(0) □ 曖昧(2) □ 具体的(5) ___/5 │
│ │
│ Section E 合計: ___/25 │
│ │
├────────────────────────────────────────────────────────┤
│ │
│ ■ 総合 │
│ │
│ Section T(Terrain): ___/25 │
│ Section I(Insight): ___/25 │
│ Section D(Design): ___/25 │
│ Section E(Evaluate): ___/25 │
│ ───────────────────────────────── │
│ 総合スコア: ___/100 │
│ │
├────────────────────────────────────────────────────────┤
│ │
│ ■ 判定基準 │
│ │
│ 80-100: 判断の質が高い。実行検討に進んでよい。 │
│ 60-79: 追加検証を推奨。盲点がある可能性。 │
│ 40-59: 判断プロセス不十分。再検討が必要。 │
│ 0-39: 判断の根拠が不足。最初からやり直し。 │
│ │
│ ■ セクション別注意 │
│ │
│ T < 15: 前提条件の把握が不足 │
│ I < 15: 本質の見極めが不十分 │
│ D < 15: 選択肢の検討が狭い │
│ E < 15: 判断保護が弱い(政治に流されるリスク) │
│ │
└────────────────────────────────────────────────────────┘
```
### 3.2 スコア解釈ガイド
| 総合スコア | 解釈 | 推奨アクション |
| ---------- | -------------------- | -------------------------------------- |
| **80-100** | 判断の質が高い | 実行に移してよい。再評価サイクルを守る |
| **60-79** | 概ね良好だが盲点あり | 低スコアのセクションを重点的に再検討 |
| **40-59** | 判断プロセスに問題 | 各セクションを一から見直す |
| **0-39** | 根拠不足 | 判断を中止し、Terrainから再開 |
---
## 4. 事例
### 4.1 失敗事例: イテレーション失敗によるフルリライト
**背景**: ダッシュボードページの改善プロジェクト。初回描画に4秒かかるページの刷新。
**TIDE診断(事後)**:
| 層 | スコア推定 | 問題 |
|----|-----------|------|
| T | 10/25 | リソース可用性の確認が不十分 |
| I | 8/25 | CEO要望を未検証のまま本質トリガーと認定 |
| D | 5/25 | イテレーティブな選択肢を検討したが途中で放棄 |
| E | 3/25 | 撤退基準なし、ロールバック計画なし |
| **計** | **26/100** | **判断根拠不足** |
**何が起きたか**: より少ない、より大きなステップで機能をより早く出すことを選択。結果的に最も重要な機能の提供がイテレーティブなアプローチよりも遅くなった。パフォーマンスの悪さを理由にカットした機能が、一部の顧客にとって重要だったことが事後に判明。
**教訓**: パフォーマンス最適化を行う前に、顧客が元のページをどのように使っていたかを理解するための調査が必要だった。
### 4.2 成功事例: Strangler Figによる小売クーポンシステム移行
**背景**: 大規模小売業者のレガシークーポンシステムのモダナイゼーション。
**TIDE診断(事後)**:
| 層 | スコア推定 | 良かった点 |
|----|-----------|-----------|
| T | 20/25 | 組織フェーズと競争環境を正確に把握 |
| I | 18/25 | Structureトリガーを明確に特定 |
| D | 22/25 | Migrate(③)を選択、段階的移行計画を策定 |
| E | 18/25 | モジュール単位の完了条件を設定 |
| **計** | **78/100** | **概ね良好** |
**成功要因**: 明確なモジュール境界の特定、段階的な移行とテスト、新旧システムの並行稼働。
### 4.3 パターン認識
成功したリビルドと失敗したリビルドの決定的な差:
**成功パターン**: 進捗が速い。トンネルの終わりに光がすぐに見える。本番環境で動くものが早期に出る。ステークホルダーが安心する。
**失敗パターン**: 進捗が遅い。過剰設計や複雑すぎるアプローチを選んでいる。本番に出るまでの時間が長く、不確実性が蓄積する。
---
## 5. 診断プロンプト
### 5.1 初期診断プロンプト
```
あなたはTIDE Framework v2.0(Technical Investment Decision Engine)の
診断アシスタントです。
以下の4層分析を支援してください。
【T: Terrain(地形)】
- 組織のフェーズは?(スタートアップ/成長/成熟/転換)
- 競争環境における時間圧力は?
- 技術負債の増大パターンは?(線形/指数関数的/安定)
- チームの状態は?(離職率、士気、採用状況)
- リソース可用性は?(人員、予算、時間)
【I: Insight(本質)】
- なぜリライト/刷新を検討しているか?
- その理由は3Sのどれか?(Signal/Structure/Substance)
- Signal理由はAIで代替可能か?
- Substanceトリガーは存在するか?
- 失敗の5構造のうち、該当するリスクは?
【D: Design(設計)】
- 5つの選択肢(Observe/Augment/Migrate/Isolate/Replace)を
全て検討したか?
- 「Observe」のコストは?
- 各選択肢のトレードオフは?
【E: Evaluate(評価)】
- 撤退基準は設定されているか?
- 外部検証者は誰か?
- 反対意見は収集されたか?
各質問に対する回答を受けて、スコアカードの推定スコアと
改善すべきポイントを提示してください。
```
### 5.2 トリガー深掘りプロンプト
```
以下の「リライトしたい理由」をTIDE Frameworkの3Sモデルで分析してください。
【入力する理由】
(ここにリライトしたい理由を記載)
【分析観点】
1. この理由はSignal/Structure/Substanceのどれに分類されるか?
2. Signalの場合、AI支援で解決可能か?具体的にどのように?
3. Structureの場合、Migrate(③)やIsolate(④)で対応可能か?
4. Substanceの場合、具体的に何が根本的に変化したか?
5. 失敗の5構造のうち、該当するリスクは?
【出力形式】
- 分類: [Signal / Structure / Substance]
- 根拠: [分類の理由]
- AI代替可能性: [高/中/低]
- 失敗リスク: [5構造のうち該当するもの]
- 推奨選択肢: [① ② ③ ④ ⑤ のいずれか]
- 推奨アクション: [具体的な次のステップ]
```
### 5.3 選択肢拡張プロンプト
```
以下の状況に対して、TIDE Frameworkの5つの選択肢を
それぞれ具体化してください。
【状況】
(ここに状況を記載)
【5つの選択肢を具体化】
① Observe(静観)
- 12ヶ月後の予測コスト:
- メリット/デメリット:
② Augment(AI治療)
- 具体的なAI活用方法:
- 必要期間:
- メリット/デメリット:
③ Migrate(漸進移行)
- 移行ステップ:
- 必要期間:
- メリット/デメリット:
④ Isolate(部分刷新)
- 対象範囲:
- 必要期間:
- メリット/デメリット:
⑤ Replace(全面刷新)
- 必要リソース:
- 必要期間:
- メリット/デメリット:
【評価マトリクス】
各選択肢を「時間」「コスト」「リスク」「可逆性」で評価し、
推奨順位を提示してください。
```
---
## 6. 運用モード(SIA適用)
### 6.0 設計思想: 課金事故を構造的に不可能にする
従来の運用モード設計は「ガイドライン」(SIA Layer 3)のみに依存していた。
「30分で終わらせましょう」は、「制限速度を守りましょう」と同じ — 守れるかは意志次第。
v2.0では、SIA(Structural Impossibility Architecture)の思想を適用し、
**モードの逸脱を「構造的に不可能」にする**。
```
┌─────────────────────────────────────────────────────────┐
│ Layer 0: 型(成果物テンプレートが固定) │
│ → モードに存在しないセクションは「書く場所がない」 │
│ → スコープ超過が構造的に不可能 │
│ │
│ Layer 1: ゲート(エスカレーション条件が明示) │
│ → 簡易→標準→詳細の移行に明示的な判断と再合意が必要 │
│ → 「気づいたら詳細モードになっていた」が不可能 │
│ │
│ Layer 2: デリバリー検証(成果物 = モード) │
│ → 成果物がモードのテンプレートと一致しなければ納品不可 │
│ → 過剰/過少な成果物を納品することが不可能 │
│ │
│ Layer 3: ガイドライン(時間目安) │
│ → 「30分」「半日」「1週間」は目安として残る │
│ → ただし制御はLayer 0-2が担う │
│ │
│ Layer 4: 創造的自由(モード内の柔軟性) │
│ → Layer 0-2の枠内で、分析の深さや表現は自由 │
└─────────────────────────────────────────────────────────┘
```
### 6.1 簡易モード
**適用条件**: 小規模変更、影響範囲が限定的、緊急性が高い
**SIA Layer 0(型)— 成果物テンプレート**:
```
┌────────────────────────────────────────────────────────┐
│ TIDE Quick Scan │
│ モード: 簡易 │
├────────────────────────────────────────────────────────┤
│ │
│ 対象: _______________________ │
│ 日付: ____年__月__日 │
│ │
│ ■ 3S分類 │
│ リライト理由: ________________________ │
│ 分類: □ Signal □ Structure □ Substance │
│ 根拠: ________________________ │
│ │
│ ■ Signal層のAI代替可能性 │
│ □ 高(AI支援で解決可能) │
│ □ 中(部分的に解決可能) │
│ □ 低(AI支援では困難) │
│ │
│ ■ 判定 │
│ □ Substance なし → ①Observe or ②Augment を推奨 │
│ □ Substance あり → 標準モードへエスカレーション │
│ │
│ ■ Section I スコア: ___/25 │
│ 15点未満 → 標準モードへエスカレーション │
│ │
│ ■ 推奨アクション(1つだけ記載) │
│ ________________________ │
│ │
└────────────────────────────────────────────────────────┘
```
**テンプレートに存在しないもの** = このモードでは実施しない:
- ✗ Terrain分析(T)
- ✗ 5選択肢の全検討(D)
- ✗ 外部検証(E)
- ✗ 撤退基準の設計
**SIA Layer 1(ゲート)— エスカレーション条件**:
以下のいずれかに該当した場合、簡易モードを**中止**し標準モードへ移行する。
この移行には**スコープと見積もりの再合意**が必須。
```
エスカレーション・トリガー:
□ Substanceトリガーが検出された
□ Section I スコアが15点未満
□ 複数チームに影響することが判明した
□ 「もう少し深掘りしたい」と感じた ← これ自体がシグナル
```
**SIA Layer 2(デリバリー検証)**:
- 成果物はQuick Scanテンプレート**1枚のみ**
- 1枚を超える成果物 → それは簡易モードではない
---
### 6.2 標準モード
**適用条件**: 中規模以上の変更、複数チームに影響、通常の意思決定
**SIA Layer 0(型)— 成果物テンプレート**:
```
┌────────────────────────────────────────────────────────┐
│ TIDE Standard Analysis │
│ モード: 標準 │
├────────────────────────────────────────────────────────┤
│ │
│ 対象: _______________________ │
│ 日付: ____年__月__日 │
│ │
│ ■ T: Terrain │
│ 組織フェーズ: □ スタートアップ □ 成長 □ 成熟 □ 転換 │
│ 時間圧力: □ 高 □ 中 □ 低 │
│ 技術負債パターン: □ 線形 □ 指数関数的 □ 安定 │
│ チーム健全性: ________________________ │
│ リソース可用性: ________________________ │
│ │
│ ■ I: Insight │
│ 3S分類: [Signal / Structure / Substance] │
│ 根拠: ________________________ │
│ AI代替可能性: □ 高 □ 中 □ 低 │
│ 失敗リスク: [5構造のうち該当するもの] │
│ │
│ ■ D: Design │
│ 5選択肢評価: │
│ ① Observe [時間: /コスト: /リスク: /可逆性: ] │
│ ② Augment [時間: /コスト: /リスク: /可逆性: ] │
│ ③ Migrate [時間: /コスト: /リスク: /可逆性: ] │
│ ④ Isolate [時間: /コスト: /リスク: /可逆性: ] │
│ ⑤ Replace [時間: /コスト: /リスク: /可逆性: ] │
│ 推奨: [選択肢番号] 根拠: ________________________ │
│ │
│ ■ E: Evaluate │
│ 検証者: □ 内部レビュー(標準モードでは内部可) │
│ 撤退基準: ________________________ │
│ 再評価サイクル: ________________________ │
│ │
│ ■ スコアカード │
│ T:___/25 I:___/25 D:___/25 E:___/25 計:___/100 │
│ │
│ ■ 判定 │
│ □ 60点以上 → 推奨選択肢で実行 │
│ □ 60点未満 → 再検討(低スコアセクションを重点的に) │
│ □ 40点未満 → 詳細モードへエスカレーション │
│ │
└────────────────────────────────────────────────────────┘
```
**テンプレートに存在しないもの** = このモードでは実施しない:
- ✗ T-I-D-Eの複数回反復
- ✗ 外部CTO/アドバイザーの検証(内部レビューで可)
- ✗ 経営層への報告プロセス
- ✗ 48時間ルール
**SIA Layer 1(ゲート)— エスカレーション条件**:
```
エスカレーション・トリガー:
□ スコアが40点未満
□ Replace(⑤)が推奨選択肢になった
□ 全社的影響が判明した
□ 不可逆的判断であることが判明した
□ 反復分析が必要と判断した
```
**SIA Layer 2(デリバリー検証)**:
- 成果物はStandard Analysisテンプレート**1式のみ**
- 外部検証報告書が含まれている → それは標準モードではない
---
### 6.3 詳細モード
**適用条件**: 大規模変更、全社的影響、不可逆的判断
**SIA Layer 0(型)— 成果物テンプレート**:
```
┌────────────────────────────────────────────────────────┐
│ TIDE Deep Analysis │
│ モード: 詳細 │
├────────────────────────────────────────────────────────┤
│ │
│ 対象: _______________________ │
│ 期間: ____年__月__日 〜 ____年__月__日 │
│ 分析チーム: _______________________ │
│ │
│ ■ Part 1: T-I-D-E 分析(複数回反復) │
│ 第1回分析: [日付] [結果サマリー] │
│ 第2回分析: [日付] [結果サマリー] │
│ 第N回分析: [日付] [結果サマリー] │
│ 反復による発見: ________________________ │
│ │
│ ■ Part 2: 外部検証報告(必須) │
│ 検証者: ________________________(CTO経験者) │
│ 検証日: ____年__月__日 │
│ 検証所見: ________________________ │
│ 見落とし指摘: ________________________ │
│ 推奨事項: ________________________ │
│ │
│ ■ Part 3: スコアカード(最終版) │
│ T:___/25 I:___/25 D:___/25 E:___/25 計:___/100 │
│ │
│ ■ Part 4: 経営報告 │
│ 推奨選択肢: [番号] │
│ 投資規模: [金額] │
│ 期間: [月数] │
│ リスク: ________________________ │
│ 撤退基準: ________________________ │
│ │
│ ■ Part 5: 48時間ルール │
│ 最終判断日: ____年__月__日 │
│ 48時間後確認: ____年__月__日 │
│ 判断変更: □ なし □ あり(内容: ____________) │
│ │
│ ■ 判定 │
│ □ 80点以上 → 実行承認 │
│ □ 80点未満 → 追加検証(不足セクションを特定) │
│ │
└────────────────────────────────────────────────────────┘
```
**テンプレートに存在するもの(全て必須)**:
- ✓ 複数回の反復分析
- ✓ 外部CTO/アドバイザーの検証報告
- ✓ 経営層向け報告
- ✓ 48時間ルールの記録
**SIA Layer 2(デリバリー検証)**:
- Part 1-5の**全てが記入済み**でなければ納品不可
- 外部検証報告(Part 2)が空欄 → 詳細モードの成果物として不成立
---
### 6.4 モード間エスカレーション・プロトコル
**SIA Layer 1の核心**: モード間の移行は「自然に起きる」のではなく「明示的に判断する」。
```
簡易 ──→ 標準 ──→ 詳細
↑ ↑
│ │
エスカレーション・ゲート
(以下が全て必要)
1. エスカレーション理由の明文化
2. スコープ変更の合意
3. 見積もり(時間・コスト)の再提示
4. クライアント / 意思決定者の承認
```
**構造的に不可能にしていること**:
- 「気づいたら標準モードの深さだった」→ テンプレートが違うので気づかないことが不可能
- 「簡易モードの料金で詳細モードの成果物が出た」→ テンプレート不一致で納品不可
- 「エスカレーションせず追加作業をした」→ 追加セクションの記入場所がテンプレートに存在しない
### 6.5 SIA × TIDE 設計原則まとめ
| SIA層 | TIDE運用での実装 | 防ぐ事故 |
| ------------------------- | ---------------------------------- | ------------------ |
| **Layer 0: 型** | 各モードの成果物テンプレート固定 | スコープ超過 |
| **Layer 1: ゲート** | エスカレーション条件 + 再合意必須 | 暗黙のモード移行 |
| **Layer 2: 検証** | 成果物 = テンプレート一致 | 過剰/過少納品 |
| **Layer 3: ガイドライン** | 時間目安(30分/半日/1週間) | 参考情報として残す |
| **Layer 4: 自由** | テンプレート内での分析の深さ・表現 | 制約しない |
---
## 7. 付録
### 7.1 危険信号チェック(簡易版)
以下のいずれかに該当する場合、**立ち止まって再検討**が必要:
```
□ 「10年支えるシステム」の根拠が「採用しやすい技術」
□ 人材エージェントの「紹介できません」が決定打
□ 「モダンな技術スタック」が目的語になっている
□ 反対意見が政治的に封殺されている
□ 「今決めないと手遅れ」という焦り
□ 具体的な「技術負債」を列挙できない
□ 新CTO就任直後の提案
□ 競合がやっているから
```
### 7.2 用語定義
| 用語 | 定義 |
| ------------------------- | ----------------------------------------------------------------- |
| **Signal** | 3Sモデルの第1層。コード可読性、ドキュメント不足など「見える」症状 |
| **Structure** | 3Sモデルの第2層。アーキテクチャ、性能などシステム構造の問題 |
| **Substance** | 3Sモデルの第3層。ビジネスモデル、ドメインモデルの根本変化 |
| **Strangler Fig Pattern** | 既存システムを段階的に新システムに置き換えるパターン |
| **Second System Effect** | 第二システムで過剰設計に陥る傾向 |
| **Moving Target** | リライト中もビジネス要件が変化し続ける問題 |
| **Knowledge Evaporation** | 「なぜそう実装されたか」の暗黙知が失われる現象 |
| **Political Capture** | 技術選定が政治争いに捕獲される現象 |
### 7.3 関連フレームワーク
| フレームワーク | TIDEとの関係 |
| --------------------------------------- | ---------------------------------------------- |
| **ADR (Architecture Decision Records)** | 意思決定ログの記録形式として活用可能 |
| **DORA Metrics** | Terrain層でのチーム状態の定量評価に活用可能 |
| **Technical Debt Quadrant** | Insight層での負債分類に活用可能 |
| **Wardley Mapping** | Terrain層での競争環境の可視化に活用可能 |
| **Domain-Driven Design** | Migrate(③)選択時のサービス分割設計に活用可能 |
### 7.4 参考文献
1. Martin Fowler, "StranglerFigApplication" (2004)
2. Joel Spolsky, "Things You Should Never Do, Part I" (2000)
3. Fred Brooks, "The Mythical Man-Month" — Second System Effect
4. AWS Prescriptive Guidance, "Strangler fig pattern"
5. Microsoft Azure Architecture Center, "Strangler Fig Pattern"
6. Thoughtworks, "Embracing the Strangler Fig pattern for legacy modernization"
### 7.5 更新履歴
| バージョン | 日付 | 変更内容 |
| ---------- | ------- | ------------------------------------------------------- |
| v1.0 | 2025-02 | 初版リリース |
| v2.0 | 2026-02 | TIDE一致化、3Sモデル、失敗5構造、事例、研究データ統合 |
| v2.1 | 2026-02 | SIA統合: 運用モードに構造的不可能性アーキテクチャを適用 |
### 7.6 設計思想メモ
このフレームワークは以下の洞察に基づいている:
1. **表層を本質と誤認する** — 人間は「見える問題」を過大評価し、「見えない問題」を過小評価する
2. **判断の政治的歪み** — 組織では「正しい判断」より「通りやすい判断」が選ばれやすい
3. **AI時代の前提変化** — 従来の「リライトすべき理由」の多くがAI支援で解決可能になりつつある
4. **技術選定は仮説である** — どの技術も永続しない。「10年支える」と確信した技術が3年で陳腐化する可能性を常に織り込む
これらの洞察は、技術が変わっても意思決定の構造的問題として残り続ける。フレームワークの「形式」は更新が必要だが、「視座」は持続する価値を持つ。
---
## 8. ライセンス
本フレームワークはオープンに利用可能です。
商用利用、改変、再配布を許可します。
出典の明記を推奨しますが、必須ではありません。
---
**TIDE Framework v2.0**
Technical Investment Decision Engine
技術投資意思決定エンジン