1.5

View in English

1.5 意思決定とガバナンス

概要と動機

あらゆるソフトウェアシステムは、数千の決定の総和です。どのデータベースか、どのアーキテクチャか、どのライブラリか、作るか買うか、いつ負債を負い、いつ返済するか。ガバナンスとは、これらの決定を良く、一貫して行い、ボトルネックを作らずに適切な人々を巻き込み、将来のチームが同じ学び直しを強いられないよう理由を保存する方法です。小さなチームでは、決定は会話の中で行われ、共有された記憶の中に生きています。規模が大きくなると、その記憶は蒸発します。人が去り、チームが再編され、重要な選択の「なぜ」が失われ、後継者はそれを盲目的に踏襲するか、盲目的に取り除くしかなくなります。優れたガバナンスは、大きく変化し続ける組織の中で、決定を可視で、意図的で、永続的にする仕組みです。

大規模なチームの中心的な課題は、自律と整合のバランスを取ることです。すべての決定を中央の委員会に押し上げれば、一貫性は得られますが、致命的なボトルネックと力を奪われたチームという代償を払います。すべてを下に押し下げれば、速度は得られますが、互換性のない技術、重複した労力、繰り返される過ちという混沌を招きます。成熟した答えは、中央集権でも無政府でもありません。それは階層化されたモデルです。チームは、はっきりと示された「整備された道(ペイブドロード)」の中でほとんどのことを現場で決め、軽量で透明なプロセスが、本当に横断的で元に戻しにくい選択を統治します。目標は、良い決定を楽な既定にし、希少なガバナンスの注意を、本当に重要な場所にだけ使うことです。

大企業と政府には、より高い賭け金がかかります。文書化され、説明可能な決定を求める監査人、規制当局、監督機関を満たさなければなりません。長い時間軸で仕事をし、そこでは不適切なアーキテクチャの選択や、管理されない技術的負債の山が、10年にわたって重荷になりえます。そして調達とコンプライアンスの義務により、自作か購入かの決定は特に重大で、元に戻しにくくなります。これらの組織にとって、規律ある、よく記録された意思決定は、それ自体が目的の官僚主義ではありません。それはリスクマネジメントであり、組織的記憶であり、説明責任の基盤です。

主要原則

  • 決定とその理由を記録します。理由のない決定は負債です。
  • 明確なガードレールの範囲内で、文脈を持つ最も低いレベルに決定を委ねます。
  • プロセスの重さを、決定の重さと可逆性に合わせます。
  • 可逆な(「両開きの扉」)決定と不可逆な(「一方通行の扉」)決定を区別し、異なる方法で統治します。
  • 個別の承認より、整備された道と既定値を優先します。
  • 技術的負債を、隠すべき道徳的失敗ではなく、管理されたポートフォリオとして扱います。
  • ガバナンスを透明にします。隠れた意思決定は不信と手戻りを生みます。

推奨事項

アーキテクチャ決定記録と適正規模のRFCプロセスを採用する

アーキテクチャ決定記録(ADR)は、一つの重要な決定を捉えた短く不変の文書です。文脈、検討した選択肢、下した選択、結果を記します。ADRは、理由がシステムと一緒に旅するよう、コードと並べてバージョン管理に保存します。決定の前に意見が必要な決定には、軽量なRFC(意見募集)プロセスを使います。提案を回覧し、期限を区切ってコメントを募り、決定して記録します。どちらも軽く保ちます。価値は思考と永続的な記録にあり、凝ったテンプレートにはありません。ADRとRFCは合わせて、暗黙の、忘れられた理由を、検索できる組織的記憶に変えます。

門番ではなく整備された道で統治する

決定を一つずつレビューするのではなく、「整備された道」に投資します。承認された言語、フレームワーク、デプロイパイプライン、パターンといった、祝福され、手厚く支援された既定の集合で、チームはほとんど摩擦なく、十分な支援を得て採用できます。整備された道に留まるチームには、ほとんどガバナンスは要りません。安全で準拠した選択が、楽な選択でもあるからです。そこを離れる正当な理由があるチームは離れられますが、追加の責任と軽量なレビューを引き受けます。この「ゴールデンパス」モデルは、すべてを承認する中央委員会よりはるかによくスケールします。ガバナンスを個別の門番から、よく設計された既定値へと移すからです。

