EXERCISE 60分

ストーリー

佐藤CTO
理論は十分だ。ここからはNexPayプロジェクトの要件分析ドキュメントを実際に作成してもらう
佐藤CTO
このドキュメントは、次のステップであるアーキテクチャ設計の入力となる。抜け漏れがあれば、設計全体に影響する。アーキテクトとしての最初の成果物だ

ミッション概要

ミッションテーマ目安時間
Mission 1ステークホルダーマップの完成15分
Mission 2品質属性シナリオの追加策定15分
Mission 3制約一覧と影響分析15分
Mission 4要件分析サマリーの統合15分

Mission 1: ステークホルダーマップの完成(15分)

要件

Step 1-2で学んだステークホルダー分析を拡張し、以下を作成してください。

  1. 各ステークホルダーのアーキテクチャに対する具体的な要求を3つ以上記述
  2. ステークホルダー間の利害の対立を2つ以上特定
  3. 対立の解決方針を提案
解答例

ステークホルダー別のアーキテクチャ要求:

ステークホルダーアーキテクチャへの具体的要求
CEO競合他社より先に投資機能をリリース。3ヶ月以内にMVP
CFO初年度インフラコストを2億円以下に。ユーザー単価を年々下げたい
CISOすべてのカード情報をトークン化。CDE環境の完全分離。年1回のペネトレーションテスト
開発チームマイクロサービスの過度な分割を避けたい。チームあたりの担当サービスは2-3個まで
SREインシデント対応の自動化率80%以上。深夜のオンコール頻度を月1回以下に
加盟店決済確認通知の遅延を3秒以内に。管理画面のレスポンスを1秒以内に

利害の対立と解決方針:

対立ステークホルダーAステークホルダーB解決方針
リリース速度 vs セキュリティCEO(3ヶ月でMVP)CISO(完全なセキュリティ監査後にリリース)MVP範囲を限定し、セキュリティクリティカルな機能(決済)は監査完了後にリリース。投資機能は段階的に開放
コスト vs 可用性CFO(コスト最小化)SRE(99.99%可用性)ティアード可用性を採用。決済基盤は99.99%(高コスト)、管理画面は99.9%(低コスト)で差別化

Mission 2: 品質属性シナリオの追加策定(15分)

要件

Step 1-3で学んだフォーマットを使い、以下のシナリオを新規作成してください。

  1. 保守性に関するシナリオ(新機能追加のリードタイム)
  2. 相互運用性に関するシナリオ(外部銀行APIとの連携)
  3. テスト容易性に関するシナリオ(決済フローのE2Eテスト)

各シナリオは6要素すべてを記述すること。

解答例
# 保守性シナリオ
シナリオID: QA-MA-001
品質属性: 保守性
優先度: SHOULD

刺激源: プロダクトマネージャー
刺激: 新しい決済手段(暗号資産決済)の追加要求
環境: 通常の開発サイクル
成果物: 決済サービス
応答: 新しい決済アダプターを追加し、既存の決済フローに統合。
      既存の決済手段に影響を与えない。
測定値:
  - 実装期間: 2スプリント(4週間)以内
  - 既存テストの破壊: 0件
  - 影響範囲: 決済サービスの1モジュールに限定
# 相互運用性シナリオ
シナリオID: QA-IO-001
品質属性: 相互運用性
優先度: SHOULD

刺激源: 連携銀行のシステム更新
刺激: 銀行APIのバージョンがv2からv3にアップグレードされる
環境: 銀行側の移行期間(3ヶ月)
成果物: 送金サービスの銀行アダプター
応答: Anti-Corruption Layerにより、v2とv3の両方に対応。
      内部のドメインモデルは変更不要。
測定値:
  - 対応期間: 2週間以内
  - 内部コード変更: アダプター層のみ
  - 並行稼働期間: v2/v3を3ヶ月間並行サポート
# テスト容易性シナリオ
シナリオID: QA-TE-001
品質属性: テスト容易性
優先度: SHOULD

刺激源: QAチーム
刺激: 決済→残高反映→通知の一連のフローのE2Eテスト実行
環境: CI/CDパイプライン上
成果物: 決済サービス、アカウントサービス、通知サービス
応答: 外部依存(銀行API、カードネットワーク)をモック化した
      E2Eテスト環境で、決済フロー全体を自動テスト
測定値:
  - テスト実行時間: 10分以内
  - テスト環境の構築: 5分以内(コンテナベース)
  - カバレッジ: 主要フロー(決済成功、残高不足、タイムアウト)の100%

