正直ここで迷いました

先日、参画しているプロジェクトのアーキテクチャレビュー会議に参加しました。新規開発中のサービスで、Gemini の Grounding 機能を採用したいという提案があり、私は2つの質問をしました。

質問をした後、ふとこう思いました。

「あれ、この質問ってアーキテクチャレビュー会議で聞くべき内容だったのかな?」

会議の目的やスコープが明文化されていない中で、自分の質問が適切だったのか確信が持てませんでした。そこで、この体験を機に「アーキテクチャレビュー会議とは何か」を改めて整理してみようと思いました。

実際に質問した内容

新規開発中のサービスで、Gemini の Grounding 機能を採用したいという提案に対して、私は以下の2つの質問をしました。

質問1: Grounding 機能の制約への対応方針

Grounding 機能の規約では、「レスポンスに検索結果・リンク・候補は返さない」というルールがあると聞いています。

一方で、このサービスの性質上、ユーザーから「参考にしたリンクや記事を提示してほしい」という問い合わせがどこかのタイミングで来るだろうと思います。

その場合、どのように回答するのか、方針はありますか?

質問2: 使用モデルの開示方針

ユーザー側の体験として、今まで OpenAI を使っていたものが Gemini に変わることになります。

具体的に何のモデルを使っているのかは、ユーザーに開示されるのでしょうか?

これもユーザーから問い合わせが来ると思うので、それに対しての回答方針はありますか?

質問後の不安

質問をした後、こんな不安が頭をよぎりました。

「これってアーキテクチャレビュー会議で検討すべき内容だったのかな?」
「もしかして、カスタマーサポートの運用フローとかプロダクト方針の話で、ここで聞くべきじゃなかったのでは?」

会議のスコープが明確になっていなかったので、自分の質問が「場違い」だったのではないかと不安になりました。

振り返ってみると、質問は適切だった

後から考えてみると、この2つの質問はアーキテクチャレビュー会議で議論すべき内容だったと思います。

質問1が適切だった理由

これは技術選定における制約事項の確認です。

規約上の制限が将来的なユーザー要件を満たせない可能性があるなら、技術選定の妥当性に直結します。今気づかないと、実装後に「やっぱり使えなかった」となるリスクがあります。

アーキテクチャレビュー会議で最も重要な論点の一つは、「この技術選定で本当に大丈夫か」を確認することです。

質問2が適切だった理由

これは製品方針にも関わりますが、透明性・コンプライアンスの観点からアーキテクチャレビュー会議で議論すべき内容だと思います。

特にAIサービスでは、使用モデルの開示が信頼性に関わる場合があります。

ただし、この質問への回答が「カスタマーサポートチームで別途検討します」となる可能性はあります。それでも、会議で論点として提起すること自体は適切だったと考えています。

アーキテクチャレビュー会議の一般的なスコープ

この体験を機に、アーキテクチャレビュー会議のスコープについて調べてみました。

そもそも名称は統一されていない

「アーキテクチャレビュー会議」という名称が一般的かどうかも分からなかったので調べてみたところ、様々な名称で呼ばれているようです。

英語圏:

日本語:

一般的なスコープの線引き

多くの組織では、以下のようなスコープで運用されているようです。

graph TB
    A[アーキテクチャレビュー会議のスコープ] --> B[✅ 議論すべきこと]
    A --> C[❌ 範囲外とすべきこと]

    B --> B1[技術選定の妥当性]
    B --> B2[アーキテクチャ設計]
    B --> B3[非機能要件への対応]
    B --> B4[技術的負債・長期的影響]
    B --> B5[コンプライアンス・規制対応]

    C --> C1[詳細な実装方法]
    C --> C2[プロダクト・ビジネス判断]
    C --> C3[詳細なUI/UX設計]
    C --> C4[運用の細部]
    C --> C5[プロジェクト管理]

✅ 議論すべきこと(In Scope)

1. 技術選定の妥当性

2. アーキテクチャ設計

3. 非機能要件への対応

4. 技術的負債・長期的影響

5. コスト影響(技術的観点)

6. コンプライアンス・規制対応

