01設計判断とは何か ── 「後で変えにくいこと」を決める

アーキテクチャ設計という言葉は大げさに聞こえますが、中身は単純です。後から変えるのが難しいことを、先に決める。これに尽きます。Martin Fowler は、アーキテクチャを「その分野に詳しい人たちが重要だと考えること、そして変更が難しいこと」と説明しています。変数名やボタンの色は、後でいくらでも直せます。しかし、データベースの種類、システムを分ける境界線、外部サービスとの依存関係は、一度決めて動き出すと、覆すのに大きなコストがかかります。

だから設計判断には、通常のコード修正とは違う重さがあります。判断を分けて考えると、扱いが見えてきます。

この重みの違いを意識せず、すべてを同じ速さで決めてしまうと、後で響きます。可逆な判断に悩みすぎて時間を溶かし、非可逆な判断を勢いで決めてしまう ── これが設計でいちばんよくある失敗です。

02AIの助言の使い方 ── 決めさせるのではなく、視野を広げる

生成 AI には、設計相談の相手として得意な面がいくつかあります。一方で、任せてはいけない領域もはっきりしています。この両方を分けて使うのが作法です。

Use 01

選択肢を広げる

"知らない道" を出させる

「この要件なら、ほかにどんな設計がありうるか」を尋ねる。自分が思いつかなかった第 3 の案が出てくることがある。ここは AI が強い。

Use 02

トレードオフを言語化する

"何を捨てるか" を並べる

各案の長所短所を一覧にさせる。速度と保守性、単純さと拡張性 ── 何と何が引き換えかを、抜けなく表にできる。

Use 03

前提を疑う相手にする

"本当にそう?" を返す

自分の案を説明し、弱点を突かせる。反論役(=レッドチーム)として使うと、独りよがりな設計に気づける。

Use 04

決めさせない

"最終判断" は渡さない

「結局どれがいい?」で終わらせない。AI は文脈の全部を知らない。最後の選択と、その結果は人が引き受ける。

AI の助言には、特有の癖があります。まず、流暢さと正しさは別物です。整った文章で断言されると正しく見えますが、根拠が薄いことは珍しくありません。次に、AI は質問に引きずられます。「マイクロサービスにすべきか」と尋ねれば、それを推す方向の答えが返りやすい。中立に聞くには、「この要件には単一構成と分割構成のどちらが妥当か、両方の観点で」と、選択肢を対等に並べて尋ねます。

そして最大の注意点は、AI があなたの制約を全部は知らないことです。予算、チームの人数、既存システムとの兼ね合い、社内の承認プロセス、規制要件 ── どれも設計を大きく左右しますが、明示しない限り AI の答えには反映されません。教科書どおり正しくても、自社では回らない案が平気で出てきます。

03ADRで残す ── なぜそう決めたかを言葉にする

設計判断は、決めた瞬間より、半年後のほうが問われます。「なぜこの構成にしたのか」を誰も思い出せず、触るのが怖くて放置される ── よくある光景です。これを防ぐ軽い仕組みが ADR(=アーキテクチャ決定記録、Architecture Decision Record)です。Michael Nygard が 2011 年に提唱した、1 件の判断を 1 枚のごく短い文書に残す方式です。

ADR は重厚な設計書ではありません。1 判断あたり、数分で書ける分量が目安です。書くのは、ふつう次の項目だけです。

AI との相談は、ADR と相性が良い。相談の過程で出た選択肢とトレードオフが、そのまま「背景」と「結果」の素材になるからです。ただし、AI が出した文章をそのまま貼らない。自分の言葉で、自分たちの制約に照らして書き直す。この書き直しそのものが、判断を自分のものにする工程になります。

製薬の現場での意味: 医療・製薬系のシステムでは、後から「なぜこの設計か」を第三者に説明できることが、そのまま監査対応やバリデーションの土台になります。データの持ち方、アクセス権の分け方、外部連携の判断を ADR で残しておくと、後年の照会にも耐えられます。AI との相談ログを残すだけでは足りません。人が判断として引き受けた記録に直しておくことが要点です。

04トレードオフの見極め ── 「良い設計」は状況で変わる

設計に唯一の正解はありません。あるのは、状況ごとの釣り合いの取り方だけです。同じ要件でも、3 人のチームと 30 人のチームでは正しい構成が変わります。AI に助言を求めるときも、この釣り合いを自分で握っていないと、一般論に流されます。

典型的な対立軸を、対比で押さえておきます。

単純さに寄せる拡張性に寄せる
今すぐ動く。読めば分かる将来の変更に強い。ただし今は過剰
少人数・短期・要件が固い場合に向く大人数・長期・要件が動く場合に向く
早すぎる抽象化を避けられる作り込みすぎて、使わない柔軟性を抱える危険
変更が来たとき、作り直す覚悟が要る変更が来なければ、投資が無駄になる

AI に尋ねると、しばしば拡張性の高い、立派な構成を勧めてきます。教科書のうえでは正しい。しかし、来るかどうか分からない将来のために今の単純さを捨てるのは、たいてい割に合いません。「その柔軟性は、いつ、どのくらいの確率で必要になるか」を自分に問い、確率が低ければ単純な案を選ぶ ── この判断は、文脈を知る人にしかできません。

