プログラマが知るべき97のこと/最初が肝心

私は他人の仕事にはまったく興味がありません。

私の目の前には解決すべき問題が山と積まれているのです。To-Doリストーは恐ろしく長くなっています。とても他人のことまで考えてはいられません。そんな私がもし他人のWebサイトにアクセスするとしたら、その理由は、まず間違いなく自分の抱えている問題の解決に役立ちそうだからです。多分、自分の抱える問題の解決に役立ちそうなソフトウェアがそこで手に入るという噂でも耳にしたのでしょう。かなり疑り深い人ですから、きっと大して役には立たないだろうと思いつつアクセスしているはずです。

サイトにアクセスをしたら、私はまずタイトルを見て、次に、どこかに青い下線のついた"Download Now"という文字列がないかを探すでしょう。私は通常、英国のIPアドレスからLinuxのブラウザを使ってWebサイトにアクセスします。なので、できればヨーロッパのミラーサイトからLinuxバージョンをダウンロードしたいと思っています。しかし、そのあたりのことについて、逐一希望を尋ねられて答えるのは面倒です。"Download Now"をクリックしたら、あとはダウンロード先のフォルダをダイアログで選択するだけで他に何もしなくてもいいというのが理想です。

人が何かをする時には、費用対効果が非常に大切な要素になります。皆自分の中に基準があって、費用対効果がその基準を上回りそうな行動は取りますが、基準以下と判断した行動は普通取りません。どんなに有用なものがあっても、それを使うのに手間がかかりすぎると判断すれば、他のもっと手間のかからないものを探すでしょう。つまり、有用性が同じであれば、手間のかからないものほど有利ということです。

ソフトウェアの場合は、まず、インストールにかかる手間が大きな問題になります。それは大した問題ではないだろう、と思う人は、コンピュータのダウンロードフォルダの中を見てください。.tarファイルや.zipファイルが大量に置かれているのではありませんか?

しかし、そのうち、解凍したのは何パーセントくらいでしょうか。要するに、実際にインストールしたものはどのくらいあるか、ということです。インストールしたのはせいぜい1/3くらいで、あとはハードディスクの肥やしになっているという人が多いのではないでしょうか。

手間がかからないというだけでは十分ではありません。どれほどインストールが簡単でも、自分にとって不要なものをコンピュータに置きたいと思う人はいないでしょう。関連ファイルが果たしてどこに置かれるのか、それがインストール前にわかるということは重要です。自分のコンピュータの中が他人に荒らされるのは誰にとっても不愉快なものです。ソフトウェアをインストールした際に、勝手にあちこちに関連ファイルを置かれるのを嫌がる人は多いでしょう。ソフトウェアがやっぱり気に入らないので削除したいと思っても、ファイルがあちこちに整理されずに置かれていれば手間がかかってしまいます。ファイルがどこに置かれるかが事前にわからないようなら、インストールをやめてしまう人も多いはずです。よほどメリットが大きくなければ、マシンの状態を今のまま維持したいと思うのが人間の普通の感情だからです。

GUIベースのソフトウェアをインストールした場合、期待するのは、操作が簡単であることです。ごく簡単な操作だけをして、すぐにその結果が得られるというのが何よりありがたいのです。その点から言えば、ウィザードが動いたりするソフトウェアはあまり嬉しくないということになります。ウィザードは裏で何をやっているかがわかりにくいからです。ファイルの読み込みや書き出しくらいの操作はするでしょうが、プロジェクトの作成ディレクトリのインポートなどはできればしたくない、という人が多いでしょう。またEメールアドレスを通知するよう求められたりすれば、嫌がる人はさらに増えるはずです。もしそういう操作が必要ならば、すべてチュートリアルに明記しておくべきでしょう。 ライブラリをインストールした場合には、サイトにクイックスタートガイドの類がないかを探す人が多いでしょう。そこに、5行くらいのごく簡単なプログラム例が載っていて、実行結果も明記されていれば重宝がられるはずです。巨大なXMLファイルやテンプレートが用意されていて、空白部分をたくさん埋めなくてはならないというのは嫌がられるでしょう。それはスクリプト1つですべて済むというのが喜ばれます。重要なのは、同じようなフレームワークが2つあり、両者がライバル関係にある場合、その両方をダウンロードする人が多いということです。比べて使ってみてどちらが良かったか、という噂はきっとすぐに広まるでしょう。 ソフトウェアにはチュートリアルをつけることは多いと思いますが、その内容がわかりやすいかも大事な要素です。何を言っているかまったくわからないようだと意味がありません。 チュートリアルに、まさに自分の抱える問題の解決法が書かれていれば、ユーザは非常に喜びます。そういうチュートリアルなら読む気になりますし、読むのが楽しいでしょう。私も紅茶を飲みながら(英国人なのでやはり紅茶です)じっくり読むと思います。チュートリアルのプログラム例などを参考に使い方を理解し、その結果見事問題が解決できれば、私なら開発元に感謝のメールを送るかもしれません。また、クラッシュしたときにはバグレポートを送り、将来の改良のための提案もするかもしれません。「これ使ってみたけど、良かったよ」と友人にも推薦するでしょう。ライバルの製品の方がひょっとしたらいいのかもしれませんが、問題さえ解決できれば、そんなことはどうでもいいのです。重要なのは、ユーザが製品を使い始める段階でつまずかないよう、十分に配慮がなされているかどうかなのです。 インストールしたソフトウェアが十分に役立ってくれれば、私なら、最初に疑っていたことなど、きれいに忘れてしまうことでしょう。