アーキテクチャレビューボードは控えめに、透明に使う

アーキテクチャレビューボード、あるいはそれに相当するものは、最大で、最も横断的で、最も不可逆な決定のために、また整備された道を定義する標準を設定するために、正当な役割を持ちます。その範囲は狭く、基準は公開し、プロセスは速く、日常業務の必須のボトルネックではなく助言的なものに保ちます。ボードの仕事は、整合性を守り知識を共有することであって、すべての選択を承認することではありません。ボードがすべてのプロジェクトが待たなければならない待ち行列になったとき、それは失敗しています。積極的に委任し、中央のレビューは、本当にそれに値する少数の決定のために取っておきます。

自作・購入・採用の分析を意図的に行う

重要な能力について、三つの道を比較します。自社で作る、商用製品を買う、オープンソースのソリューションを採用する。能力が本当に差別化要因で、使命の中核なら作ります。他者のほうがうまくやっている、差別化にならない能力は、買うか採用します。前払いの価格だけでなく総所有コスト(TCO)を数えます。買えば、ライセンス、統合、ロックインのコストが生じます。作れば、永続的な保守と人員配置が生じます。オープンソースを採用すれば、サポートとセキュリティ追跡の義務が生じます。状況が変わったときに見直せるよう、決定とその前提をADRとして記録します。

技術的負債をポートフォリオとして管理する

技術的負債は本質的に悪いものではありません。早く出荷するために負うのが正しい判断のこともあります。悪いのは、管理されず、見えず、忘れられた負債です。重要な負債の明示的な目録を保ちます。各項目について、それが課すコスト(継続的な「利息」)と、直すコストを記します。そして金融ポートフォリオのように管理します。毎日チームを遅くする高利の負債は返済します。安定した一角にある低利の負債は許容します。負債に関する決定は、偶然ではなく意識して行います。負債が危機へと複利で膨らまないよう、負債返済のために一定割合の容量を常に確保します。

可逆な決定と不可逆な決定を区別する

すべての決定が等しい熟慮に値するわけではありません。可逆な「両開きの扉」の決定は簡単に元に戻せるので、行動に傾きつつ、チームが素早く現場で下します。それらで思い悩むのは時間を浪費し、学びを遅らせます。不可逆な、あるいは元に戻すのにコストのかかる「一方通行の扉」の決定、つまり公開APIの契約、大規模なデータモデル、数年にわたるベンダーとの約束は、ゆっくりと慎重に、上位者が熟慮し、理由を記録するに値します。決定をこのように分類することは、最もてこの効くガバナンスの習慣の一つです。希少な精査を見返りのある所に向け、それ以外のすべてを滞りなく進めます。

トレードオフ: 長所と短所

ガバナンスのアプローチ長所短所
すべてを中央のレビューボードで最大の一貫性と監督深刻なボトルネック。チームの力を奪う。遅い
整備された道と現場の自律スケールする。速い。安全な既定。チームに力を与える先行するプラットフォーム投資が必要。道を外れる逸脱もある
完全なチームの自律、ガバナンスなし速い。オーナーシップが高い断片化、重複、繰り返される過ち
ADR / RFC永続的な記憶、より良い決定、透明性書くオーバーヘッド。維持しなければ無視される
調達の選択長所短所
作る完全な制御。ぴったり合う。差別化できる永続的な保守と人員配置のコスト
買う速い。サポートされる。他者が保守するライセンスコスト、ロックイン、不完全な適合
採用する(オープンソース)ライセンス料なし。検査できる。コミュニティサポートとセキュリティの負担が自分にかかる

