コンウェイの法則とマイクロサービス

システム開発においてはコンウェイの法則が稀によく観測されます。

コンウェイの法則とは「システム設計は、組織構造を反映したものになる」法則のことです。

社内の開発体制とシステムアーキテクチャは密接な関係になり、社内のコミュニケーションパターンがDevOpsに影響を与えます。

ところで昨今、開発プロジェクトに関わるごとにマイクロサービスを採用したい人をよく見かけるようになりました。

Wikiの内容をそのまま引用しますが、マイクロサービスは

1つのアプリケーションを、ビジネス機能に沿った複数の小さいサービスの疎に結合された集合体として構成するサービス指向アーキテクチャ

です。

一つの膨大なシステムを開発運用するより、システム全体を小さく分割された複数のサービスにしておけば、各担当者はそれぞれ単体のサービスにフォーカスを絞って開発運用ができるようになります。

全体をまとめて管理するより運用コストを下げることができます。

また、サービスがモジュール化(疎結合化)しているのでシステムが冗長化しやすかったり、改修にかかるスコープが限定的で済んだり、継続的デリバリーとも相性がいいです。

すごくいい事だらけなような気がします。

しかし、この世に銀の弾丸はありません。

マイクロサービスを採用しようとしている現場のほとんどはベンチャー企業やスタートアップだったりします。

全員集まっても数人、多くても数十人ぐらいの規模感です。

そもそもチームを分割できるほど頭数がいません。

マイクロサービスは基本1チーム1サービスです。

しかし現実は1チーム複数サービスになっており、結局は全体をまとめて管理運用することになっています。

一つのシステムだと一つのサービスの運用管理で済みますが、複数のサービスに分割されていると、サービスの数だけ運用管理の手間がかかります。

分割した分、一つの状態のときより分量は増えますし、各サービス間のI/Fや連携に携わる手間も追加で発生します。

また、開発時にそれぞれのサービスを別々の開発チームにお願いしていたりすると、DDDにおけるドメインモデルの振れやユビキタス言語の差異が発生し、システム全体の統一性を保つことができなくなり、仕様の面から技術的負債が膨れ上がることになります。

ここで最初に話したコンウェイの法則が牙を向きます。

多チーム多サービスはコンウェイの法則を満たします。

しかし、1チーム多サービスはコンウェイの法則により1チーム1サービスに収斂していきます。

いくら口でマイクロサービスと喚いたところで、最後に蓋を開けてみれば、そこに存在するのはキレイに疎結合化されたサービス群ではなく、なんだかよく分からない十把一絡げになったシステム的なサムシングになるのがオチです。

そもそもベンチャーやスタートアップはビジネスモデルも確立できていないし、人の入れ替わりも激しい業界です。

朝令暮改やピボットが当たり前の世界です。

システムに期待される要件はカオスにさらされ、少人数でPDCAを高速で回す分、システムの実態は密結合にならざるを得ないでしょう。

ビジネスが不安定であり、組織が密結合なのですから疎結合のアーキテクチャであるマイクロサービスを採用すること自体、コンウェイの法則的に無理があるのです。

組織が密結合であるにも関わらずマイクロサービスを採用するものの、コンウェイの法則によりシステムは密結合に収斂していく、これがマイクロサービスがうまく機能しない理由です。

システムの所有者が大手大企業であり、その子会社がサブシステムを持っている、ぐらいの規模感がないとマイクロサービスは実現できないのです。

Tag: プログラミング

コンテキスト消費社会

サブカル全盛の昨今、世の中には大量のコンテンツが溢れています。

エンターテイメントや趣味にとどまらず、コンテンツマーケティングに代表されるようにビジネスにおいてもコンテンツが重要なファクターになっています。

コンテンツとは直訳すると「内容」です。

今読んでいる文章も「コンテンツ」です。

そして当サイトにはこの文章以外にもたくさんの文章をストックしています。

当サイトにある自分が書いた一連の「コンテンツ」のまとまりは「ブログ」という単位で扱われています。

ちなみに、ブログは「メディア」で、メディアとは情報伝達媒体のことです。

メディアとはコンテンツ(商品)と読み手(消費者)を結びつける窓口のような概念です。

