Spec-tech-moneyデシジョンログの、フォーマットをまとめて、サンプルを2つほど生成してみて
Spec-Tech-Money デシジョンログ(STMログ)
「なぜその決定が(現時点で)合理的か」を、3つの要素(Spec/Tech/Money)のバランスで説明し、特に「将来の変更可能性(可逆性)」を意識的に記録する
フォーマット(テンプレート)
基本情報
- ID: [一意のID、例: STM-001]
- 日付: [意思決定した日付: YYYY-MM-DD]
- ステータス: [提案中 | 承認 | 棄却 | 変更済(→STM-XXX)]
- 決定者: [意思決定を行ったチームまたは個人]
1. Spec(ニーズ・課題・仕様)
[S-1] フォーカスするニーズ
我々は何の課題を解決しようとしているのか? 顧客の誰のどんな要求か?
[S-2] 制約・要求事項
満たすべき必須要件は何か? スピード、品質、セキュリティ等の優先順位は?
[S-3] 不確実性(Spec面)
このニーズは本当に正しいか? 将来変わる可能性はどれくらいか?
2. Money(費用対効果・ビジネス合理性)
[M-1] 費用(Cost)
初期開発コスト、運用コスト、ライセンス費用、トレーニング費用など
[M-2] 効果(Benefit / ROI)
売上貢献、コスト削減、リードタイム短縮、[S-1]の課題解決度など
[M-3] 不確実性(Money面)
予算の制約は? [M-2]の効果見積もりの確度は?
3. Tech(技術・アーキテクチャ)
[T-1] 検討した選択肢(と棄却理由)
A案: [案の概要]
- 棄却理由: [Spec/Tech/Moneyの観点でなぜ不採用か]
B案: [案の概要]
- 棄却理由: […]
[T-2] 採用する選択肢
C案: [案の概要]
[T-3] 採用理由(STMのバランス)
なぜC案が、現状のS/T/Mのバランスにおいて最適と判断したか
4. 可逆性(Decision Type)
[R-1] 決定タイプ
- 不可逆(One-Way Door)
- 可逆(Two-Way Door)
- 中間
[R-2] 可逆性の判断理由
なぜそう判断したか? ロックインの度合いは?
[R-3] 将来の変更トリガー(もし可逆なら)
もし将来変更するとしたら、何をキッカケに判断するか?
- 例: ユーザー数がX人を超えたら、特定の機能要求が出たら、など
[R-4] ピボット戦略(変更の余地)
将来、棄却したA案やB案に移行するための「仕込み」や「残している余地」は何か?
サンプル1: 認証基盤(ピボット可能なSaaS選定)
基本情報
- ID: STM-001
- 日付: 2025-10-18
- ステータス: 承認
- 決定者: プロダクトチーム
1. Spec(ニーズ・課題・仕様)
[S-1] フォーカスするニーズ
MVP(Minimum Viable Product)を最速で市場投入し、コア機能のPMF(プロダクトマーケットフィット)検証を行いたい。ユーザー認証(サインアップ、ログイン)機能が必須。
[S-2] 制約・要求事項
- 最優先: 市場投入速度(Time to Market)
- 必須: ソーシャルログイン(Google, Apple)
- 将来: 2要素認証、SAML連携の可能性あり
[S-3] 不確実性(Spec面)
高い。 PMF検証前であり、将来的にエンタープライズ向け機能(SAML等)が本当に必要になるか不明。コア機能が受け入れられなければ、サービス自体ピボットする可能性がある。
2. Money(費用対効果・ビジネス合理性)
[M-1] 費用(Cost)
初期開発リソース(エンジニア2名)はコア機能開発に集中させたい。認証機能に工数を割きたくない。
[M-2] 効果(Benefit / ROI)
認証開発工数を(A案比で)1人月削減し、MVPリリースを2週間早める。
[M-3] 不確実性(Money面)
高い。 シードステージであり、ランウェイ(資金余命)は残り12ヶ月。コスト(特に初期コスト)は最小限に抑える必要がある。
3. Tech(技術・アーキテクチャ)
[T-1] 検討した選択肢(と棄却理由)
A案: 認証機能のフルスクラッチ開発(ライブラリ使用)
- 棄却理由: [S-2]の速度を満たせない。[M-1]の観点で開発リソースを割けない。セキュリティ担保の工数も別途必要になる。
B案: オープンソース(Keycloak等)のセルフホスト
- 棄却理由: [M-1]の観点で、運用・保守コストが継続的にかかる。速度面でも[A案]よりは早いが[C案]に劣る。
[T-2] 採用する選択肢
C案: 認証SaaS(Auth0, Firebase Authなど)の導入
[T-3] 採用理由(STMのバランス)
[S-1][S-2]の「市場投入速度」を最優先するため。[M-1]の開発リソースをコア機能に集中できる。[M-3]の予算観点でも、無料枠〜低価格帯でスタートできるため、PMF検証フェーズに最適。
4. 可逆性(Decision Type)
[R-1] 決定タイプ
✅ 可逆(Two-Way Door)
[R-2] 可逆性の判断理由
認証SaaSは、ユーザーデータをエクスポートする手段が提供されていることが多い。また、認証処理はAPI経由で抽象化されるため、将来的に内製(A案)やセルフホスト(B案)に切り替える際も、影響範囲を認証部分に限定できる。
[R-3] 将来の変更トリガー
- [S-3]の不確実性が解消され、エンタープライズ機能(SAML等)が必須となり、SaaSの利用料が[M-1]の内製コストを大幅に上回った場合
- MAU(月間アクティブユーザー)が10万人を超えた場合
[R-4] ピボット戦略(変更の余地)
- アプリケーション側では、認証SaaSのSDKに直接依存せず、自社定義の認証インターフェース(Facadeパターン) を介して利用する
- これにより、将来SaaS(C案)から内製(A案)に切り替える際も、このインターフェースの具象クラスを差し替えるだけで対応可能にし、Tech的なロックインを最小限に留める
サンプル2: システムアーキテクチャ(モジュラーモノリス)
基本情報
- ID: STM-002
- 日付: 2025-10-18
- ステータス: 承認
- 決定者: CTO, 開発チーム
1. Spec(ニーズ・課題・仕様)
[S-1] フォーカスするニーズ
中規模ECプラットフォームの構築。初期フェーズでは「商品管理」「注文管理」「顧客管理」の3つのコア機能を提供する。
[S-2] 制約・要求事項
- 初期開発のシンプルさと速度
- 将来的に「物流連携」「ポイント機能」などドメインが複雑化する想定
- 各機能(ドメイン)は、将来的に専任チームが担当する可能性がある
[S-3] 不確実性(Spec面)
中程度。 コアドメイン(商品・注文・顧客)は固まっているが、どの機能が将来的にスケールし、複雑化するかは現時点では予測困難。
2. Money(費用対効果・ビジネス合理性)
[M-1] 費用(Cost)
開発チームは5名。インフラ運用コスト(特に固定費)は最小限に抑えたい。
[M-2] 効果(Benefit / ROI)
まずはモノリシックな構成で迅速に機能をリリースし、市場からのフィードバックを得る。
[M-3] 不確実性(Money面)
事業がスケールした場合、インフラコストが増大する懸念はあるが、初期の低コストを優先する。
3. Tech(技術・アーキテクチャ)
[T-1] 検討した選択肢(と棄却理由)
A案: マイクロサービスアーキテクチャ
- 棄却理由: [M-1]のチーム規模(5名)では、サービス分割・運用・監視のオーバーヘッドが大きすぎる。[T-3]の通り、まだ時期尚早。
B案: 単純なモノリス(密結合なスパゲッティコード)
- 棄却理由: [S-2]の将来的なドメイン複雑化に対応できない。将来の分割コストが天文学的になる「不可逆な技術的負債」を生む。
[T-2] 採用する選択肢
C案: モジュラーモノリス(Modular Monolith)
単一のデプロイ単位だが、内部はドメイン(商品・注文・顧客)ごとにモジュールを明確に分割し、モジュール間の依存関係を厳格に管理する。
[T-3] 採用理由(STMのバランス)
[S-2]の「初期のシンプルさ」と[M-1]の「低コスト」を満たしつつ(モノリスの利点)、[S-2]の「将来の複雑化」にも備える(モジュールの利点)。[S-3]の「どの機能がスケールするか不確実」という状況に対し、最もバランスが良い。
4. 可逆性(Decision Type)
[R-1] 決定タイプ
✅ 可逆(Two-Way Door) ※ただし移行コスト中
[R-2] 可逆性の判断理由
C案(モジュラーモノリス)は、B案(単純モノリス)と異なり、ドメイン間の境界がコードレベルで明確に定義されている。
[R-3] 将来の変更トリガー
- [S-3]の不確実性が解消され、特定のドメイン(例:「注文管理」)の開発速度が他ドメインのボトルネックになった場合
- 「注文管理」チームが専任で組織され、他チームと独立したデプロイサイクルが必要になった場合
[R-4] ピボット戦略(変更の余地)
- C案の設計(モジュール分割)により、将来A案(マイクロサービス)に移行する際、コストを最小限に抑える余地を残している
- 具体的には: ボトルネックとなったモジュール(例:「注文管理」)だけを、定義されたインターフェース(API)を保ったまま、別サービスとして切り出すことが可能
- これは、最初からA案を選ぶ[Tech]的なオーバーヘッドや、B案を選んで[Money]的に移行不能になるリスクを回避する、SpecとMoneyの観点からも合理的なTechの意思決定である
活用のポイント
- 3つの観点のバランス: Spec(何を)、Money(費用対効果)、Tech(どう実現)を常に意識
- 可逆性の明確化: 意思決定が後から変更可能か、コストはどの程度かを記録
- 将来への備え: 棄却した選択肢への「逃げ道」や「トリガー条件」を明記
- チーム共有: なぜその決定をしたのか、後から参照できる形で残す
Discussion