このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

工学の方法、工学の知

tenさん2005-06-11のエントリー

;; そういう意味で、今回の檜山さんからのトラックバックは、私のエントリの内容
;; に対する反応が無いのが寂しかったですね。

コメントがセミコロン。Lisperか? それともアセンブラ風とか。

というのはどうでもよくて、、、「内容に対する反応…」 -- そうですね、ごめんなさい。スタートとエンディングだけを取り上げたのは失礼でした。

内容に関して、次のところに一言二言加えておきたいと思います:

ここで、heuristic method に関して、「未知の領域への探索を伴なう開発では...」と続いていますが、これはちょっとどうなんでしょう。

確かに、「アカデミックに極めて真っ当に、且つハードにトレーニングされた人々でも試行錯誤するしかなかった」のだろうというのは判りますが、それは、ソフトウェア工学が目的としている暗黙知から形式知への変換、その結果の形式知の体系化や、それらを行なう手法が確立されていない状態だから仕方無くであって、逆に、それを確立するために試行錯誤を行なっていた (る) 様に思うのですが。

他の工学分野でも、経験や実験などにより形式知を導き出し、それを体系立てるという作業は、工学としての研究の範疇であり、工学を学び、それを適用して物を作ることとは別のものではないでしょうか。

もしそうだとするなら、それを以って、ソフトウェア工学でもそうだ、と断言するのは筋が違うのではないかと疑問に思いました。

僕は、工学と理学(自然科学)に境界線を引く必要性は感じませんが、しいて両者の傾向性について言うならば、理学は第一原理からの一貫した説明体系を志向していますが、工学では必ずしもそのような体系に絶対的価値をおいていない、ということでしょうか。

工学では、「理屈(第一原理からの説明)はよく分からないけどうまくいっている状態」を許容しています。「そんなイイカガンなことはない」と思うかもしれませんが、あるパラメータは理論値や計算値だけど、別なパラメータは経験値で、全体としてはイイ線いっている、ということはあるでしょう。

コーエン(Vaughn Koen)という人は、「工学の方法=ヒューリスティックス」と主張しているそうです(イコールです、イコール)。ちなみに、コーエンによるヒューリスティックス(発見的方法)の特徴付けは:

  1. ヒューリスティックスは解を保証しない。
  2. 他のヒューリスティックスと矛盾するかもしれない。
  3. 問題解決における検索時間を減少させる。
  4. それを受け入れることは、絶対的な基準ではなく、直接的文脈に依存する。

コーエンの話は、齋藤了文(さいとう・のりふみ)『「ものづくり」と複雑系―アポロ13号はなぜ帰還できたか (講談社選書メチエ)』という本からの孫引きです。この本は、題名があやしいけど、内容はまともです。

コーエン(あるいはそれを引用している齋藤了文)が正しいとは断言しませんが、ヒューリスティクスが、単に「しょうがなくて行う、行き当たりバッタリの方法」だとは思いません。

理論的に最適であることは保証できないので、「これなら実用上十分だ」とか「文句は出ないね」という落とし所を考えながら、プロセスを制御する、と、そのようなノウハウやスキルが存在する可能性はあります(僕の少ない経験からですが、探索的・発見的なプロジェクトを破綻させない技量/ノウハウは存在するという実感があります)。そして、それがノウハウ/スキルであるなら、それを対象化して定式化して、方法論まで高めることもまた可能なような気もします。

もうひとつ、同じ本からの孫引きを加えておけば、工学者・吉川弘之は、工学の知を「プロセス知」と呼んでいるそうです。つまり、先達が試行錯誤して作った静的体系を適用するのが工学ではなくて、先達が試行錯誤からくみ取ったプロセスをまた再び(より良く、しかしある程度の試行錯誤も含めて)実行する営みだ、ということらしいです。「知」とか「ワザ」が、確定した体系ではなくプロセスにある、というのは僕には納得しやすいですね。