ジム・ハイスミス氏の「適応型ソフトウエア開発 - 変化とスピードに挑むプロジェクトマネージメント」を読んだ。この本は、複雑系をソフトウェア開発に応用したという内容で非常に面白かった。この本のまとめは後でするとして、ともかく複雑系というものを、もうちょっとまじめに見てみたくなった。
とりあえずは入門ということで「複雑系入門 - 知のフロンティアへの冒険」を読んでみたのだが、これまた面白くて一気に読んでしまった。それぞれは聞いたことがあるトピックスなのだが、あらためて整理してみるとなかなか楽しい。僕の感覚では複雑系というのは複雑なものではない。むしろ直感的で、日常的で、それでいて新鮮だ。
複雑系とは
本によれば、複雑系とは
システムを構成する要素の振舞いのルールが、全体の文脈によって動的に変化してしまうシステム
のことである。これ、別に難しいことを言っているわけではない。たとえば、ある会社を理解するにはどうしたらいいだろうか。会社というものは会社員からできている。とはいえ、単に社員の一人一人の人物像を説明しても、会社のことはわからないだろう。むしろ、彼らがどういった関係で働いているのかが重要だろう。それが証拠に、退社や入社によって構成員は変わるが会社は存続する。逆に、まったく同じ構成員でも組織を変えれば違う会社になりえる。
つまり、"組織化のあり方"こそが、本質だといえるわけだ。
近代科学は、物事を理解するに構成要素を分解していって1つ1つを調べるということをする。これは還元主義と呼ばれているものだ。しかし、前述したように、社会や自然は、要素を分析したところで理解できるものではない。そんな当然の感覚に、これまでの科学では手を出せなかったわけだ。
カオスの体感
この複雑系が面白いのは、自然のような一見すると複雑なものが、実はシンプルな法則でできている可能性があるという点だ。そのキーワードが、カオスというやつだ。
バタフライ効果という言葉をご存知だろうか。ブラジルで蝶が羽ばたくとアメリカで嵐がおこるという比喩で、初期値の小さな誤差が、大きな結果の違いをうむという話である。このカオスを体験するには、お手元のEXCELで十分だ。
昆虫など世代が重ならない生物において、ある世代の個体数Nから次世代の個体数を算出する式として次が知られている。
a × N × ( 1 - N )
× Nは、個体数を増やす力、× (1-N)は個体数を減らす力(増えすぎると、それはそれで困る)ということをしめす。aは定数で、バランスをしめす値になる。では、この式を用いて、ある世代の個体数から次世代の値を求め、その結果から、さらに次世代を求めて、というのを繰り返す。その場合に、定数aをちょっと変えるだけで驚くような結果が生まれる。では、開始値を0.1として50回繰り返す。(この計算をおこなったエクセルファイル(EXCEL95互換))
a=0.9 (0 < a <= 1の時は、0へ収束)

a=1.6 (1 < a <= 2の時は、(a-1)/aに収束。この場合は、0.375)

a=2.9 (2 < a <= 3の時は、(a-1)/aへ振動しながら収束)

a=3.2 (3 < a <= 1+√6の時は、2周期点へ振動しながら収束)

a=3.98 (a >= 3.5699456... の時は、カオス運動)

最後のグラフがカオス運動である。aの値が、3.5699456...というカオス発生点を越えると、途端にカオス運動を起こす。Nは絶対に同じ値をとらず周期も持たない(あるいは無限の周期を持つと表現する)。もし、この5つのグラフから式を探せて言われても、まず無理だろう。
つまり、自然界の複雑に見えることでも意外に簡単な法則で成り立っている、不規則な振る舞いが、実はある規則に従っておきているのではないか、というのがカオスがしめしていることだ。
ここから、さらにいろいろなキーワードが出てくるが、これで1/4というところ。興味があれば、読んでいただきたい。
複雑系へのまとめ
で、僕なりの結論は、複雑系って別に当たり前のことだなと。複雑系による経済学というのが流行っているのだが、そこで論じられていることも当たり前のことだ。僕は経済学科出身だけど、ケインズ経済学ほど不思議なものはなくて、見えざる手によって市場が均衡するならマーケティングなんか流行らない。人間くさく考えれば、知る者と知らない者がいて情報の伝播に時間がかかったり、悪いものでも他の人と一緒っていう感覚が大事だったり、当たり前のことだ。
複雑系というのは、そういう社会や自然ていうものをちゃんと見つめた上で、そこに規則性を見つけたいという人間の知的欲求な気がした。
ソフトウェア開発への適用
というわけで、ソフトウェア開発に応用してみたのがジム・ハイスミス氏の「適応型ソフトウエア開発」。この本の内容が複雑系の人から見て妥当な内容なのかはわからないが、ものすごく当たり前のことを書いている。人が大事、組織の力を引き出せ、決定論的にならず適応せよ。示唆に富み、心に響くキーワードもたくさんある。結局、これまでウォーターフォールが前提としてきたような理想的な世界(未来は予測できる、生産性は常に同じ、情報は一瞬で共有できる)を否定しているわけだ。
ただ、じゃ、どうやって適応すべきかという具体的な内容までは明記されていない(と、思う)。コンポーネントの状態を監視せよというのはわかるが、コンポーネントはどう区切るの?とか。いろいろ考えるのにはよい本だが、答えを求めて読むとストレスがたまると思う。
大事なのは、現実を見つめて、還元的な論理に走らないことだと思う。1は1で、2は2だから、1+2=3というのは妄想である。だから、リスクや可能性を考えて行動する。複雑系とは、当たり前の現実なのだ。
![]() | 適応型ソフトウエア開発-変化とスピードに挑むプロジェクトマネージメント ジム・ハイスミス ウルシステムズ株式会社 山岸 耕二 原 幹 Amazonで詳しく見る by G-Tools |
![]() | 複雑系入門―知のフロンティアへの冒険 井庭 崇 福原 義久 Amazonで詳しく見る by G-Tools |



コメント (2)
http://ised.glocom.jp/ised/
にはシステム論/複雑系畑の若手がたくさん。その著者の井庭さんも。
ところで、複雑系の手法を現実の方法論に活かしにくいのは、その再現性のなさですね。なんせ初期値がちょっと違うと全然違うパターンに落ち込む、あるいはパターンが生じないので。。。
だから複雑系ってのは発見志向の「実験数学」なのであって、目的をもって何かを成し遂げるときに使う、いわゆる方法論的なアプローチには使えない、というかむしろ対極に位置するものだと思っています。
流行りのバラバシあたりは読んどくといいかもですよ。
そういや自分も
http://blog.japan.cnet.com/kenn/archives/001975.html
あたりにシステム論/複雑系ぽい話は書いたなぁ。。。
投稿者: kenn | 2005年05月07日 02:57
日時: 2005年05月07日 02:57
yusukeです。kennさん、コメント&情報ありがとうございます。
たしかに複雑系を体系化した方法論として使うのは無理なんでしょうね。複雑系やネットワーク論は、言われてみればそうねって感じのことですが、目の前の現実に新しい視点を発見することが単純に面白いです。現実の問題に対して、答えがあるというよりも、答えを探そうと思える動機として楽しめました。それ以上、難しいことはよーわかりません(笑)
投稿者: yusuke | 2005年05月07日 15:36
日時: 2005年05月07日 15:36