遅々としてなかなか筆は進みませんでしたが、長い歳月をかけて連載「ネットワークアーキテクチャ考」を続けてきました。この連載以外のエントリーも加えると、これまでに計 47 エントリーの記事(link)を投稿したことになります。この連載以外のエントリーは、「5G どうなの?」とか「IETF が日本で開催されるけどそれは何?」などの、その時々の要請に応えるために書いたものですが、自発的なエントリーと基本的なスタンスはあまり変えずに書きました。そのスタンスとは、「アーキテクトとしての実践」です。
そして私はこの度、「アーキテクトとしての実践」をより前に進めるために、この 4 月より母校の大学院に戻り、システム理論を深く探求することにしました。情報理論・データサイエンス・数理とシステム理論、そして音楽を接続し、人間の心と身体を動かす音楽の本質を追求してみたいと思います。仕事と両立できれば良いのですが、それだとやはり両方が中途半端になってしまうので、Cisco は一旦退職することにします。それでこの Blog も最終回となります。
現在、ありがたいことに、複数の部署に対し「最終講義」的なものをさせて戴いております。そこでその「最終講義」のためのメモを、この Blog の最終回とさせていただきたいと思います。
アーキテクトの重要性と、これからのアーキテクトへのメッセージ
この連載を読んで下さっている皆様にとってはもう当たり前のことですが、システムの構成要素がどのようにつながりどう相互作用するかを決定するのはアーキテクチャです。システムの機能を決定するのはロジックやアルゴリズムですが、システムの特性(英語で言うと-ility という語尾で表されることが多い:Availability, Confidentiality, Integrity, Reliability, Scalability, Maintenability, Simplicity, Sustainability ..など)を決めるのはアーキテクチャです。通常時は大丈夫だったのに過負荷がかかったらシステムがダウンした、とか言うのは「アーキテクチャが悪い」と言うことになります。ISO/IEC/IEEE 42010 では、「アーキテクチャとは、その要素、関係、および設計と進化の原則に具現化された、その環境におけるシステムの基本的な概念または特性」と記述しています [1]。
そのため、アーキテクチャをデザインするアーキテクトの役割はとても重要です。建築家の Norman Foster は「アーキテクトとして、あなたは、本質的に未知の未来のために、過去を意識して、現在をデザインする」と述べています。「本質的に未知」という言葉にはっとさせられます。我々システムズアーキテクトの場合は、その上で、良いシステムを実現し、お客様や業界・社会の発展に繋げることがミッションになります。不確実性の高まる社会において、モデリングや統計分析などの理論的検討と実践とを行き来するアーキテクトの役割は、さらに重要性を増すと考えられます。
しかし、実践を重ねながら、俯瞰的視野を持ち、日々進化する技術や新たな分野の勉強をすることは容易なことではありません。時間が足りず焦ったり、迷ったり、壁に突き当たることもあると思います。そこでこの機に、壁に突き当たった時に私が必ず行うようにしている思考を 3 つご紹介して、これからのアーキテクト達へのメッセージとしたいと思います。
これからのアーキテクトに託す3つの思考
1. 万物流転す。しかし変わらないものも存在する。
ここに、構造的には似通っている 2 つの文があります。
- 母音は 5 種類ある。[a] [e] [i] [o] [u]
- 音階は 12 音で構成される
しかしこの 2 つの文には大きな違いがあります。
前者は、言語によって異なるので、これは恣意的に決まったものだ、ということができます。
今の日本語では母音は 5 種類ですが、フランス語には 14 種類の母音があるそうです。長い歳月をかけて形作られた慣習ですので、変えるのは難しいかもしれないですが、絶対に変わらないとは言えない訳です。
一方後者はどうでしょうか。例えばオーケストラのチューニングの基音となる音はラ(英語音名では A)、周波数で言うと 440Hz(現代では 442 や 443 が使われることが多いですがここでは簡略化のために 440Hz とします)で、この周波数が 2 倍の 880Hz になると 1 オクターヴ上のラになります。この下のラから上のラの間が 12 音で構成されるのですが、これが恣意的に決まったことなら、13 音であっても 14 音であっても 20 音であっても良い、と言うことになります。しかしこれはそうはいきません。音は、周波数 2 倍で 1 オクターヴ上ですが、1.5 倍で完全 5 度上になります。つまりラ(A) が 440Hz なら 5 度上の ミ(E) は 660Hz です。このように 1.5 倍で 5 度を取ることを繰り返すと、ラ(A) -> ミ(E) -> シ(B) ->ファ♯(F♯) -> ド♯(C♯) -> ソ♯(G♯) -> レ♯(D♯) -> ラ♯(A♯) -> ファ(F) -> ド(C) -> ソ(G) -> レ(D) -> ラ(A)、、、と言うことで 12 回で同じラの音に戻ってしまいます。そのため、1 オクターヴの音階が12 音というのは、恣意的に決まったものではなく、数理・原則的に決まっており変わらない、ということになります。
生命は有限であり、世の中の多くのことは、恣意的に決まったことです。だから万物流転す、という言葉の通り、多くのことは変わっていきます。我々は常に環境の変化に適応しなくてはならないですし、アーキテクトとしては、自ら変革を起こす存在でありたいです。
一方で、変わらないものも存在します。そして、そういうものは拠り所になる。これからどんな時代になろうと、システム同士をつなげるネットワークは必要、ということは不変だと思います。
迷った時、今の制約や突き当たった壁は恣意的なものなのか不変のものなのかを見極めよう、というのが一つ目のメッセージです。
2. 多くのものごとは根源的なところでつながっている。
一見ばらばらに見える現象も、多くのものごとは根源的なところでつながっている、ということに感嘆させられます。そして根源的な法則は、分野や領域を超えて応用することができます。例えば、通信技術者なら誰もがお世話になっているシャノンの情報理論。このシンプルな理論で、Codec や通信路の誤り訂正、暗号化などの仕組みが実装されていますが、その理論に出てくるエントロピー計算式(情報エントロピー (H) = 起こり得る事象の自己情報量に確率をかけたものの総和)は、いろいろなことに応用できます。
Spread Sheet で簡単に計算できるので、ぜひ試していただきたいです。
二択でそれぞれの選択肢の出現確率が同じ(0.5)の場合、エントロピーは1です。
選択肢が増えると、エントロピーは増大する訳ですが、
ある選択肢が圧倒的に起こりやすく、他がそうでもない場合は、エントロピーは減少します。つまり、予期しやすくなる。
この情報エントロピーを、多様性の定量化に使うことができます。不確実性の高い環境においては、一定の価値観や見方は脆弱であるため、現代社会では多様性が重視されています。しかし、ただ闇雲に多様化するだけでは秩序のない渾沌になるだけです。ではどの程度の多様性が必要なのか。
この問いに対して、心理学者のW. Ross Ashby は「必要多様性(Requiste Variety)」という概念を提唱しました [2]。そのシステムの環境の多様性と同等またはそれ以上の多様性が必要、という考え方です。
必要多様性を具体化するのは難しいですが、少なくとも多様性を定量化・可視化することができれば、「どの程度の多様性が必要か?」という問いに対して指針を与えることができます。
さらに、情報エントロピーを驚き(Wow!)の定量化に使うこともできます。
プレゼンテーションや提案・説明を行う時、受け手にWow!という驚き・感動をもってもらえると効果が高くなることは、我々も経験するところです。Helmholts によると、脳は推論し予測しながら知覚しているため(Helmholts「無意識的推論」)、予測が外れた時に驚く訳です。受けた情報が全てが予測どおりだと、全く驚かず感動しない。しかし逆に、あまりにも外れすぎていると、何を言っているのか理解不能、ということになります。つまり多過ぎず少な過ぎず、適度な驚きが必要です。「適度な驚き」なんて難しいですが、少なくとも定量化することができれば、何らかの指針にすることはできます。そしてこの驚きも、選択肢の数とそれぞれの起こり得る確率で近似することができます。
今回は、情報理論がいろいろなことに応用できる、という例を出しましたが、これだけでなく、数学・自然科学の理論は、根源的であり、多くのものごとの基礎になっているので、お気に入りの理論をいくつか持っておくと何かと使えます。
3. 氷山、ループ、波
これは、「システム思考」として知られているので、ご存知の方も多いと思います。「今見えていないものを見る」ことは、迷った時、壁に突き当たった時に、とても役立つ思考法です。
「氷山(Iceberg Model )」は、日本語でも「氷山の一角」という言葉にある通り、今見えているものはほんの表層的な事象に過ぎず、その事象の背後・下部には、その事象の要因となるパターン、さらにそのパターンを編み出す構造、、そしてその構造を編み出すメンタルモデルが存在する、というモデルです。パターン、構造、メンタルモデルを明らかにすることにより、根源的な対処が可能になります。
「ループ 」は、因果ループ(Causal Loop )とも言われるもので、システムのダイナミクスを因果関係のループに書き表してみると、的確な次の一手を打ち出すことができる、というものです。
これは単純すぎる例で恐縮ですが、たとえば「セキュリティ対策が思うように進められない」という問題があったとします。このためにセキュリティ関連のトレーニングを行い、関係者の意識を向上させ、セキュリティ対策を進める、というのが positive な loop ですが、一方で、セキュリティ対策にはコストや手間がかかり、そのために反対勢力も増える、という loop を作っている可能性があります。この場合は、コストや手間が Leverage Point となり、この対策をすることが次の一手となる、という訳です。
実際にはもっと多くの要因が複雑な loop を構成していることと考えられますが、一つ一つを紐解き、状況を冷静に可視化すると、Leverage Point が見えてきます。
最後の「波」ですが、Max Planck が「すべては振動であり、その影響である。すべてのものは振動で構成されている。」と述べたと言われているように、多くのもの、経済変動、技術進化、そして量子力学なども、波で表現できます。
そこで、離散事象に見えているかもしれないけれど、背後の波があるかもしれず、それを捉えると良いかもしれない、という考え方です。
一方で、単なる偶然、とか、通常のばらつきの範囲、という場合もあるので、安易に波に帰するのも良くありません。野球で打者が立て続けにヒットを打ったりすると、アナウンサーが「すごい波に乗ってますね」とか言うことがありますが、その打者の基本的打率からすると通常のばらつきの範囲かもしれないです。あくまでも、冷静に状況を観察し分析する必要があります。
ここでのポイントは、「今見えているものは、表面的な現象または自分で(気付かないうちに)仮定しているものである」ということに気づき、今見えていないものを見ようとすることにより、ものごとの本質に迫ることができる、ということです。
むすびにかえて
これからのアーキテクトへのメッセージとして、迷ったり壁に突き当たったりした時に行うと良い思考法を 3 つご紹介しました。これからも、共に悩み共に成長することができたら嬉しいです。
最近つくづく思うのですが、AI 普及の時代、人間にしかできないことへの愛おしさを感じます。以前 AI にない人間の特徴は何か、と考えたとき、アホな間違いやミス、パラドックス、おもしろがる、という、一見あまりロクなものでないものが挙がりましたが、これが人間の創造性の源泉になっているかもしれません [3] 。生きていることを慈しみ、たのしみましょう。
References
[1] Systems and software engineering — Architecture description
ISO/IEC/IEEE 42010, http://www.iso-architecture.org/ieee-1471/defining-architecture.html
[2] Requisite Variety and Its Implications for the Control of Complex Systems https://link.springer.com/chapter/10.1007/978-1-4899-0718-9_28
[3] 「システム理論の続き – AI時代の人間の創造性とは」https://qiita.com/mkohno/items/b21a01b24c67099013ff
2 コメント
長い間お疲れ様でした。ありがとうございました。
次のステージでも、さらなるご活躍を祈念しております。
タメになるお話しを読ませて頂きありがとうございました。
更に新しい高みを目指して進んで行かれることに驚きと同時に心から感動を覚えます。
これから独特の世界観を読めなくなるのは寂しい限りですが、新しい高みを目指して頑張って頂きたいと思います。
これからも今回のような、後に続く人達の為に行手を指し示すようなものをなんらかの形で発表して頂くよう願っております。
長い間この業界に貢献して頂き本当に有り難う御座います。
新しい次なるステップでは、我々年寄りをどんな事で驚かせてくれるか楽しみです。
お身体に留意されて、趣味・勉学に励まれますよう陰ながら応援しております。本当に有り難う御座いました。