コンテンツがあっても、それが消費者まで届かなければなんの価値にもなりません。

誰の目にも止まらないコンテンツは存在していないと同義です。

そこでTVやラジオ、DVD、雑誌、新聞など様々なメディア媒体を駆使してコンテンツを消費者まで届けようとしているのです。

そして、ここ十数年でインターネットという圧倒的なメディアインフラが誕生しました。

一般ピーポーである一個人の自分がコンテンツを配信できているのもインターネットの力のおかげです。

メディアの種類が増えた分、昔に比べて大量のコンテンツを現代人は消費するようになりました。

現代を生きる我々は生活のかなりの時間、SNSを中心としたコンテンツのシャワーを浴び続けています。

ここまでの話でメディアの進化によりコンテンツが大量に生産されるようになり、かつそれが人々に届きやすい世界になっていることが分かりました。

その結果、世に溢れる様々なコンテンツは人々の生活様式や思想、行動に多大な影響を与えるようになってきていると考えられます。

21世紀頭の前後あたりから情報過多社会とよく揶揄されるようにもなりました。

みなさんも一度は「現代人は情報を過剰摂取している」といった内容の論説を聞いたり読んだりしたことがあると思います。

ここからが本エントリの本題なのですが、我々は本当に世に溢れる大量のコンテンツを消費して生活しているのでしょうか?

とある本を読んでいたら「それはちょっと違うんじゃないか?」という疑念がわいてきました。

日常の雑談やちょっとしたやり取りであれば、コンテンツの消費は物語の価値として働き、日常のコミュニケーションを多彩なものにしてくれます。

しかし、物語の価値にはプラスの側面だけでなく負の側面もあるようです。

物語自体はコンテンツですが、物語から派生した知識や情報はコンテキストとして作用するようになります。

コンテキストとは文脈のことです。

文脈とは文(センテンス)を解釈するための前提条件となる知識や情報のことです。

スターウォーズを知らない人が「Aくんは暗黒面に落ちた」と聞いてもチンプンカンプンですが、知っている人が聞けば「Aくんは悪者になってしまったんだな」と理解できます。

コンテンツが溢れる世の中であるということはコンテキストも溢れる世の中であるとも言えます。

コンテンツを味わって食すためにはコンテキストという調味料が必要な場合が多くあります。

コンテンツの消費の仕方にも、純粋に楽しむためのコンテンツ消費とコンテキストを仕入れるためのコンテンツ消費の2パターンがあるわけです。

最新作のスターウォーズを観るために過去作を全部観ることが後者で、最新作を観るのが前者の消費の仕方になります。

ですが、全てのコンテンツにコンテキストが必要というわけでもありません。

コンテキストを仕入れなくとも楽しめるコンテンツもいっぱいあります。

むしろそちらのほうが多いはずです。

『天気の子』を観るために『君の名は。』を見ておく必要はありません。

しかし、純粋に『天気の子』だけを観るのと『君の名は。』も鑑賞してから観に行くのと、新海誠監督について色々予習してから観に行くのとでは、それぞれ楽しみ方や映画を見たあとの感想が変わってくると思います。

コンテンツは一つですがそこに合わせるコンテキストは無限大にあります。

それこそ一人ひとりがそれぞれ歩んできた人生や価値観、その時の気持ちなどもコンテキストとして作用します。

そうなってくるとコンテンツの解釈は千差万別となります。

これがコミュニケーションを困難なものとしている要因ともなっています。

強固な共同幻想の上に成り立つコンテキスト(お金や国という概念など)であれば人の違いによる解釈違いは起きにくいでしょう。

しかし、コンテンツもコンテキストも巷に溢れかえっている現代では、コンテンツも多種多様でありコンテキストも多種多様で、2つをかけ合わせるとコンテンツの消費のされ方は人の数だけ存在することになります。

コンテンツの価値はコンテンツ自身だけの問題のように思われがちですが、コンテンツを人がどのように解釈するかは消費する側の持つコンテキストに依存する部分が大きかったりします。

コンテンツがご飯(お米)だとするとコンテキストはおかずです。

料理を味わう時はおかずが主役であり、ご飯は主食とは呼ばれるものの、食事の主役は常におかずなのです。