これらを貫くトレードオフは、制御と速度、中央の一貫性と現場の自律です。あらゆるガバナンスの選択は、この軸上にあります。推奨される姿勢、つまり整備された道と可逆性に基づく委任は、自律の速度の大半を買いつつ、重要な一貫性を保ちます。整合した選択を楽な選択にし、重厚なプロセスを稀な不可逆の決定のために取っておくことで、それを実現します。

チームで議論すべき問い

  1. ある決定が一方通行の扉かどうかを誰が決め、どちらの方向の誤分類もどう見つけますか。 決定を可逆性で分類することは、最もてこの効くガバナンスの習慣の一つですが、ラベルを間違えるとその価値は崩れます。可逆な選択を不可逆として扱えば熟慮に溺れ、不可逆な選択を可逆として扱えば、安く元に戻せないデータモデルや公開APIの契約を出荷してしまいます。相反するリスクは、仕事に最も近い人は速度に偏りうる一方、中央の委員会は慎重さに偏りうることです。議論には具体例を持ち込んでください。それぞれの決定を元に戻すのに、実際に時間と金でどれだけのコストがかかり、誰がそれを負うか。企業や政府では、調達上の約束や大規模なデータが、最初は可逆に見えた多くの選択を一方通行の扉に変えます。誰が分類するかに合意し、境界付近のものには素早いセカンドオピニオンを取る習慣を築いてください。そうすれば、希少な精査は、元に戻すのが本当に高くつく所に向かいます。

  2. 誰が整備された道を所有し、資金を出し、人員を配置し、それが門番に朽ちるのを何が防ぎますか。 整備された道は、祝福された既定が本当に手厚く支援され、代替より楽である場合にのみ機能し、それには資金不足になりやすい持続的な投資が必要です。トレードオフは明白です。資源の足りない整備された道は、支援のない義務の集合になり、それはまさにこのモデルが置き換えようとした門番であり、チームはそれを迂回します。道の健全性の証拠を持ち込んでください。採用率、承認されたツールがどれだけ最新か、プラットフォームチームの応答の速さ、チームが道を外れるための申請を出す頻度。大きな組織や規制された組織では、整備された道は、準拠した選択を楽な選択にする方法でもあるので、その資金は単なる利便ではなく、コンプライアンスへの投資です。明確なオーナーと恒常的な予算を決め、チームが道を選ぶのが、それが本当に最も楽な道だからかどうかを測ってください。

  3. チームはどこであなたのガバナンスを迂回していて、そのシャドーITは何を告げていますか。 チームは、公認の道が回避策より苦痛であるときにそれを避けます。だから広範なシャドーITは、規律の問題というより、あなたのガバナンスの設計に対する評決です。相反する考慮は本物です。回避の一部は無謀ですが、多くは数週間の待ち行列になったレビューボードの合理的な回避です。証拠を持ち込んでください。どの承認が飛ばされているか、どの非公式ツールが静かに広まったか、公式の道が実際にどれだけかかるか。企業や政府では、賭け金はより高くなります。未承認のツールは、法的な重みを持つ監査、セキュリティ、調達の義務に違反しうるからです。パターンが、人々がボトルネックを迂回していることを示すなら、修正は、承認を増やすことではなく、整備された道を速く広くし、ボードの範囲を、横断的で不可逆な少数の決定に縮めることです。

  4. 私たちのデリバリー容量のうち、実際にどれだけが技術的負債の返済に向かい、最初に狙うべき最も高利の項目に名前を付けられますか。 技術的負債は複利のように振る舞い、将来のあらゆる変更に対する静かな税であり、大きな組織は、システムが遅く、変更しにくくなったことに誰かが気づくまで、何年もそれを抱えていられます。相反する圧力は露骨です。負債に費やす一時間は、リーダーシップに見える機能に費やされない一時間であり、締め切りが迫ると返済が最初に削られます。議論には実際の証拠を持ち込んでください。重要な負債の書面の目録、各項目が課す継続的なコストと直すコストの正直な見積り、最近の容量のうち返済と新規作業に実際に向かった割合。10年単位の時間軸を持つ企業や政府機関では、管理されない負債は、いずれ高価な書き直しや監査指摘を強いるので、恒常的な返済の割り当てをリスクマネジメントとして扱い、スケジュールが遅れたときに誰がそれを守るかを決めてください。

  5. 二年前に下された決定の理由が必要になったとき、本当にそれを見つけられますか。そして、その記録を生かし続けている人はいますか。 アーキテクチャ決定記録の価値は、理由がそれを作った人々より長く残ることにあり、ADRが一度書かれて二度と検索されず、静かに古くなっていくなら、その価値は崩れます。緊張は、決定の瞬間に文脈、選択肢、結果を捉えるのに要する書く規律と、ただ出荷して先へ進めという日々の圧力との間にあります。議論には具体的なテストを持ち込んでください。最近の重要な決定を三つ選び、誰かが数分で記録された理由を見つけられるか確かめ、置き換えられたADRが、現在の実践と静かに矛盾するのではなく、そうと明示されているかを確認します。企業や政府では、その検索可能な記録が、まさに監査人と監督機関が求める説明可能な証拠なので、ADRをどこに置くか、誰がレビューするか、どの決定が記録に値するほど重要かを決めてください。

  6. 主要な自作・購入の決定を、元の前提に照らして最後に見直したのはいつで、それらの前提が失効したときに私たちは気づけますか。 調達の選択は、あなたが下す最も高価で元に戻しにくい決定の一つであり、その背後にある前提(ベンダーの価格、自社の人員配置、オープンソースの選択肢の成熟度)は、決定が凍結されたまま静かに陳腐化します。相反する考慮は、切り替えのサンクコストと混乱と、ロックイン、不完全な適合、もう望まない保守負担という、積み上がるコストの比較です。元のADRとそこに述べられた前提、ライセンス、統合、人員配置、撤退コストを含む各道の現在の総所有コスト見積り、そして前提が変わったことを示すシグナル(価格変更やサポートのダウングレード)を持ち込んでください。政府や規制された購買者にとって、調達規則と複数年の契約は、これらの一方通行の扉を特に拘束的にするので、盲目的な更新ではなく、意図的な再決定を強いるトリガーと周期をあらかじめ合意してください。

