(2)カテゴリー:もの思う|カテゴリー:技術メモ今日例のスペースシャトル『コロンビア』関連の記事で非常に興味深い記事を見つけました。スペースシャトルはその筋の悪い設計故に今回の事故を引き起こしたというものです。筋の悪い設計によって作られたプログラムが大きなバグやトラブルを抱え込むように。良い機械を設計するには、まず「何をする機械か」という目的を絞り込んで設定する必要がある。その上で目標実現のための仕掛けを、なるべく技術的に無理がないシンプルな形で組み合わせていくのだ。この原則は実はプログラムも同じです。「何をするプログラムか」をまず要求仕様という形ではっきりさせた上で、その実現のためにもっともシンプルな形での実装を行っていきます。余計に高度なテクニックやひねったアルゴリズムなんかはそれだけ難解になりバグも潜みやすければ修正もしづらいのです。いうプログラムはバグ修正や仕様変更がある度に現在のプログラムに無理矢理つぎはぎのパッチを当てるような形で追加修正がされていき、最後にそのつぎはぎのプログラムが破綻して大きなトラブルが起きた時にはもうどこが悪いのかさえ突き止めるのは難しくなっていたりするのです。それは、(この記事を読む限り)今回のスペースシャトルの事故もまったく同じです。オブジェクト指向というプログラム手法の原則の一つは、「なんでもできる」クラス(プログラムの単位とでも思ってください)を作らないということです。ひとつのクラスはひとつの責務を果たすのみに留め、債務過多の状態は避けねばなりません。なけば非常に膨大で難解なプログラムができあがるか、あるいは帯に短したすきに長しなものになるかです。スペースシャトルが辿った運命は後者の方でした。「本来何をすべきものなのか」という目標を見失った創作物は、どんなものでもみじめなものになってしまうといういい例かも知れません。私は、そこがものづくりの本質の一つなのではないかなと思います。「何をしたいのか」、「何を表わしたいのか」、その本来の目的も忘れてただものができあがることのみに焦点を定めて作られたものは、いつも悲しい末路を辿ってしまいます。これは一つの教訓でしょう。私がプログラムを書き、文章を書き、あるいは音楽をやり続ける限り、あるものを作り上げることによって「何がしたい」のか、「何を伝えたい」のか、あるいは「何を表わしたい」のか、その本質を見失わないでいきたいものです。"ものづくりの本質"以下2件のトラックバックはこのページのエントリー"ものづくりの本質"を参照しています。"ものづくりの本質""ものづくりの本質"へのコメントはまだありません。