❌ 議論の範囲外とすべきこと(Out of Scope)

1. 詳細な実装方法

2. プロダクト・ビジネス判断

3. 詳細なUI/UX設計

4. 運用の細部

5. プロジェクト管理

明文化の重要性

今回の体験で強く感じたのは、アーキテクチャレビュー会議のスコープは明文化すべきということです。

明文化されていないと、参加者それぞれが「これは議論すべきだ」「いや、これは範囲外だ」と異なる認識を持ったまま会議が進んでしまいます。

明文化すべきドキュメント例

実際に多くの組織が以下のようなドキュメントを用意しているそうです。

1. Architecture Review Charter(憲章)

2. Review Checklist(レビューチェックリスト)

3. Submission Template(提出テンプレート)

4. Decision Record(意思決定記録)

[📦 商品リンク: moshimo-book-MxbAm]

[📦 商品リンク: moshimo-card-TxhLL]

すぐに使える明文化ドキュメントの雛形

ここからは、実際に使える雛形を紹介します。これらをそのままコピーして、あなたのプロジェクトに合わせて調整してください。

雛形1: Architecture Review Charter(憲章)

# アーキテクチャレビュー憲章

## 目的
本会議は、システムアーキテクチャの技術的妥当性を評価し、組織全体の技術的整合性を保つことを目的とする。

## スコープ
### ✅ レビュー対象
- 新規システム・サービスのアーキテクチャ設計
- 既存システムの大幅な変更・リアーキテクチャ
- 技術スタックの大幅な変更
- セキュリティ・パフォーマンスに重大な影響を与える変更

### ❌ レビュー対象外
- 詳細な実装レベルの設計
- UI/UXの詳細設計
- プロジェクト管理・スケジュール
- ビジネス要件の妥当性

## メンバー構成
- **議長**: CTO / 技術部長
- **常任メンバー**: アーキテクト、セキュリティ担当、インフラ担当
- **任意参加**: 提案者、関連チームのリーダー

## 開催頻度
- 定例: 隔週 / 月1回
- 臨時: 緊急の技術判断が必要な場合

## 意思決定プロセス
1. 提案者が設計書を事前提出(会議の3営業日前まで)
2. レビューメンバーが事前確認
3. 会議で質疑・議論
4. 承認 / 条件付き承認 / 再検討 / 却下のいずれかを決定
5. 決定内容を記録・共有

## 承認基準
- セキュリティ要件を満たしている
- パフォーマンス・スケーラビリティが考慮されている
- 既存システムとの整合性がある(または乖離の正当な理由がある)
- 主要リスクが特定され、軽減策が用意されている
- 技術的負債が明確に認識されている

## 改訂履歴
- 2026-02-05: 初版作成

雛形2: Review Checklist(レビューチェックリスト)

# アーキテクチャレビュー チェックリスト

## 提出前チェック(提案者用)
- [ ] アーキテクチャ設計書を作成した
- [ ] システム構成図を用意した
- [ ] 技術選定理由を明記した
- [ ] 代替案を検討し、比較した
- [ ] リスク分析と対策を記載した
- [ ] 既存システムへの影響を分析した
- [ ] 会議の3営業日前までに提出した

## レビュー時チェック(レビュアー用)

### 1. 技術選定
- [ ] 技術選定の理由が明確か
- [ ] 代替案との比較が適切か
- [ ] 技術的制約・リスクが特定されているか
- [ ] ライセンス・規約の確認がされているか

### 2. アーキテクチャ設計
- [ ] システム全体構成が理解できるか
- [ ] コンポーネント間の依存関係が明確か
- [ ] データフローが適切に設計されているか
- [ ] 既存システムへの影響が分析されているか

### 3. 非機能要件
- [ ] パフォーマンス要件が定義されているか
- [ ] スケーラビリティが考慮されているか
- [ ] 可用性・障害対策が設計されているか
- [ ] セキュリティ設計が適切か
- [ ] 監視・運用方針が明確か

### 4. リスク管理
- [ ] 主要リスクが特定されているか
- [ ] 各リスクに対する軽減策があるか
- [ ] 技術的負債が認識されているか

