« 仲間意識にもとづく残業 | トップページ | 「わかりやすいシステム」のためにオーディションを »

2007.02.04

「定義すること」が苦労の始まり

 システム開発の仕事は「定義すること」の積み重ねである。データ項目を定義し、帳簿を定義し、仕事のまとまりを定義し、データの処理手順を定義する。これらの諸定義を扱うためのしくみをさらに定義して、組み立てる。

 定義できない要素に対して、業務システムは無力だ。事前に内容を定義できない仕事向けには、支援プログラムも業務マニュアルも用意できない。また、事前に様式化できない情報については、摘要欄で自然言語か何かで記述してもらわざるを得ない。XML等を使ってタグ付きで保管することも可能だが、局所的なものでない限り、処理ロジックはその種のアドホックな様式には対応できない。

 定義できない要素に対応できないというのは、業務システムに固有の制約ではない。法律や社会制度や学問体系といった、およそ言語を基礎にして出来上がっていて、かつ対応する現実が存在するような体系に共通する特性である。

 では、その種の体系において、扱われる諸要素をきちんと定義できさえすれば問題がないかといえば、そんなことはない。体系がいつまでたっても不完全であるかのように、変更要求が上がり続ける。この問題の根本にあるのは、「扱う現実の連続性」に対する「用いる言語の不連続性」だ。アナログな現実をデジタルな言語で捕捉する際の齟齬(そご)から来る問題とも言える。けっきょく、実効的なものを求める限り、体系が完全なものとなる日は来ない。

 たとえば生物学では、界、門、綱、目、科、属、種といった階層で生物種を分類する。しかし、それぞれの階層間の中間的な生物形態があっさりと見出されてしまったりする。亜属、亜種といった階層を導入することで分類学者は対応しようとするが、亜種と種の間の存在が見出されるのは時間の問題である。

 また、変異を繰り返して種が増えてゆくことが進化であるが、種Aが種Bになる瞬間が存在するのだろうか。そんなことを悩んでも実りは小さい。そもそも属や種といった概念が、人間の都合で想定されたものでしかないからだ。生物相は人間が用意した枠組みとは無関係に、今も昔も超然と存在し、変化し続けている。

 この事実は、管理対象を定義した結果の巧拙が問題の本質ではないことを示している。対象をどんなにうまく定義できたとしても、遅かれ早かれ定義Aと定義Bの間に、新しい定義要求が無限のスペクトルを持って立ち現れる。「定義」は、扱うべき現実の一部を人間が特定のタイミングで恣意的に切り出したものでしかない。定義するという行為そのものが誤謬(ごびゅう)を含んでいるということだ。

 このような問題から切り離されている稀有な分野が数学である。数学概念には「対応する現実」が存在しないからだ。つまり、体系に触れ合う現実の量が少ないほど、「定義することの誤謬」に伴う問題は小さい。いっぽう、法律とか業務システムといった体系は、現実と触れ合う部分がことのほか大きい。その種の体系を確立した直後から、宿命的にいろいろな問題が生じ始める。

 システム開発は難しい。その根本的な原因は、扱われる要素が複雑膨大だからでも、関わる人間が多いからでもない。連続的かつ流転することをやめない現実を、不連続で静的な「言語」で捉えようとする点こそが困難の源だ。分析しようが写実しようが「開発」しようが、システム要件を「定義すること」がそもそもの苦難の始まりなのである。なんとも因果な仕事を選んでしまったと思うが、面白いんだからしょうがないんである。

|

« 仲間意識にもとづく残業 | トップページ | 「わかりやすいシステム」のためにオーディションを »

コメント

タイトルを見て「定義が不要な新手のシステム論か?!」と思って、ついつい期待しまいました。(笑)
定義にかかるコスト(お金という意味ではなく広義での…)は、全コストの下限と見てもよさそうですね。

投稿: 通りすがり | 2007.02.27 13:08

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 「定義すること」が苦労の始まり:

« 仲間意識にもとづく残業 | トップページ | 「わかりやすいシステム」のためにオーディションを »