« DIコンテナとGenericsを利用して品質や効率をあげるテクニック | メイン | アプリケーションにおける足回りの質的変化 »

不安定であることの機敏性

 ヒトと機械のあいだ―ヒト化する機械と機械化するヒトという、はい、好きなネタなので読んでみました(w。面白いのは情報の話。


わざわざ不安定化することで機敏になれる
 そもそも機械的というと単純で融通が利かないものと思われがちです。しかし、変化する状況に応じて柔軟に変化に適応する機械も増えています。その先駆けともいえるのがノーバート・ウィーナーが説いたサイバネティクス

機械の制御入力を希望の出力と現在の出力を比較しながら調整していくことに関する技術である。
   こういったフィードバックによる自動制御はヒトの二足歩行にも関係してきます。足の数は4本のほうが安定します。しかし、
わざわざ不安定化し、制御・調整という情報機能を付け加えることによってより高い次元に進化することができるのである。

 これを示すものとしてあげているのがNASAが開発した航空機X-29。X-29にはCCV(Control Configured Vehicle)という概念が適用されています。この機体が持つ前進翼と先尾翼は空気力学的に不安定であるため、常にコンピューターによる制御を行っていなくてはいけません。

コンピューターが正常に動作していることを前提にすれば、この機体は安定である。この場合、余分な翼がない分だけ、空気抵抗も減るし、不安定であることは機敏な運動ができるということである。CCVは制御優先形態とよばれるように、情報という概念はモノの形を変えていく。


アジャイルに見る情報制御
 この話は、たとえばアジャイルにもつながりますね。アジャイルでは開発チームや外部環境(顧客や顧客のビジネス)が不安定であるという前提に立っています。その代わりシンプルなルールを設けて情報をチームにフィードバックするようにします。こうすることでチームには自立的な制御・調整が働き、結果として安定した力を発揮することができるようになります。

 アジャイルで行われる情報制御はシンプルでなくてはいけません。情報制御を複雑に高度化しても限界があります。実世界は無限の可能性があり、それを完全にルール化することはできません。 一般的なガントチャートによるスケジュール管理が形骸化するのは、制御を緻密にしようとするあまり現実のブレを許容することができなくなるためです。ありがちなのは情報だけが管理されていて、現実が管理されていないという本末転倒な状況です。

 それよりも要所だけをちゃんと抑えておけば、あとは結構自由になるのです。アジャイルでは時間制限(タイムボックス)を設けたうえで、エラーだろうがなんだろうが、ともかく小さな制御を積み重ねていきます。そのほうが制御や調整をいれる機会が多くなり、適切な選択を行うことができるようになるからです。

 逆に言えばアジャイルなチームでは情報機能が生命線です。ここにほころびが出てくるとチームはカオスに落ち込んで崩壊します。大抵の場合は、硬直したメンバーが存在することで、そこだけ情報の循環がうまく行われずに入力信号を正しく捉える事ができなくなることが原因です。


 対してウォーターフォールに見られるような一見して安定的な構造は環境の変化に適応することが難しくなります。フィードバックループが働きにくいため、現場からの声が上まで循環することが少なく、結果として制御・調整が強く働くことはありません。
 とはいえ、特定の状況では二本足ではなくて車輪もキャタピラも有用です。床が完全な平面であれば転ぶことはありません。床を平面に押さえる力があればウォーターフォールも有効な手段です。


 なお少し話を広げればアーキテクチャ全体にも適用できるような話です。動的言語、たとえばメタオブジェクトのように型ではなく名前を重視するアプローチは非常に不安定です。だからこそ、シンプルな規約によって情報を制御することで安定性を得ていると考えることができます。
 ですが、この情報制御そのものは規約という非常に概念的なものであり、コンテキストを強く共有するメンバー内でしか安定的には働きません。ですから、それなりの人数になるとJavaのように、多少硬直化したとしても規約をソフトウェア化して共有化するために静的型付け技術が有用になるのでしょう。


情報をフィードバックするインフラを整備する
 情報を制御することで安定性をえるというのはプロジェクトにおいて非常に重要なことです。繰り返しますが、それは情報をフィードバックするというインフラがあったうえで自立的に行われる制御です。制御のための制御を行ってしまうと物事が複雑化して崩壊します。
 ファシリテーションがいわゆるプロジェクト管理論よりも有用な場合があるのは、こうした点をちゃんと考慮しているからです。ファシリテーションの手法はフィードバックを促進することに大いに役立ちます。

 情報をフィードバックするインフラをちゃんと整備することが、結果的に質の高いマネージメントにつながるのです。

 ヒトと機械(人工物)の歴史を知ると、ソフトウェアも機械なんだなぁと強く思うしだいです。そして、ヒトを機械のように扱う無関心さ。もっとちゃんとヒトを見ようよ、と思うしだいです。
 

4000069527ヒトと機械のあいだ―ヒト化する機械と機械化するヒト
廣瀬 通孝
岩波書店 2007-04

by G-Tools

トラックバック

このエントリーのトラックバックURL:
http://www.arclamp.jp/mt33/mt-tracback.cgi/1964

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2007年05月13日 23:48に投稿されたエントリーのページです。

ひとつ前の投稿は「DIコンテナとGenericsを利用して品質や効率をあげるテクニック」です。

次の投稿は「アプリケーションにおける足回りの質的変化」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type