親愛なる友人へ、
いかがお過ごしですか?
「このシステムはどうしてうまく回っているのか」
同じような疑問は、組織や、ソフトウェアについても生じるでしょう。(†1)
多くの場合、システムの部分部分においてはうまく回っていないところがあるでしょう。さらに、うまく回らないためにシステム全てが作り直されることもあります。いずれにせよ、メタにはうまく回っていると判断できるでしょう。そして、多くのシステムはなんだかんだうまく回っているように、外側からは見えます。
実際にうまく回っているにしても外側からそう見えるだけであっても、裏側の見えないところや各々が担当する領域においては、うまく回っていないところのほうが、より多く見えることすらあります。ソフトウェア開発がそうであるように、組織を含むシステムにおいても裏側の見えないところでの不断の努力と改善が必須です。その結果、外側からや結果としては、うまく回っているのかもしれません。
言い換えれば、自分の責任範囲を頑張る、自分の部署・役割・モジュール・コンポーネントにおいてやるべきことを全部やる、ということがなされているから、なのかもしれません。
しかし、これをシステムや組織がうまく回っている理由だと述べるのは片手落ち、重要なところを十分には記述できていない、と私は思います。
「残に応じた、業務の分割と帳簿の分割」
これがシステムの成功にとって、本質的な要因です。
業務プロセスを円滑にするのではなく、自分のやるべきことがあり、完了基準があり、それを達成すれば次に移せるもの、今は残タスクであるもの、このようなものが「残」です。この残に応じて、システムの中に、それぞれのコンポーネントや部署が存在したり新たに作られたりして、そして、それぞれにデータや帳簿を持ちます。システムがうまく回っているのは、これをベースに、分散/非同期/疎結合であるからです。
そして、システムがシステムとしてまとまっている理由は、システムを束ね連携するためのもの、どこに行くかを定め、各所がどういう状況かを把握し、どう指示や調整をするかの判断をするもの、つまり、マネジメント的要素があります。が、これは残を取り扱う場所の外に置いてあります。そして、これによって、コンポーネントや部署が密結合せずに連携することができ、システムが動いているのです。
コンポーネント、ソフトウェア、組織、システム、これらが一つのものとして密結合していて、何でもかんでもやっていて、マルチタスクをやっていては、うまく回らないのは当然のことでしょう。
…このようなことを、杉本啓さんの「データモデリングでドメインを駆動する」を読み、考え、理解していました。
そして、この本で扱われているシステムとよく似たものをずっと私は使っているということ、そして、読み、考え、理解するにあたって現に使っていることを思い出しました。
そう、Zettelkästen です。
Output を出すことは、一つのシステムとみなせます。このシステムの中には多くの残があります。仮説を作り、インプットし、抽出し、考え、メモを作り、ネットワークを作り、というやるべき残タスクをこなし、その上で、比較したり、仮説の否定をしたり、その裏にある先入観を修正したり、そして、Output を出したりするのです。これら、多くの残を Zettelkästen は自然に分割し、かつ、システムとしての連携を行ってくれているのです。
さらに、その残ごとに帳簿も分割されております。インプットと抽出には Bib Cards を使い、考えてメモを作るには Main Cards を、ネットワークを作るには Index Cards と Link Cards(Main Cards の一種)、といった感じです。(以上が、杉本氏の言う SoA に類比できるところでしょう。)
また、自分の知識や考えは変わりやすく、興味も移ろいやすく、異なるものを同じに見てしまう、そういう外部の都合で、メモを壊したり、これまでの全てを変更したり破壊したりすることは望ましくないです。それに対して、柔軟に対応しつつも、不変な構造を保つシステムである Zettelkästen は、Output を出すシステムに制約を設けつつも、良いフィードバックループを与えてくれます。管理する主体は Zettelkästen の中のメモではなく、Zettelkästen の構造もしくはそれ自身、もしくは中にいるゴースト、もしくは、それとコミュニケートする私なのです。
…と、ここまで、杉本氏の提示する基幹系システムと、私の Zettelkästen の類似点を述べてきましたが、2 つは一致するものではありません。
第一に、存在理由が違います。基幹系システムの存在理由は、企業の様々な活動を指示・制御することです。他方、Zettelkästen の存在理由は知識を発展させることです。これら存在理由が全く異なるのですから、現れるものも異なるでしょうし、今後異なる箇所が多く見つかるでしょうし、変化もしていくでしょう。(実際、基幹系システムにおける多次元データに関しては、Zettelkästen では似たような考えはあっても、そのようなデータ構造は現れません。)
第二に、人間の活動、特に探求することや前に進もうとすることにおいて、その行い方の形態はその時の人に合わせて変化していきます。適者生存の生物史においてもそうであるように、杉本氏の基幹系システムの考えと、私の Zettelkästen は、現在の人間の活動として適した形態である、という共通点しかないかもしれません。(ワシとペンギンに羽があるくらいの共通点かもしれません。)
Zettelkästen を使っている私というハンマーにとっては全てが Zettelkästen に見えるかもしれませんが、違うものは違うのです。(†2)
しかし、今回得られた洞察や観察から、私は自分の Zettelkästen 、ソフトウェアの開発と設計、そしてマネジメントが進化しそうな予感を覚えています。
システムがうまく回っているのは、残に応じた業務と帳簿の分割がなされ、そして、その中に管理を設けず外に置くことにより、分散/非同期/疎結合がなされているからです。そして、Zettelkästen においては、同様の理由と仕組みで、知識が発展されているのです。
あなたが今週も知を発展できることを祈っております。
それでは、
青を心に。
Stephen S. Hanada
"Gentleman Philosopher"
†1: 組織やソフトウェアもシステムであるということについては「システムとは共に立つもの」で話しています。
†2: すべてを釘とみなすハンマーになってもなりませんし、すべてを細かくしか見ない洞窟の中の博物学者になってもなりません。 ref: 「ハンマーにとって全ては釘」