### 5. 長期的影響
- [ ] 将来の拡張性が考慮されているか
- [ ] 保守性が考慮されているか
- [ ] 組織の技術スキルとマッチしているか

### 6. コスト
- [ ] インフラコストが見積もられているか
- [ ] ライセンス費用が考慮されているか
- [ ] 運用コストへの影響が分析されているか

### 7. コンプライアンス
- [ ] データ保護・プライバシー対応が適切か
- [ ] 業界規制への準拠が確認されているか

## 承認判定
- [ ] ✅ 承認(Approved)
- [ ] ⚠️ 条件付き承認(Approved with Conditions)
  - 条件: _______________________
- [ ] 🔄 再検討(Needs Revision)
  - 理由: _______________________
- [ ] ❌ 却下(Rejected)
  - 理由: _______________________

雛形3: Submission Template(提出テンプレート)

# アーキテクチャレビュー提案書

## 基本情報
- **提案日**: YYYY-MM-DD
- **提案者**: 名前 / チーム
- **プロジェクト名**:
- **レビュー希望日**: YYYY-MM-DD

---

## 1. 背景・目的

### 1.1 背景
(なぜこのアーキテクチャ変更が必要なのか)

### 1.2 目的
(何を達成したいのか)

### 1.3 スコープ
(どこまでを対象とするか)

---

## 2. 現状の課題

### 2.1 現在のアーキテクチャ
(現状の構成図を含む)

### 2.2 課題・問題点
- 課題1:
- 課題2:
- 課題3:

---

## 3. 提案するアーキテクチャ

### 3.1 全体構成図
(システム構成図を挿入)

### 3.2 主要コンポーネント
- コンポーネントA: 役割・責務
- コンポーネントB: 役割・責務
- コンポーネントC: 役割・責務

### 3.3 データフロー
(データの流れを図示)

### 3.4 既存システムへの影響
- 影響範囲:
- 移行方針:
- ダウンタイム:

---

## 4. 技術選定

### 4.1 採用技術
| 用途 | 技術 | バージョン |
|------|------|-----------|
| データベース | PostgreSQL | 15.x |
| キャッシュ | Redis | 7.x |
| ... | ... | ... |

### 4.2 選定理由
(なぜこの技術を選んだのか)

### 4.3 代替案との比較
| 項目 | 提案技術 | 代替案A | 代替案B |
|------|---------|---------|---------|
| パフォーマンス | ◎ | ○ | △ |
| コスト | ○ | ◎ | △ |
| 学習コスト | ○ | △ | ◎ |
| **総合評価** | **採用** | - | - |

### 4.4 技術的制約・リスク
- 制約1: (例: Gemini Grounding機能はリンクを返せない)
- 制約2:
- 対応方針:

---

## 5. 非機能要件への対応

### 5.1 パフォーマンス
- 目標レスポンスタイム:
- 想定スループット:
- 対策:

### 5.2 スケーラビリティ
- 想定成長率:
- スケール戦略:

### 5.3 可用性
- 目標SLA:
- 障害対策:

### 5.4 セキュリティ
- 認証・認可方式:
- データ暗号化:
- 脆弱性対策:

### 5.5 監視・運用
- 監視項目:
- アラート設定:
- ログ戦略:

---

## 6. リスク分析と対策

| リスク | 発生確率 | 影響度 | 軽減策 |
|--------|---------|--------|--------|
| リスク1 | 高/中/低 | 高/中/低 | 対策内容 |
| リスク2 | 高/中/低 | 高/中/低 | 対策内容 |

---

## 7. コスト影響

### 7.1 初期コスト
- 開発費:
- ライセンス費:
- インフラ構築費:

### 7.2 運用コスト(月額)
- インフラコスト:
- ライセンス費:
- 保守費:

---

## 8. スケジュール

| マイルストーン | 予定日 |
|---------------|--------|
| 設計完了 | YYYY-MM-DD |
| 実装完了 | YYYY-MM-DD |
| テスト完了 | YYYY-MM-DD |
| リリース | YYYY-MM-DD |

