Joel on Software

そうそう、私は、あなたのソフトウェアの顧客の言語とプログラマの言語の間の翻訳について、秘密をお教えすると約束していたんだった。
氷山の90%は水面下にあるのを知っているだろうか?そう、多くのソフトウェアもそうなのだ----それはプログラミング作業の10%を占めるこぎれいなユーザーインターフェースと、残りの90%を占める隠れた部分からなっている。そして、バグの修正が作業時間の半分を占めるという事実を勘定に入れると、UIは5%分の作業にしかならないのだ。PowerPointで見るようなUIの見た目の部分だけに限ったなら、それは1%未満の作業でしかない。
これは秘密ではない。秘密なのは、プログラマ以外の人々はこの事実を理解していない、ということだ。

Joel on Software

Joel on Software

教授にねだって、研究室で買ってもらったのだが、実に良い本で、思わずバイブルとして自分で一冊買ってしまいそうだ。

私はまだ学生でちゃんとしたソフトウェア開発の経験はないので、偉そうな事は言えた義理ではないが、ソフトウェア開発に関わっていたり、将来関わる予定の人はぜひ読んでほしい。特に同学部の皆と、同じくプログラムを学んでいるD、そして現役プログラマのYUNは今すぐにでも読むことをお勧めする。


上の引用は、特に関心を持った個所の一つだが、きちんとソフトを作ったことが無い私にも、このことは何度も何度も体験したことがある。

たとえば、以前友人がバイトの仕事のダイアログベースのプログラムについて聞いてきたときの話だ。( http://d.hatena.ne.jp/Tukioka/20060319 )
その友人は、GUIプログラムの経験がほとんどなかったので、VC++MFCプログラムについて簡単*1な説明をして、簡単なダイアログベースのサンプルプログラムを友人に送った。

あとはそれを参考にして変更するなり一から作ってもらえばいいかなと思っていたのだが、その友人には見た目(UI)がおかしいやらコメントが少ないなどとツッコまれ、軽くへこんだorz

「や、だって、それ3分ぐらいで作った外装だし。ってか中身の処理のほう読んでー」的な自己防衛を張りつつ、二人で色々修正したり議論して、なんやかんやでベータ?版は完成し、その後その友人の手によって更なる拡張が施され、今ではバイト先の社内ツールとして利用しているらしい。

今にして思えば、GUIをほとんど触ってない友人にとって、見た目がもっとも重要だと考えていたのだろう。それはもちろん正しい。上の引用が示すとおり、プログラマ以外の人間にとってはUIが全てなのだ。あのとき、意見が食い違った原因は上の秘密を私と友人が知らなかったことだろう。


ちなみに、相手がプログラマでこれはサンプルプログラムだと軽視してコメントをほとんど書かなかった事は、実に恥ずかしいミスだった。そもそもコメントは(自分を含む)プログラマに対してかかれる物なのだから。WindowsAPI関数を知らない友人にとっては、このろくにコメントもついてない、汚いソースは、いきなり対有機生命体コンタクト用ヒューマノイド・インターフェース同士の戦いに巻き込まれて、高速詠唱を見せ付けられたような物だったに違いない。


ほかにも、学校のJavaの授業で作った、見た目(うわべ)は動作するがバグだらけ*2テトリスもどきが、先生も含め周りからかなり不適切な(過剰)評価を受けていたことのども、この秘密に起因するのだろう。


なんにしろ、この秘密について言いたかったことは、なんで対有機生命体コンタクト用ヒューマノイド・インターフェースがちゃっかりキーワード化してるんだ?という点に他ならない。違った、人は見た目にだまされるということだ。

過大評価も過小評価もされると厄介なもので、この本には適切に評価されるための簡単な方法も紹介されている。
念を押してもう一度言っておこう、ぜひ読んでほしい。

*1:いいかげんとも言う

*2:ひどいときは起動すらしない(--;