セクター別の視点

スタートアップ。 ほとんど何も統治せず、速度に強く寄りかかります。可逆な両開きの扉の選択は、机の上で決めて先へ進みます。唯一のガバナンスの習慣は、コアのデータモデルや基盤となるベンダーのような少数の一方通行の扉のために取っておき、それぞれを一段落に書き留めて、将来のチームメイトがゼロからやり直さないようにします。レビューボードも整備された道も一切省きます。あなたの規模ではそれは負担できないオーバーヘッドであり、チーム全体がすでに文脈を共有しているからです。

小規模事業者。 アーキテクトがいないので、自作か購入かを中心のガバナンスの問いにし、好みではなく総所有コストで答えます。中核の差別化要因でないものは、手厚く支援されたツールを買う、あるいは採用するのを既定にします。永続的な保守こそ、あなたが最も負担できないコストだからです。一つの軽量な意思決定ログを保ち、少数の重要な選択の背後にある理由が、キーパーソンが去っても残るようにします。

大企業。 問題は、多くのチームにわたる自律と整合のバランスなので、資金の付いた整備された道に投資し、本当に横断的で不可逆な決定のために、狭くて速いアーキテクチャレビューボードを取っておいてください。ADRを標準化して理由を検索可能な組織的記憶にし、技術的負債と調達の選択を、恒常的な予算を持つポートフォリオとして管理します。チームが道を、それが最も楽だから選んでいるかを測り、待ち行列に朽ちたボードは縮めます。

政府。 文書化され説明可能な決定は、ここでは任意ではありません。監査人と監督機関は、あらゆる重要な選択について、理由、比較された選択肢、前提を見ることを期待します。自作か購入かを記録された総所有コスト分析として実施し、単独調達によるロックインを制約する調達規則を守り、ADRを監査に耐える証拠の記録として保ちます。長い時間軸を真剣に受け止めてください。今日行われたデータモデルやベンダーとの約束は、組織を10年拘束するかもしれないので、一方通行の扉として分類し、それに応じて熟慮してください。

