ストーリー
佐藤CTOがホワイトボードにステークホルダーの名前を次々と書き出していきます。
ステークホルダーマッピング
ステークホルダー一覧
NexPayスーパーアプリプロジェクトの主要ステークホルダーを特定します。
| ステークホルダー | 役割 | 主な関心事 | 影響力 |
|---|---|---|---|
| CEO / 経営陣 | 事業方針の決定 | 市場シェア拡大、競合優位性、ROI | 最高 |
| CFO / 財務部門 | 予算管理 | 開発コスト、インフラコスト、収益性 | 高 |
| コンプライアンス部門 | 法規制対応 | PCI DSS、資金決済法、犯収法 | 高 |
| CISO / セキュリティチーム | セキュリティ統括 | データ保護、脅威対策、インシデント対応 | 高 |
| プロダクトマネージャー | 機能仕様の決定 | ユーザー体験、リリース速度、機能優先度 | 中-高 |
| 開発チーム(50名) | 実装 | 開発効率、技術的な健全性、学習コスト | 中 |
| SRE / 運用チーム | システム運用 | 運用負荷、障害対応、自動化 | 中 |
| QAチーム | 品質保証 | テスト容易性、品質基準、自動テスト | 中 |
| 加盟店(200万店舗) | 決済受入 | 決済の確実性、入金サイクル、管理画面 | 中 |
| エンドユーザー(1,000万人) | アプリ利用 | 利便性、速度、安全性 | 中 |
| 外部パートナー | API連携 | API安定性、ドキュメント、SLA | 低-中 |
| 監査法人 | 外部監査 | 監査証跡、透明性、コンプライアンス | 低-中 |
ステークホルダーの影響力と関心度マトリクス
graph TD
subgraph Q1["情報提供
低影響力 × 高関心度"]
A1["監査法人"]
A2["QAチーム"]
end
subgraph Q2["密な連携
高影響力 × 高関心度"]
B1["CEO"]
B2["CFO"]
B3["CISO"]
B4["コンプライアンス"]
end
subgraph Q3["最小管理
低影響力 × 低関心度"]
C1["外部パートナー"]
end
subgraph Q4["満足維持
高影響力 × 低関心度"]
D1["PM"]
D2["開発チーム"]
D3["SRE"]
D4["加盟店"]
end
style Q1 fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#1e40af
style Q2 fill:#fee2e2,stroke:#dc2626,color:#991b1b
style Q3 fill:#f3f4f6,stroke:#9ca3af,color:#374151
style Q4 fill:#fef3c7,stroke:#d97706,stroke-width:2px,color:#92400e
style A1 fill:#dbeafe,stroke:#2563eb,color:#1e40af
style A2 fill:#dbeafe,stroke:#2563eb,color:#1e40af
style B1 fill:#fee2e2,stroke:#dc2626,color:#991b1b
style B2 fill:#fee2e2,stroke:#dc2626,color:#991b1b
style B3 fill:#fee2e2,stroke:#dc2626,color:#991b1b
style B4 fill:#fee2e2,stroke:#dc2626,color:#991b1b
style C1 fill:#f3f4f6,stroke:#9ca3af,color:#374151
style D1 fill:#fef3c7,stroke:#d97706,color:#92400e
style D2 fill:#fef3c7,stroke:#d97706,color:#92400e
style D3 fill:#fef3c7,stroke:#d97706,color:#92400e
style D4 fill:#fef3c7,stroke:#d97706,color:#92400e
品質属性の優先順位付け
ステークホルダー別の品質属性要求
各ステークホルダーの関心事を品質属性に変換し、優先順位を付けます。
// ステークホルダーの関心事から品質属性への変換
interface QualityAttributePriority {
attribute: string;
stakeholders: string[];
priority: "MUST" | "SHOULD" | "COULD";
rationale: string;
}
const priorities: QualityAttributePriority[] = [
{
attribute: "セキュリティ(Security)",
stakeholders: ["CISO", "コンプライアンス", "CEO", "監査法人"],
priority: "MUST",
rationale: "金融サービスの根幹。PCI DSS/犯収法は法的義務",
},
{
attribute: "可用性(Availability)",
stakeholders: ["CEO", "エンドユーザー", "加盟店", "SRE"],
priority: "MUST",
rationale: "決済基盤の停止は直接的な売上損失と信頼毀損",
},
{
attribute: "パフォーマンス(Performance)",
stakeholders: ["エンドユーザー", "加盟店", "PM"],
priority: "MUST",
rationale: "決済のレイテンシはUXと加盟店の業務効率に直結",
},
{
attribute: "スケーラビリティ(Scalability)",
stakeholders: ["CEO", "CFO", "SRE"],
priority: "MUST",
rationale: "300万→1000万ユーザーへの成長を支える必要がある",
},
{
attribute: "保守性(Maintainability)",
stakeholders: ["開発チーム", "PM", "QA"],
priority: "SHOULD",
rationale: "3つの事業領域を50名で並行開発するための効率性",
},
{
attribute: "相互運用性(Interoperability)",
stakeholders: ["外部パートナー", "PM"],
priority: "SHOULD",
rationale: "銀行API、証券API、外部決済ネットワークとの連携",
},
{
attribute: "コスト効率(Cost Efficiency)",
stakeholders: ["CFO", "CEO"],
priority: "SHOULD",
rationale: "インフラコストが収益を圧迫しないこと",
},
{
attribute: "デプロイ容易性(Deployability)",
stakeholders: ["開発チーム", "SRE", "PM"],
priority: "COULD",
rationale: "高頻度リリースによる市場投入速度の向上",
},
];
品質属性の優先順位マトリクス
| 優先度 | 品質属性 | 理由 |
|---|---|---|
| MUST | セキュリティ | 法的義務(PCI DSS/犯収法)、金融業の前提条件 |
| MUST | 可用性 | 決済停止 = 直接的な損害、加盟店の信頼 |
| MUST | パフォーマンス | 決済UX、加盟店オペレーション |
| MUST | スケーラビリティ | 3倍成長を2年以内に達成 |
| SHOULD | 保守性 | 50名の開発チームの生産性 |
| SHOULD | 相互運用性 | 外部金融システムとの連携 |
| SHOULD | コスト効率 | 持続可能な事業運営 |
| COULD | デプロイ容易性 | 市場投入速度の改善 |
「MUSTとSHOULDの境界は明確にしておくべきだ。フィンテックではセキュリティと可用性は交渉の余地がない。保守性やデプロイ容易性は”あるに越したことはない”が、セキュリティを犠牲にしてまで追求するものではない」 — 佐藤CTO
アーキテクチャドライバーの抽出
ドライバー分析
ステークホルダー分析と品質属性の優先順位から、アーキテクチャドライバーを抽出します。
interface ArchitecturalDriver {
id: string;
category: "FunctionalRequirement" | "QualityAttribute" | "Constraint";
description: string;
impact: "HIGH" | "MEDIUM" | "LOW";
relatedStakeholders: string[];
}
const architecturalDrivers: ArchitecturalDriver[] = [
// 主要機能要件(アーキテクチャに影響するもの)
{
id: "FR-001",
category: "FunctionalRequirement",
description: "決済・送金・投資の3サービスを統合し、シームレスな連携を実現する",
impact: "HIGH",
relatedStakeholders: ["CEO", "PM", "エンドユーザー"],
},
{
id: "FR-002",
category: "FunctionalRequirement",
description: "リアルタイム取引処理(決済完了まで2秒以内)",
impact: "HIGH",
relatedStakeholders: ["エンドユーザー", "加盟店"],
},
{
id: "FR-003",
category: "FunctionalRequirement",
description: "KYC/AMLのリアルタイム審査と継続的モニタリング",
impact: "HIGH",
relatedStakeholders: ["コンプライアンス", "CISO"],
},
// 品質属性(定量的に定義)
{
id: "QA-001",
category: "QualityAttribute",
description: "決済システムの可用性 99.99%(年間ダウンタイム52.6分以下)",
impact: "HIGH",
relatedStakeholders: ["CEO", "SRE", "加盟店"],
},
{
id: "QA-002",
category: "QualityAttribute",
description: "決済APIレスポンス p99 < 500ms",
impact: "HIGH",
relatedStakeholders: ["エンドユーザー", "加盟店"],
},
{
id: "QA-003",
category: "QualityAttribute",
description: "10,000 TPS(決済ピーク時)を処理可能",
impact: "HIGH",
relatedStakeholders: ["CEO", "SRE"],
},
{
id: "QA-004",
category: "QualityAttribute",
description: "PCI DSS Level 1に完全準拠するセキュリティ",
impact: "HIGH",
relatedStakeholders: ["CISO", "コンプライアンス", "監査法人"],
},
// 制約(変更不可能)
{
id: "CON-001",
category: "Constraint",
description: "PCI DSS Level 1準拠(クレジットカード情報の取扱い)",
impact: "HIGH",
relatedStakeholders: ["CISO", "コンプライアンス"],
},
{
id: "CON-002",
category: "Constraint",
description: "資金決済法・犯罪収益移転防止法(犯収法)への準拠",
impact: "HIGH",
relatedStakeholders: ["コンプライアンス", "CEO"],
},
{
id: "CON-003",
category: "Constraint",
description: "既存QRコード決済システム(Java/Spring Boot)からの段階的移行",
impact: "MEDIUM",
relatedStakeholders: ["開発チーム", "SRE"],
},
{
id: "CON-004",
category: "Constraint",
description: "開発チーム50名(Java/Kotlin/TypeScript経験者中心)",
impact: "MEDIUM",
relatedStakeholders: ["開発チーム", "CEO"],
},
{
id: "CON-005",
category: "Constraint",
description: "年間インフラ予算: 3億円以内",
impact: "MEDIUM",
relatedStakeholders: ["CFO", "CEO"],
},
];
ドライバー間の相互作用
アーキテクチャドライバーは独立しているわけではなく、相互に影響し合います。
| ドライバーA | ドライバーB | 関係 | 影響 |
|---|---|---|---|
| QA-001(可用性99.99%) | CON-005(予算3億円) | 競合 | 高可用性にはコストがかかる |
| QA-002(レイテンシ) | QA-004(PCI DSS) | 競合 | 暗号化処理がレイテンシを増加させる |
| FR-001(サービス統合) | QA-001(可用性) | 補強 | サービス分割により障害分離が可能 |
| CON-001(PCI DSS) | FR-002(リアルタイム処理) | 競合 | コンプライアンス要件が処理フローを複雑化 |
| QA-003(10,000 TPS) | CON-004(チーム50名) | 競合 | 高スループット設計には専門知識が必要 |
「ドライバー間の競合を見つけることが、トレードオフ判断の出発点になる。特にフィンテックではセキュリティとパフォーマンス、可用性とコストの競合が常につきまとう。これをどう解決するかが、アーキテクトの腕の見せどころだ」 — 佐藤CTO
ステークホルダーコミュニケーション計画
コミュニケーションマトリクス
アーキテクチャ設計のプロセスにおいて、各ステークホルダーとどのようにコミュニケーションするかを計画します。
| ステークホルダー | 頻度 | 形式 | 内容 |
|---|---|---|---|
| CEO / 経営陣 | 月1回 | エグゼクティブレポート | 進捗、リスク、ROI見通し |
| CISO | 週1回 | セキュリティレビュー | 脅威モデル、PCI DSS対応状況 |
| コンプライアンス | 隔週 | コンプライアンスレビュー | 法規制対応状況、監査準備 |
| PM | 週2回 | 設計セッション | 機能要件とアーキテクチャの整合 |
| 開発チーム | 毎日 | デイリー + ADR共有 | 設計判断の共有、技術的課題の議論 |
| SRE | 週1回 | 運用設計レビュー | SLI/SLO、監視設計、DR計画 |
ステークホルダーマネジメントのポイント
フィンテックプロジェクト特有のポイント
-
コンプライアンスファースト: 法規制対応はアーキテクチャの前提条件であり、交渉の余地がない。早い段階でコンプライアンス部門と密に連携する。
-
セキュリティバイデザイン: CISOとの連携は設計の初期段階から。後付けのセキュリティ対策は必ず手戻りを生む。
-
経営層への翻訳: 技術的な判断を経営言語(ROI、リスク、市場投入時期)に翻訳して説明する能力が必須。
-
開発チームの巻き込み: 50名のチームが設計を理解し、実装できることが前提。ADRを通じた設計判断の共有が重要。
まとめ
| ポイント | 内容 |
|---|---|
| ステークホルダー | 12のステークホルダーグループを特定し、関心事を分析 |
| 品質属性優先順位 | セキュリティ・可用性・パフォーマンス・スケーラビリティがMUST |
| アーキテクチャドライバー | 機能要件3件、品質属性4件、制約5件を抽出 |
| ドライバー間の競合 | セキュリティvsパフォーマンス、可用性vsコストが主要な競合 |
| コミュニケーション | ステークホルダー別のコミュニケーション計画を策定 |
チェックリスト
- 主要ステークホルダーとその関心事を特定できた
- 品質属性の優先順位付け(MUST/SHOULD/COULD)を理解した
- アーキテクチャドライバーの3分類(機能要件/品質属性/制約)を把握した
- ドライバー間の競合関係を識別できた
- コミュニケーション計画の重要性を認識した
次のステップへ
次は「品質属性シナリオの策定」に進みます。抽出したアーキテクチャドライバーを、定量的で検証可能な品質属性シナリオに変換しましょう。
推定読了時間: 30分