外食する時はご飯ではなくお肉を目的に食べに行きますし、ラーメンの味の本質はスープです。

そう考えるとコンテンツよりもコンテキストのほうが重要だと思えてこないでしょうか。

ここまで書いてきてやっとタイトルに言及できるようになりました。

我々がコンテンツを消費していると思いこんでいることは、実はコンテキストの消費なのではないか。

先程のスターウォーズの例であげたように、文章があったとしてもそれを解釈するための文脈を知らないとうまく文を消化することができません。

そういった意味で文脈は内容よりも大事な要素となります。

人や場面によっては「暗黒面に落ちた」を「悪者になった」という意味以外で「強大な力を手に入れた」や「心を閉ざした」「裏切った」という意味で捉えるケースもあるでしょう。

言葉はどこまでいってもただの言葉でしかないのです。

表現された言葉だけですべてがそのまま伝わると思ったら大間違いです。

自分の思考が正確に相手に伝わるためには…

  • 1. 表現したいことが言語に存在するか
  • 2. 表現したいことをちゃんと言語化できるか
  • 3. 言語化したことが自分の実際の感覚と一致しているか
  • 4. 受け手が自分と同じ意味で言葉を解釈してくれるか

これらすべてのステップを達成しなければなりません。

1は人類全体の問題で、2と3は自分の問題です。

4は相手の問題になります。

2のときにコンテキストが自分の表現する言葉に影響を与え、4のときにコンテキストが相手の解釈に影響を与えます。

このように伝達までのステップを分解して眺めると内容そのものより文脈のほうが伝達において重要な要素を占めていることがわかると思います。

さらに文脈は個々人が前提として持っているものだけではありません。

会話のやり取りの中で醸造されたり、文章全体の雰囲気や記事のタイトル、世間のイデオロギーなども大いにコンテキストとして作用します。

いわゆる「空気感」と呼ばれるようなものたちです。

ここまでコンテキストの影響が多くなると、やはりご飯(コンテンツ)をきっかけにしておかず(コンテキスト)を消費していると考えたほうがしっくりきます。

さらに、コンテンツの消化はコンテキストの認知を強化している側面もあります。

先程例にあげた、映画の最新作を観るために過去作を観る、といったように。

日々目にする情報が偏れば、偏った内容のコンテキストを植え付けることができます。

ワイドショーが環境問題を取り上げると「地球がヤバい」となり、政治問題を取り上げると「政治がヤバい」となり、経済問題を取り上げると「経済がヤバい」となり、途上国問題を取り上げると「中東とアフリカがヤバい」となり、軍事問題を取り上げると「核がヤバい」となり、感染症問題を取り上げると「ウイルスがヤバい」となります。

みんなが認識していないだけで、地球上のどこかには何かしらの「ヤバい」は常に存在しています。

そして、それらの「ヤバい」は自分の生活に対してどこまで影響を及ぼすかまでは深く考えないでしょう。

普段目にする情報がコンテキストとして作用して、その問題こそがすべての核心だと思いこんでしまい、その前提で情報(コンテンツ)を消費することになります。

コンテキストとして作用している知識や情報がコンテンツを消費する際に常に正しく生かされているかはとても疑わしいところです。

レジ袋有料化はマイクロプラスチック問題に対して本当に現実的に成果をあげることができるのでしょうか?

それを判断して効果の是非を判定するのは現在の科学で本当に可能なのでしょうか?

そもそも何を持ってして解決したとするのでしょうか?

判断基準があったとしてそれがほんとに正しいと言えるのでしょうか?

コンテキストの持つ一番の恐ろしさは、この「疑わしい」という感情を芽生えさせないところです。

コンテキストとコンテンツが自分の中でスマートに融合されてしまえば、コンテキストで味付けされた味であるにも関わらず、なんの疑いもなしにコンテンツをコンテキストの味と認識して消化してしまうのです。

コンテンツの味を吟味することなくコンテキストの味で食事を済ませてしまうことが「わかったつもり」です。

コンテンツをつつがなく消化できてしまえば、その時点でコンテンツの解釈は打ち止めになってしまいます。

