「プログラマが知るべき97のこと/「人間」を知る」の版間の差分

削除された内容 追加された内容
http://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/ (cc-by-3.0-US)より転載
 
編集の要約なし
13行目:
たとえば、ルートヴィヒ・ウィトゲンシュタインは「哲学探究」などの著書の中で、「私たちが互いに話をする際には言語を使うが、私たちの頭の中にある思考や発想、画像などが、そのまま言語に変換されて他人の頭に送られるわけではない」という主旨のことを言っています。開発するソフトウェアの要件を顧客に確認する際に、十分注意が必要な理由の一部は、少なくともここにあるのでしょう。ウィトゲンシュタインはまた、私たちがお互いに理解し合うためには、「定義の共有」ではなく、「経験の共有」が必要だと言っていました。生きていく中で得た経験に共通する部分がないと理解し合えないというわけです。ソフトウェア開発の場合、問題領域に関して経験のあるプログラマの方が、経験のないプログラマよりも良い仕事をすることが多いですが、そうなる理由もそれでわかるでしょう。
 
ジョージ・レイコフとマーク・ジョンソンは著書「レトリックと人生」の中で、言語は大部分が比喩的なもので、その比により、私たちが世界をどのように見ているかがわかるということを述べています。金融の世界でよく聞かれる言葉に「キャッシユフロー」というのがありますが、このような具体的事象を指す言葉にも、やはり比的な部分はあります。「フロー(flow : 流れ)」という言い方をするからには、お金を液体のように捉えている、ということになるからです。この比によって、お金を扱うシステムに対する私たちの見方がわかります。また、ソフトウェアの世界の、「プロトコルのスタック」「レイヤー」といった言い方や、「ハイレベル」「ローレベル」といった言い方にも同じようなことが言えます。こういう言い方をすると、ユーザを「上」、コンピュータやソフトウェアを「下」とみなすことになるからです。私たちがシステムの構造に対してどう考えているかが、こうした言葉からわかるのです。このように物事をいくつかの層に分割して捉えると理解が容易になることがあるため、人間はよくそういうことをします。
 
マルテイン・ハイデガーは、「道具(ツール)」というものに人間がどう関わるかを詳しく考察しました。プログラマの場合は、ツールを自ら作ることもあり、使うこともあります。以前に作られたツールを改良することもあれば、同様のツールを新たに作り直すこともあります。プログラマは、ツールには強い関心を持ちます。しかしユーザはどうでしょうか。ハイデガーが著書「存在と時間」で言っているとおり、道具というものはそれを使う人間にのみ理解できる存在です。使わない人間にとっては目に見えない存在なのです。ユーザにとってツールは、正しく機能しなくなってはじめて関心を持つものかもしれません。ツールの使い勝手などについて話し合う際には、こうしたプログラマとユーザの意識の「ずれ」を念頭に置いておくべきでしょう。