事例

スタートアップ。 4人のスタートアップは、共有の机を挟んで、ほとんどの決定を数分で下します。可逆な両開きの扉の選択では、その速度は本物の強みなので、彼らはあらゆるガバナンスのオーバーヘッドを拒みます。しかし、後で変更するのが苦痛になるデータベースとデータモデル(一方通行の扉)を選ぶときは、立ち止まって一段落のメモを書きます。選択肢、選択、その背後の前提です。一年後、スケーリングの限界に突き当たったとき、その一枚のメモが、問いをゼロから蒸し返すことから彼らを救います。彼らはほとんど何も統治せず、唯一の軽量な習慣を、元に戻すのが本当に高くつく少数の決定のために取っておきます。

大企業。 ある大企業のプラットフォームチームは、あらゆる技術選択を承認しなければならず、数週間の待ち行列を生むアーキテクチャレビューボードのせいで麻痺していました。企業は、整備された道を中心にガバナンスを再構成しました。チームがすぐに採用できる、承認され、手厚く支援された言語、データストア、パイプラインの厳選されたカタログです。ADRが逸脱の決定を記録し、速くて助言的なレビューが、道を外れる選択だけを扱いました。ボードの範囲は、標準の設定と、本当に横断的な少数の決定に縮みました。デリバリーは大きく加速しました。楽な道が準拠した道になったので、一貫性はむしろ向上しました。そしてADRのアーカイブは、なぜ物事がそのように作られたのかの、検索可能な記録を組織に与えました。

政府。 ある政府省庁は、厳格な調達と監査の規則のもとで、ケース管理プラットフォームの大きな自作か購入かの決定に直面しました。好みで決めるのではなく、三つの選択肢にわたる文書化された総所有コスト分析を実施しました。独自開発で作る、商用製品を買う、オープンソースの基盤を採用する。ライセンス、統合、長期的な保守、人員配置、ロックインを比較し、決定とその前提をADRとして記録しました。数年後、ベンダーの条件が変わったとき、省庁はそのADRを見直し、元の前提がもはや成り立たないことを見出し、以前の理由を十分に踏まえて再決定し、盲目的で高価な移行を避けました。記録された理由は、監査人が求めた説明可能な証拠でもありました。

ビジネスケース: 動機、ROI、TCO

決定は、ソフトウェアにおいて最もてこが効き、最も見えにくいコストです。たった一つの不適切で不可逆なアーキテクチャや調達の選択が、何年もの足かせや、9桁の是正コストを課すことがあります。それをうまく統治すること、数時間の熟慮と書面の記録は、それに比べればほとんど何もかかりません。ADRと可逆性に基づく委任の見返りは二つの源から来ます。一方通行の扉の決定における高価な過ちを避けることと、他のすべてにおける無駄な熟慮と手戻りを避けることです。記録された理由は、決着済みの問いを蒸し返す繰り返しのコストや、チームが継承したシステムの意図を逆解析するコストも大幅に削減します。

技術的負債は、TCOの議論を具体的にします。管理されない負債は、複利の利息とまったく同じように振る舞います。将来のあらゆる変更に対する増え続ける税が、システムが事実上保守不能になり、高価な書き直しを要求するまで続きます。負債をポートフォリオとして管理し、高利の項目の返済のために恒常的な容量を割り当てることは、最終的な危機よりはるかに安く済みます。優れたガバナンスは導入が安く、おもに決定を書き留める規律と、整備された道への先行投資です。それを省くのは高くつきます。避けられた書き直し、ロックインの驚き、監査の失敗、組織的記憶の喪失で支払います。リーダーシップを説得するには、ガバナンスを彼らの言葉で語ってください。リスクの低減、避けられた手戻り、整備された道による速いデリバリー、監査に耐える説明可能性です。目標はより多くのプロセスではなく、より的確に狙ったプロセス、つまり元に戻すのが高くつく所にだけ重い精査をし、他のすべては摩擦のない速さで進めることだと示してください。