---

## 9. その他

### 9.1 技術的負債
(この設計で発生する技術的負債はあるか)

### 9.2 将来の拡張性
(将来的な拡張の余地はあるか)

### 9.3 依存関係
(他のプロジェクトへの依存・影響はあるか)

---

## 10. 質問・懸念事項

(レビュアーに確認してほしいこと)

---

## 添付資料
- システム構成図
- データフロー図
- その他参考資料

雛形4: Decision Record(意思決定記録)

# アーキテクチャレビュー 意思決定記録

## 基本情報
- **レビュー日**: YYYY-MM-DD
- **プロジェクト名**:
- **提案者**: 名前 / チーム
- **レビュアー**: 参加者リスト

---

## 決定内容

### 承認判定
- [ ] ✅ 承認(Approved)
- [ ] ⚠️ 条件付き承認(Approved with Conditions)
- [ ] 🔄 再検討(Needs Revision)
- [ ] ❌ 却下(Rejected)

---

## 決定理由

(なぜこの判定になったのか)

---

## 主な議論内容

### 質問1:
- **質問者**:
- **質問内容**:
- **回答**:

### 質問2:
- **質問者**:
- **質問内容**:
- **回答**:

### 質問3:
- **質問者**:
- **質問内容**:
- **回答**:

---

## 条件・懸念事項(条件付き承認の場合)

1. 条件1:
   - 対応期限: YYYY-MM-DD
   - 担当者:
2. 条件2:
   - 対応期限: YYYY-MM-DD
   - 担当者:

---

## 残課題

- [ ] 課題1: (担当: 〇〇、期限: YYYY-MM-DD)
- [ ] 課題2: (担当: 〇〇、期限: YYYY-MM-DD)
- [ ] 課題3: (担当: 〇〇、期限: YYYY-MM-DD)

---

## アクションアイテム

- [ ] アクション1: (担当: 〇〇、期限: YYYY-MM-DD)
- [ ] アクション2: (担当: 〇〇、期限: YYYY-MM-DD)
- [ ] アクション3: (担当: 〇〇、期限: YYYY-MM-DD)

---

## 次回確認事項

(次回レビューで確認すべきこと)

---

## 備考

(その他特記事項)

---

## 承認者サイン
- **議長**: ____________ (日付: YYYY-MM-DD)
- **技術責任者**: ____________ (日付: YYYY-MM-DD)

雛形の使い方

これらの雛形は、そのままコピーして使えるように作りました。

おすすめの導入ステップ:

  1. まずはCharter(憲章)から始める

    • 会議の目的とスコープを明確にする
    • 参加者全員で合意を取る
  2. Checklist(チェックリスト)を用意する

    • 提案者・レビュアー双方が使える形に
    • 最初は簡易版でOK、徐々に充実させる
  3. Template(提出テンプレート)を整備する

    • 提案者が迷わないように
    • 必要な情報が漏れないように
  4. Decision Record(意思決定記録)を残す

    • 決定の背景を記録する
    • 将来の参考資料にする
  5. 継続的に改善する

    • 会議後に「今日の議論はスコープ内だったか?」を振り返る
    • 雛形を更新していく

まとめと次の問い

今回の体験を振り返ると、私の質問は「技術選定の制約とリスクを明らかにする」ものだったので、アーキテクチャレビュー会議で議論すべき内容だったと思います。

ただし、会議のスコープが明文化されていなかったために、質問後に不安を感じてしまいました。

この経験から、以下のような問いが浮かびました。

「会議のスコープを明文化することで、参加者全員が同じ期待値を持って会議に臨めるようになるのではないか?」

もしあなたのプロジェクトのアーキテクチャレビュー会議に明確な憲章やガイドラインがないなら、今回紹介した雛形を使って、作成を提案してみてはいかがでしょうか。

「今日のような疑問を持ったので、スコープを明文化しませんか?」という形で。

簡単な1ページの「レビュースコープ定義」から始めて、継続的に改善していく。

そうすることで、技術的リスクや制約を積極的に質問しやすい文化が育つのではないかと思います。