Mission 3: 制約一覧と影響分析(15分)

要件

NexPayプロジェクトの制約を以下のフォーマットで整理してください。

  1. 制約をHard/Firm/Softに分類
  2. 各制約のアーキテクチャへの具体的な影響を記述
  3. Firm/Soft制約について、交渉可能な範囲を提案
解答例
ID制約レベルアーキテクチャへの影響交渉可能性
CON-001PCI DSS Level 1HardCDE分離、トークン化、監査ログ交渉不可
CON-002資金決済法Hard供託管理、分別管理の勘定設計交渉不可
CON-003犯収法(KYC/AML)HardKYCゲートウェイ、AMLモニタリング交渉不可
CON-004既存システム互換2年Firmストラングラーフィグ、API Gateway互換期間を18ヶ月に短縮可能(加盟店への移行支援付き)
CON-005AWS利用FirmAWSサービス中心の設計マルチクラウドは不可だが、CloudflareのCDN等は併用可能
CON-006チーム50名Softサービス数はチーム数に合わせる段階的に60名まで増員可能(6ヶ月後)
CON-007年間予算3億円Softティアード可用性、コスト最適化事業成長に伴い4億円まで増額交渉可能
CON-0082年でローンチFirm段階的リリース計画が必須MVPスコープの調整で実質18ヶ月での部分リリースに変更可能

Mission 4: 要件分析サマリーの統合(15分)

要件

Mission 1-3の成果を統合し、アーキテクチャ設計への入力となる要件分析サマリーを作成してください。

以下の構成で整理すること:

  1. プロジェクト概要(3行以内)
  2. アーキテクチャドライバー(優先順位付き上位5件)
  3. 品質属性シナリオサマリー(MUST項目のみ)
  4. 制約サマリー(Hard制約のみ)
  5. リスクと未解決事項
解答例
# NexPay 要件分析サマリー

## 1. プロジェクト概要
NexPayの次世代フィンテックスーパーアプリ(決済・送金・投資統合)を設計する。
1,000万ユーザー、10億件/月の取引、PCI DSS Level 1準拠、マルチリージョンが要件。
既存QRコード決済システムからの段階的移行を2年で完了する。

## 2. アーキテクチャドライバー(Top 5)
1. [MUST] PCI DSS Level 1準拠のセキュリティ設計
2. [MUST] 決済基盤の可用性99.99%
3. [MUST] 決済APIレスポンス p99 < 800ms
4. [MUST] 10,000 TPSのスループット
5. [MUST] 決済・送金・投資のシームレスな統合

## 3. 品質属性シナリオ(MUST)
- QA-AV-001: AZ障害時30秒以内のフェイルオーバー
- QA-SE-001: カード情報のトークン化、攻撃のリアルタイム検知
- QA-PE-001: 決済p99 < 800ms
- QA-PE-002: キャンペーン時3倍トラフィックへの5分以内スケールアウト
- QA-SC-001: 1,000万ユーザーへのリニアスケーリング

## 4. Hard制約
- PCI DSS Level 1(CDE分離、トークン化、監査ログ)
- 資金決済法(供託管理、分別管理)
- 犯収法(10万円超送金のKYC必須、AMLモニタリング)

## 5. リスクと未解決事項
- チームのマイクロサービス経験不足(教育計画が必要)
- 外部証券APIのSLAが未確定(投資機能の可用性設計に影響)
- マルチリージョンのデータレジデンシー要件が未確定

達成度チェック

ミッションテーマ完了
Mission 1ステークホルダーマップの完成
Mission 2品質属性シナリオの追加策定
Mission 3制約一覧と影響分析
Mission 4要件分析サマリーの統合

まとめ

ポイント内容
ステークホルダー分析利害の対立を特定し、解決方針を提案する
品質属性シナリオ6要素で定量的に記述し、検証可能にする
制約分析Hard/Firm/Softに分類し、交渉可能性を明確化する
サマリー統合アーキテクチャ設計の入力として整理する

チェックリスト

  • ステークホルダー間の利害対立を特定し、解決方針を提案できた
  • 保守性・相互運用性・テスト容易性のシナリオを策定できた
  • 制約をHard/Firm/Softに分類し、交渉可能範囲を特定できた
  • 要件分析サマリーを統合ドキュメントとして完成させた

次のステップへ

次はStep 1の理解度チェッククイズです。プロジェクト要件分析の理解度を確認しましょう。


推定読了時間: 60分