アンチパターンと落とし穴

  • 文書化されない決定: それを下した人々が去った瞬間に、理由が失われます。
  • 承認ボードのボトルネック: すべてのプロジェクトが並ばなければならない中央の機関。
  • 画一的なプロセス: 些細で可逆な決定を重いレビューに通すこと。
  • 分析麻痺: 簡単に元に戻せる両開きの扉の決定で思い悩むこと。
  • シャドーIT: 公認の道があまりに苦痛なために、チームがガバナンスを完全に回避すること。
  • 見えない技術的負債: 目録化されず、返済されず、静かに複利で膨らむ負債。
  • 何でも作る、何でも買う反射: TCO分析ではなく習慣による調達。
  • ガバナンスの芝居: 見せかけのために存在し、決定を形づくらない文書や委員会。

成熟度モデル

  • レベル1(開始): 決定は場当たり的で記録されません。ガバナンスは不在か、全面的なボトルネックです。技術的負債は見えず、選択の背後の理由は人が去ると蒸発します。
  • レベル2(発展): 一部の決定は文書化され、いくらかのレビューはありますが、実践はチーム間で一貫せず、プロセスはしばしば決定の重さと可逆性に釣り合いません。
  • レベル3(標準化): ADR、整備された道、可逆性に基づく委任、負債の目録が文書化され組織全体で徹底されているため、準拠した選択が楽な既定となり、理由は検索可能です。
  • レベル4(管理): ガバナンスはベースラインに対して測定されます。整備された道の採用、ADRのカバー率、意思決定のサイクルタイム、容量に占める負債の割合、道を外れる例外の率が追跡され、負債の返済や調達の見直しの決定は、危機ではなくその証拠によって引き起こされます。
  • レベル5(オーケストレーション): ガバナンスは継続的に調整され、デリバリーとリスク計画に統合されています。精査は不可逆な決定に的確に向けられ、負債と調達の選択はポートフォリオとして積極的に再配分され、状況の変化につれて証拠に基づいて再決定されます。

議論のためのアイデア

  • 私たちの最近の最も重要な決定について、その背後にある記録された理由を見つけられますか。
  • 私たちのガバナンスはどこでボトルネックになっていて、どこで必要なのに不在ですか。
  • 私たちの現在の決定のうち、どれが一方通行の扉で、私たちはそのように扱っていますか。
  • 私たちの容量のうち、技術的負債の返済に向かうのはどれくらいで、それは十分ですか。
  • 私たちのチームは、整備された道がまさに最も楽な道だから従っていますか、それとも迂回していますか。
  • 主要な自作か購入かの決定を、元の前提に照らして最後に見直したのはいつですか。

要点

  • 重要な決定とその理由をADRで記録し、理由を永続的にします。
  • 個別の門番ではなく、整備された道と既定値で統治します。
  • プロセスの重さを決定の重さと可逆性に合わせます。両開きの扉は委任し、一方通行の扉は熟慮します。
  • 自作・購入・採用を総所有コストで分析し、前提を記録します。
  • 技術的負債を、恒常的な返済割り当てを伴う明示的なポートフォリオとして管理します。
  • ガバナンスを透明で軽量に保ち、希少な精査を元に戻すのが高くつく所に向けます。

参考文献とさらなる読み物

  • Michael Nygard, “Documenting Architecture Decisions” (the original ADR pattern)
  • Gregor Hohpe, “The Software Architect Elevator” and “37 Things One Architect Knows”
  • Amazon shareholder letters on Type 1 vs Type 2 (one-way vs two-way door) decisions
  • Ward Cunningham, the original “technical debt” metaphor
  • Martin Fowler, writings on technical debt and evolutionary architecture
  • Neal Ford, Rebecca Parsons, Patrick Kua, “Building Evolutionary Architectures”
  • Nicole Forsgren, Jez Humble, Gene Kim, “Accelerate” (loosely coupled architecture and autonomy)
  • ISO/IEC/IEEE 42010 on architecture description