ソフトウェアの品質特性を整理した国際規格 ISO/IEC 25010 は、保守性・性能効率性・信頼性・セキュリティなど複数の品質を並べています。大事なのは、これらを同時に最大化できない点です。どれを立て、どれを妥協するか。その優先順位づけこそが設計判断の本体であり、AI に丸投げできない部分です。

05検証 ── 助言を鵜呑みにしない確かめ方

AI の設計助言は、そのまま採用せず、いくつかの角度から確かめます。動いた設計が正しい設計とは限りません。以下は、決める前の最低限のチェックです。

特に、複数の AI や複数の情報源に当たると、助言の偏りが見えてきます。1 つのモデルが強く勧める案でも、別の観点を入れると評価が変わる。設計の検証は、コードのテストのように自動化しにくいぶん、人の側で「疑う手順」を型として持っておく必要があります。

06人の責任 ── AIは助言し、人が決めて負う

ここが本回の核心です。AI がどれだけ流暢に助言しても、その設計を選んだ責任は、選んだ人にあります。「AI がそう言ったから」は、後から通用しません。障害が起きたとき、監査で問われたとき、説明を求められるのは人の側です。

この責任の所在を曖昧にしないために、いくつかの線を引いておきます。

製薬・医療の文脈では、この原則がさらに重くなります。患者データの扱い、システムの信頼性、変更管理 ── どれも「人が判断し、その判断を説明できる」ことが前提です。AI を設計に使うこと自体は問題ありませんが、責任の主体まで AI に移すことはできません。ツールは助言者であって、意思決定者ではない。この一線を、便利さの中で見失わない ── それが作法の芯です。

07運用 ── 設計は一度で終わらない

設計は、リリースした瞬間に完成するものではありません。動かし続けるなかで、想定と現実のずれが見えてきます。アーキテクチャは育てるものと捉えると、AI との付き合い方も変わります。

運用の局面で AI が役立つのは、次のような場面です。

ここでも原則は同じです。AI は気づきの補助線を引くのが得意ですが、変えるかどうかを決めるのは人です。当時の判断を今の基準で断罪しない ── ADR の「背景」を読み返し、その時点では妥当だったと理解したうえで、更新するかどうかを判断する。設計の履歴を尊重する態度が、長く保守できるシステムを支えます。

08他章との接続

本回のアーキテクチャ設計は、シリーズの他の回と地続きです。読み合わせると、設計から実装、そして協働までの流れが見えてきます。

アーキテクチャ設計は、AI 活用のなかでも、もっとも人の判断が問われる領域です。実装は AI が肩代わりできる部分が増えてきましたが、何を作り、何を捨て、なぜそう決めたかは、人が握り続ける。この主導権を手放さないことが、AI 時代の設計者に残された仕事です。

結語

AI に設計を相談できる時代になって、便利さは確実に増えました。選択肢を広げ、トレードオフを並べ、前提を疑う相手として、AI は優秀です。しかし、その優秀さは助言者としての優秀さであって、意思決定者としてのものではありません。流暢な断言に流されず、自分の制約に照らして選び、選んだ理由を ADR に残し、その責任を人が負う ── この一連の型は、モデルがどれほど賢くなっても変わりません。

むしろ AI が賢くなるほど、助言はもっともらしくなり、鵜呑みにする誘惑は強まります。だからこそ、決めるのは人、負うのも人、という一線を、作法として先に引いておく。AI を設計相談に使うとは、判断を渡すことではなく、判断の質を上げるために使うことです。次回は、設計を決めたあとの実装の局面 ── 人と AI が並んでコードを書く「ペアプロ作法」に進みます。

Key Points ── 持ち帰る 3 つ
  1. アーキテクチャ設計とは「後から変えにくいことを先に決める」判断であり、可逆・準可逆・非可逆に分けて重みに応じた速さで決める。可逆な判断に悩みすぎ、非可逆な判断を勢いで決めるのが最もよくある失敗である。
  2. AI は選択肢を広げ、トレードオフを言語化し、前提を疑う相手として使う。ただし AI は質問に引きずられ、あなたの制約(予算・人数・既存システム・規制)を全部は知らない。中立に尋ね、複数の観点で検証してから決める。
  3. どれだけ AI が流暢に助言しても、設計を選んだ責任は人にある。「AI がそう言った」は後から通用しない。ADR で「なぜそう決めたか」を自分の言葉で残し、説明できない設計は採用しない。ツールは助言者であって意思決定者ではない。
出典·参考文献
  1. Nygard, Michael T. Documenting Architecture Decisions. 2011(ADR という記録方式を最初に提唱した原典).
  2. Fowler, Martin. Software Architecture Guide. martinfowler.com, 2019(アーキテクチャを「重要かつ変更が難しいこと」と定義する解説).
  3. Kruchten, Philippe. Architectural Blueprints — The "4+1" View Model of Software Architecture. IEEE Software 12(6), 1995(設計を複数の視点で捉える古典的枠組み).
  4. Bass, Len; Clements, Paul; Kazman, Rick. Software Architecture in Practice. Addison-Wesley, 第 4 版 2021(設計判断とトレードオフを体系的に扱う定番書).
  5. ISO/IEC. ISO/IEC 25010:2011 — Systems and software Quality Requirements and Evaluation (SQuaRE) — System and software quality models. 2011(保守性・性能・信頼性など品質特性の国際規格).
  6. 厚生労働省医薬・生活衛生局長. 医療用医薬品の販売情報提供活動に関するガイドライン. 2018(製薬領域で「説明できる判断」が求められる背景となる通知).