「わかったつもり」を得られればコンテンツの詳細を把握しなくとも、間違った定義のまま理解してしまったとしても、コンテンツを消化したことになります。

しかしこれはコンテンツをちゃんと消化したと言えるのでしょうか。

コンテンツをきっかけにして自身の持つコンテキストを強化しているだけになっていないでしょうか。

賛成派の人は賛成になるような情報の読み取り方しかしませんし、反対派も言わずもがなです。

「一ヶ月前に比べて感染者が2倍に増えた」という情報があったとしましょう。

感染悲観派は「2倍に増えたヤバい」といい、感染楽観派の人は「分母が増えただけで比率は変わってないよ」と自分が持つ文脈で情報を解釈するでしょう。

同じコンテンツでも解釈のされ方は人それぞれの持つ文脈で180度変わります。

やはり人々が消費しているのはコンテンツではなくコンテキストということになります。

そして「そもそも感染の定義とは?」や「インフルと同じ検査方法じゃなくてなぜPCRなの?」という疑問が湧いてきてはじめて人はコンテキストの呪縛から逃れて「わかったつもり」から「わかった」に踏み出せるのです。

Tags: コミュニケーション,

データアーティスト

データサイエンティストという職業があるようですが、私は世間一般で使われるサイエンスという概念をあまり信用していません。

詳しくはこちらで述べています。

データサイエンティストたちの言動を眺めていると、この人達はサイエンティストではなくアーティストなのではないか?と疑念が浮かんだので少しここでまとめてみようと思います。

そもそもサイエンスの基本は実験と観測です。

これが科学者のやっていることのほとんどなのです。

あとは論文を書くぐらいです。

翻ってデータサイエンティストは何をしているのでしょうか?

実験をやっている気配はないですし、分析はやっているでしょうが観測はやっていなさそうです。

分析と観測は違います。

観測はデータを創造する作業で、分析はデータを加工する作業です。

このように書いてみるとデータサイエンティストは特に科学者っぽいことは何もしていないように見えます。

ではなぜサイエンティストを名乗るのか?

それはきっと自分のやっていることが統計学と同じだと思っているからです。

統計学はソーシャルサイエンスと呼ばれる経済学や経営学ほどではないですが、本来の科学に比べて再現性が低い学問です。

本来の科学(自然科学)は定理や法則が定義されれば、誰がどこでやっても100%同じ結果がでるものでなければなりません。

しかし、統計学は大まかな法則性を見出すことまでしかできません。

法則を定義しても、それが100%の再現性を保証するわけではないのです。

そういった意味で統計はあまり科学的でないとも言えます。

そしてデータサイエンティストの仕事は言ってしまえばコンサルです。

あくまでも商売なので何かしらの結果を出さなければなりません。

そもそも科学者とデータサイエンティストでは仕事に対するアプローチが違います。

科学者であれば「仮説→検証→証明」という業務フローですが、データサイエンティストの場合は「分析→仮説→説得」という業務フローになります。

仮説を証明するのではなく仮説を売り込むのがデータサイエンティストの仕事なのです。

よってこの人達はサイエンティストではないのです。

では彼らは何者なのか?彼らはアーティストなのです。

証明する人ではなく、表現する人なのです。

データと分析の仕方によって人それぞれ、いかようにも仮説(表現)を生み出すことができるのです。

分析データを恣意的に選択でき、分析の手法も表現の仕方も個人の裁量で好きにやっていいのであれば、いくらでも思い通りの仮説をでっち上げることができます。

ここで、数字やデータを根拠とした言説であるにも関わらず、その内容がいかに眉唾ものであるかを、いくつか事例をあげて紹介したいと思います。

  • 阪神無敗巨人未だ未勝利

2020年6月17日時点で当年のプロ野球はまだ開幕していませんでした。

例年であればスタートダッシュの勢いが衰えをみせはじめ、そこに交流戦が重なりさらに負けがかさんでいる時期です。

しかし今年はコロナ禍の影響でまだ一試合もしていませんでした。

そこを利用して「阪神無敗のまま親会社の株主総会へ」というタイトルの記事がでて、それがバズりました。

たしかに試合を行っていないので阪神が無敗(0敗)であることも巨人が未勝利(0勝)であることも事実は事実なのです。

