システム設計レビュー

英語名 System Design Review
読み方 システム デザイン レビュー
難易度
所要時間 30分〜1時間
提唱者 ソフトウェアエンジニアリング一般
テンプレート あり ↓
目次

ひとことで言うと
#

大規模なシステム変更や新規構築の前に、機能要件・非機能要件・運用面・コストを体系的に審査し、手戻りのリスクを事前に潰すプロセス。

押さえておきたい用語
#

押さえておきたい用語
Design Doc(デザインドック)
設計の背景・方針・代替案・トレードオフを1ドキュメントにまとめた設計書のこと。レビューの入力資料となる。
Non-Functional Requirements(非機能要件)
パフォーマンス・可用性・セキュリティなど、機能以外のシステム品質要求を指す。設計レビューで最も見落とされやすい領域である。
Trade-off Analysis(トレードオフ分析)
複数の設計案についてメリット・デメリットを定量比較する手法。レビューで代替案を評価する際に用いる。
Blast Radius(影響範囲)
障害や変更が及ぶシステム・チーム・顧客への波及範囲のこと。設計レビューではこの最小化が重要な観点になる。

システム設計レビューの全体像
#

システム設計レビュー:4つの審査観点で設計品質を確保する
機能要件レビューユースケースの網羅性データモデルの整合性API契約の妥当性「何を作るか」の確認非機能要件レビューレイテンシ・スループット目標可用性・耐障害性セキュリティ・コンプライアンス「どの品質で作るか」の確認運用性レビュー監視・アラート設計デプロイ・ロールバック手順オンコール負荷の見積もり「どう運用するか」の確認コスト・リソースレビューインフラコスト見積もり開発工数・チーム体制段階的移行の計画「いくらかかるか」の確認Design Review
設計レビューの進め方フロー
1
Design Doc作成
背景・方針・代替案・トレードオフを文書化
2
事前レビュー
レビュアーが非同期でDocを読み込みコメント
3
レビュー会議
未解決の論点をリアルタイムで議論・判断
承認 / 差し戻し
決定事項をDocに反映し実装へ進む

こんな悩みに効く
#

  • 実装が進んでから「そもそも設計が違う」と手戻りが発生する
  • 非機能要件やセキュリティの考慮が抜けたまま本番に出てしまう
  • 設計判断の根拠が属人化し、後から「なぜこう作ったのか」がわからない

基本の使い方
#

Design Docを作成する
背景(Why)、要件(What)、設計方針(How)、代替案とそのトレードオフ、リスクを1ドキュメントにまとめる。テンプレートを用意しておくと品質が安定する。代替案は最低2つ挙げ、「なぜこの案を選んだか」を明記する。
レビュアーを選定し事前レビューを依頼する
影響を受けるチームのテックリード、SRE担当、セキュリティ担当をレビュアーに指名する。会議前に非同期でDocを読み込んでもらい、コメントを付けてもらう。事前レビュー期間は2〜3営業日が目安。
レビュー会議で未解決の論点を議論する
事前コメントで合意した点は飛ばし、対立する意見や未解決の判断のみを議論する。30〜60分に収め、議事録はDesign Docに直接追記する。
決定事項をDocに反映し承認を記録する
レビュー後の修正をDocに反映し、承認者のサインオフを記録する。差し戻しの場合は修正箇所を明示し、再レビューの日程を設定する。

具体例
#

例1:ECプラットフォームが決済基盤を刷新する

エンジニア60名のEC企業。決済基盤が5年前のモノリスに組み込まれており、新決済手段の追加に毎回 3ヶ月 かかっていた。決済マイクロサービスへの分離を設計レビューにかけた。

Design Docには3つの代替案(①決済サービス完全分離、②Strangler Figで段階移行、③外部決済SaaS採用)を記載。レビューで非機能要件の議論が集中し、トランザクション整合性の担保方法(Sagaパターン採用)と、移行中の二重稼働コスト(月額 120万円 増)が事前に可視化された。

レビューなしで進めていた場合に発生していたであろう手戻りコスト(推定 2,400万円 ・4ヶ月遅延)を回避し、計画通り 14週間 で移行を完了した。

例2:ヘルスケアSaaSがマルチテナント基盤を設計する

エンジニア25名のヘルスケアSaaS。単一テナント構成で運用していたが、顧客数が 200社 を超え、インフラコストが月 850万円 に膨張。マルチテナント化の設計レビューを実施した。

レビューでセキュリティ担当から「医療データのテナント間分離はRLS(Row Level Security)では不十分、スキーマ分離が必須」という指摘があり、設計を修正。また運用性レビューでテナント追加の自動化が未考慮だったことが判明し、Terraformモジュール化を追加した。

指摘事項を設計段階で解消した結果、移行後のインフラコストは月 320万円 に。セキュリティ監査も1回で通過している。

例3:物流スタートアップがリアルタイム配車システムを新規構築する

エンジニア12名の物流スタートアップ。手動配車からリアルタイム最適化システムへの移行を計画。CTO含む3名で設計レビューを実施した。

レビューで「ピーク時の同時配車リクエスト 5,000件/分 に対し、提案されたRDBベースの設計ではレイテンシ 800ms 超が予想される」と指摘があり、配車計算をRedis + イベント駆動に変更。コスト観点では、当初のGKEクラスタ構成(月 180万円)をSpot Instancesの活用で月 95万円 に削減する案が採用された。

設計レビューに投じた 3日間 が、実装フェーズでの根本的な作り直しを防いだ。

やりがちな失敗パターン
#

  1. Design Docが代替案を含まない — 「これで作ります」だけではレビューにならない。最低2つの代替案とトレードオフ比較を必ず記載する
  2. レビュアーが多すぎて収拾がつかない — 10名以上のレビューは形骸化する。コア3〜5名に絞り、残りは非同期コメントで参加してもらう
  3. レビューが承認儀式になる — 「偉い人が承認する場」ではなく「設計の穴を見つける場」にする。反対意見が出ない会議は機能していない
  4. レビュー後にDocが更新されない — 決定事項が口頭のまま残ると、半年後に「なぜこう作ったか」がわからなくなる。議事録はDocに直接追記する

まとめ
#

システム設計レビューは、大規模変更の前に機能・非機能・運用・コストの4観点で設計を体系的に審査するプロセス。Design Docに背景・方針・代替案・トレードオフを記載し、事前の非同期レビューとレビュー会議を組み合わせて実施する。「手戻りコスト」 は常に 「レビューコスト」 の数倍〜数十倍になるため、設計段階での投資対効果は極めて高い。

システム設計レビューのフレームワークテンプレート

このフレームワークを実際に使ってみましょう。