冷たい客観 と主観たち

久しぶりの更新。
腎盂腎炎という病気になってしまい、急遽病院に入院(2泊)していた。最初はめちゃくちゃ痛かったが、しばらくすると抗生剤が効いて痛みが嘘のように引いた。今日退院し、あとは抗生剤の錠剤を暫く服用すれば完治するようだ。あー良かった。
で、暇な入院生活中に読んだ本がこれ。

冷たい密室と博士たち (講談社文庫)

冷たい密室と博士たち (講談社文庫)

本全体の感想はここでは置いとくとして、印象に残った一節を引用したい。

・・・喜多や萌絵のような完璧な理系人間は、スター・トレックのミスター・スポックのように、主観の中に絶対的な客観性を持っている。だから、あのような客観的な仮説を主観することが可能となる。彼らは、数値によって現象を理解し、数値によって実物体を取り扱う科学者だ。一方、犀川は、その逆だった。切り替えが可能な複数の主観によってものを見ることが、犀川の客観性なのである。・・・

この一節を読んだときはかなり驚いた。というのも、これは僕がまさに最近、頭を巡らせていた内容にかなり近いものだったから。
僕は「絶対的な客観性」などというものは存在しないと思う。客観とは「切り替えが可能な複数の主観によってものを見ること」だと思う。客体は客体だけでは客体にあらず、主体があって初めて客体がある。object は object だけでは object にあらず、subject があって始めて object がある。主観と客観、subject と object は絶対的なものではなく、相対的かつ相補的なものだ。UMLで言えば、object/subject はロールであってクラスではない。そして、「切り替えが可能な複数の」subect の要求に耐える object が「客観的」で「再利用可能」で「汎用的」な object である。そう思うのだ。
しかし、(特に初期のナイーブな)オブジェクト指向設計ではあまりにオブジェクトに主眼を置きすぎて、サブジェクトが軽んじられていたんじゃないか。「絶対的な客観性」によって設計すれば再利用可能で汎用的なオブジェクトが設計できると信じていたんじゃないか。主観的な視点、サブジェクティブな視点を排除しようとし過ぎたんじゃないか。そんな気がしている。
「絶対的な客観性」という言葉には冷たい感触がある。そんな冷たい客観で設計するのではなく、もっと熱い主観たちで設計しよう。XPに代表されるアジャイル開発は実はそういうムーブメントなのかもしれない。
なぜTDD(テスト駆動開発)するのか。テストとはサブジェクトなのだ。「絶対的な客観性」で設計するのは難しいから、テストというサブジェクトを用意する。そのサブジェクトが開発をドライブする。test/code/refactoring のリズムは、subject/object/refactoring と置き換え可能だ。そう解釈できないか。
なぜリファクタリングが必要になるのか。それはサブジェクトが増えるor変化するからだ。「絶対的な客観性」で設計できれば、それは未来永劫変更の必要のない設計だ。しかしそんなものはあり得ない。だから「切り替え可能な複数の主観」に合わせて客体を変化させていく必要があるのだ。そう解釈できないか。
つまり、僕らはもっとサブジェクティブに開発していいんだと思う。主観に任せて開発をドライブさせてもいいんだと思う。官僚的な方法論では、常に冷静に状況を把握し、あらゆる可能性やリスクを念頭に置き、「絶対的な客観性」でもって仕事を進めよ、と言う。でもそんなの無理だ。「絶対的な客観性」で開発をドライブすることは出来ない。人をドライブするのは、常に主観だ。
オブジェクトとは、「絶対的な客観性」による冷気で結晶するものではなく、むしろ熱い主観のスパイクを何度も打ち込むことによって形作られるものではないだろうか。冒頭で紹介した「冷たい密室と博士たち」の巻末にある文庫版解説には、次の文章が引用されていた。(つまり以下は引用の引用)

・・・一つの新しい芸術が創作されたときに生ずるのは、その作品創作以前に存在していたすべての芸術作品に、同時に生ずる何ものかなのである。現にすでに存在している幾多の作品は、それら相互間に、理念的な意味での一つの秩序を形づくっている。そこへ新しい(真実新しい)芸術作品が入ってくると、その秩序に修正が加えられてゆく。現に存在している秩序は、新しい作品が出現するまでは完結していた。そこへ新しいものが附加され、しかもなおそのあと秩序が保たれてゆくためには、現に存在する秩序の全体がたとえ僅かでも変更されざるをえない。かくして、全体に対する、芸術作品の各々の関係、均衡、そして価値が再調整されてゆく。これが、古いものと新しいものとの間に生ずる順応ということである。
(T.S.エリオット「伝統と個人の才能」)