言い方を変えれば巨人無敗、阪神未勝利とも言えるし、それもまた事実を表現しています。

しかし「阪神無敗巨人未だ未勝利」という表現をみると阪神は勢いに乗っていて巨人は調子が悪いような印象を受けてしまいます。

ある一つの客観的なデータを元にしていても、表現の仕方によっていかようにも印象を変えられるという好例だと思います。

  • 一番狙わる部分を強化すべきです

有名な小話で、爆撃機の装甲を厚くすべき箇所はどこか問題というのがあります。

帰還した爆撃機の被弾箇所を分析して、一番被弾している箇所の装甲を厚くすれば爆撃機の耐久力がまして、機体の損失を最小限に抑えられると考えました。

しかしこれは生存者バイアスの罠で、無事に帰還した爆撃機の被弾箇所は被弾しても無事に帰還できると分析するのが正しく、他の箇所に命中した爆撃機は墜落して帰還できなかったのです。

帰還した爆撃機が損傷を受けていない部位を補強することが正しい対応だったのです。

検証に値するデータがあったとしても分析が間違っていれば結果も間違ったものになってしまうという好例です。

  • 次は裏に賭けるべきです

コイントスをしていて表がでるか裏がでるかを賭けていたとしましょう。

現在5回連続で表が出続けています。

そして次の6回目で表がでる確率はいくらでしょうか?

ここであなたはデータサイエンティストであり、勝負をしている人に対してアドバイスをする立場にあるとしましょう。

真っ当な人間であるのならば、5回連続で同じ目が出ていようが100回連続で同じ目が出ていようが次のコイントスの結果の確率は常に50/50なのです。(イカサマがないのであれば)

よって「次は50%の確率で表がでます」というのが正しいアドバイスです。

しかし、データサイエンティストであるあなたは顧客から料金を頂いているので「どっちに賭けても同じ確率ですよ」という無責任な態度は取れないのです。

それを言ってしまうと自分の存在価値がなくなってしまいます。

相手が求めているのは「どちらに賭ければ勝てるか?」なのです。

そこで、それっぽい理屈をつけて「5回連続で表がでているなら統計的にみても、次の目も表が出る確率のほうが高いでしょう」や「5回連続で表が出てしまっているので次のトスで表が来る確率は下がっているはずです、ですので裏に賭けるべきです」などといって相手に納得感を与えるのです。

  • 20代や30代の若者の感染者が多い

とあるウイルス検査で20代と30代の陽性患者が多いというニュースが流れました。

50人近くの陽性者が検出されて、そのうち20代と30代の割合は80%近くあったそうです。

このニュースだけを聞くとなにか若者世代が悪いかのようなイメージを持ってしまいます。

しかし、検査の実態はどうだったのでしょうか?

ニュースでは新宿歌舞伎町の夜の街のお店の人たちを集中的に検査を行ったとも言っていました。

このことから推察するに、夜の繁華街で働いている人たちのほとんどは20代や30代の方々だと思われます。

そこを重点的に検査したのですから、陽性者も20代30代の方が多く検出される結果になるのは当然の帰結のようにも思えます。

母集団を恣意的に選択すればある程度、その結果も操作できるという好例のように思えます。

SNSのトレンドや新聞やテレビの世論調査もある程度母集団にバイアスがかかっている前提で解釈するのが懸命だと思います。


こういった例のように、数値を出したりデータを分析したからと言って、その結果が必ずしも真実を現しているとは言えないのです。

やはり彼らはサイエンティスト寄りの人間ではなくアーティスト寄りの人間と思っておいた方がしっくりきます。

真実を突き詰めるのが仕事ではなく相手の共感を得るのが仕事なのですから、これはもうアーティストの仕事です。

もはやアーティストを超えて占い師といってもいいくらいです。

占いだから当たることもあれば外れることもあります。

データの取捨選択と加工を元に、ある仮説からそれっぽい予言を生成しているのがデータサイエンティストと言えます。

ガラス玉やタロットカードがビッグデータや統計学に変わっただけで本質的にやっていることは占い師と同じなのです。

Tag: 仕事

More entries ...