InfoQ ホームページ ニュース アーキテクチャは知識フローを設計する - Explore DDDのDiana Montalion氏
アーキテクチャは知識フローを設計する - Explore DDDのDiana Montalion氏
2025年8月25日 読了時間 6 分
作者:
翻訳者
コロラド州デンバーで開催されたExplore DDDカンファレンスにて、Diana Montalion氏は、ソフトウェアアーキテクチャとはナレッジフローを設計することであり、ソフトウェアチームが自分たちが構築しているシステムについてより深く学ぶことを目的としていると述べた。ナレッジフローは、ナレッジストック(既に知られている情報)にフォーカスする一般的なものとは対照的である。彼女は、効果的なアーキテクトを知識の普及を支援する役割を果たすと考えている。
Dave Snowden氏の言葉を借りれば、「知識の流れは、知識の保管よりも重要である」ということだ。この考え方は、Carol S. Dweck氏の造語である「成長型マインドセット」と「固定型マインドセット」の違いに似ている。
Photo of title slide saying Architecture is Designing Knowledge Flow
基調講演の中で、Montalion氏は、レガシーなシステムやプロセスが様々な制約に直面し、変革を模索している組織について述べた。しかし、そのような組織は、新しいアーキテクチャが既存の枠内にとどまり、合理的で予測可能な結果をもたらすと期待している。その結果、これは結果として「新しい」ものを生み出すことになるが、それは既存の制約に直面することになり、システムの機能を大幅に向上させることはできない。聴衆は、ある企業がマイクロサービスの本当の意味を理解せず、分散システムの運用を成功させるために必要なすべての変更を行うことを望まずに、マイクロサービスを望んだという逸話を受け入れた。
プレゼンテーションの中で彼女が語った多くの言葉の中に、Robert M. Pirsig氏の言葉がある。「工場が取り壊されても、それを生み出した合理性が残っていれば、その合理性は別の工場を生み出すだけである。」彼女は、職場への復帰命令は、この種の考え方の復活に根ざしていると考えている。
チームのマインドセットを変えるためには、アーキテクトは現在のマインドセットを生み出した要因を十分に理解する必要がある。氷山に喩え、目に見えるものだけに目を向けがちだと彼女は言う。これはシステムに対する限定的な見方であるだけでなく、ユーザーから他のチーム、レガシーコードまで、あるいはほとんど何でも、人々が不満に思っていることに非常に偏ってしまう可能性がある。
Iceberg model of systems thinking
システムをよりよく理解するためには、表面の下を見て、システムを形成しているパターン、傾向、価値観、信念を見つける。これは「システムの目標、権力構造、ルール、文化を生み出す考え方を特定するのに役立つ」と彼女は言う。このマインドセットを特定することで、水面下で同じ問題を抱える新しいアーキテクチャへのリフト・アンド・シフトを避けることができる。
Montalion氏は、ナレッジフローをゴールとする場合、アーキテクチャには6つの要素を含めるべきだと考えている。まず、コンテキストを伝える。なぜなら、すべての利害関係者とソフトウェアチームは、開発すべきものについて足並みを揃えるために、コンテキストについて共通の理解を持たなければならないからだ。次に、成長マインドセットを養う。Montalion氏はPeter Senge氏の言葉を引用し、「知識の共有は、人々が互いに新しい行動能力を開発するのを助けることに純粋に関心を持つときに起こる。それは学習プロセスを生み出すことだ。」
Six elements that architecture includes for knowledge flow
第三の要素は、システム内の関係と、それらがどのような効果を生み出すかを理解することである。バウンデッドコンテキストはシステムの一部であるが、それらはまた互いに関係を持っており、それがコアドメインを生成するである。彼女はRussel Ackoff氏の言葉を引用し、「システムは決して構成要素の総和ではなく、構成要素間の相互作用の産物である」と述べた。これらの相互作用には、人やチーム間の関係性も含まれれる。なぜなら、社会技術システムにはソフトウェアと人の両方の要素が含まれるからだ。
次に、「プラットフォーム」や「パイプライン」や「マイクロサービス」ではなく、機能を設計する必要がある。どのように構築または展開するかではなく、システムがドメイン内で何を実行し、何に適応し、何を理解するかに焦点を当てることは、より高いレベルで考えること、つまり「システムを設計するシステムを設計する」ことを意味する。Montalion氏は、「変革は手順やパイプラインによってスケールするものではなく、能力によってスケールするものだ。そして、能力は設計されたものであり、エンジニアリングされたものではない。」と述べている。
最大限の変革を達成するためには、レバレッジポイントを探すことだ。これは、システムの中で、構造を少し変えるだけで、重大で永続的な変化をもたらすことができる場所のことである。これにより、チームは「レガシー」なプロセスや思考に縛られているエネルギーを解き放つことができる。しかし、これらを見つけることと、それを活用できるようになることとは同じではない。Donella Meadows氏の言葉を借りれば、「私たちは苦い経験から、システムのレバレッジポイントを発見しても、ほとんど誰も信じてくれないことを知っている」。モンタリオンはこれを「18ヶ月ルール」と呼んでいる。なぜなら、人は物事の見方ややり方を変えるのに時間がかかるからだ。最終的に同じ結論に達したとしても、それが18ヶ月前にあなたが話したことだとは信じてもらえない。
これまでのすべてのステップを踏むことで、アーキテクトとリーダーは知識の流れを育て、生み出す立場に立つ。「リーダーシップとは、知識を活用する会社に力を与えることだ」とMontalion氏は言う。アーキテクトはしばしば、何を建設すべきかを正確に示す図を作成するよう求められるが、本当に求められているのは知識の流れなのだ。Montalion氏は、これは時間をかけて成長する能力だと認めた。「ナレッジフローを学ぶためには、ナレッジフローを実践する必要がある。」
ナレッジフローの一般的な概念を説明した後、Montalion氏は、アーキテクトが採用できるいくつかのテクニックと実践方法を例を使って説明した。大規模なシステムは複雑で、すべてを理解するには時間かかるため、まずは始めることが重要です。そして、文書やプロセスは有機的に進化できるようにすることが助けになる。
Related collections: Groups of artifacts interrelated to capabilities
システム、その機能、ドメインについて誰かが学べる場所が1つもないことがあまりにも多い。たとえドキュメントがあったとしても、ある領域を「クリックして」詳細を見ることは難しい。目標は、コレクション、ビュー、タグ、関係を表す双方向リンクを持つナレッジグラフを作成することである。これらの概念は新しいものではなく、ハイパーテキストやハイパーメディアの基本的な考え方にさかのぼるが、ナレッジグラフを作成するために利用できる技術には改善の余地がある。
ナレッジリポジトリの作成は、ナレッジフローのためのアーキテクチャ設計における具体的な成果物の一つである。アーキテクトは、「場合による」がしばしば正しい答えであることを知っている。Montalion氏はこのことに熱中していた。「私たちは、それが何に依存するのかを突き止めることができる。それが知恵なんだ」。アーキテクトは知識の共有を促進することができ、それが新たな行動能力の開発を促す。それこそが変革を成し遂げるために必要なことなのだ。
Quote from Peter Senge
-
関連記事
-
関連スポンサーコンテンツ
特集コンテンツ一覧
InfoQ ニュースレター
毎週火曜日に前週のまとめコンテンツをお送りいたします。(日本語版は不定期リリース)25万人のシニアな開発者コミュニティーにぜひご参加ください。 サンプルを見る