FogBugz 4½と主観的幸福感

From The Joel on Software Translation Project

Jump to: navigation, search

Joel Spolsky / 青木靖 訳
2006年5月16日 火曜


FogBugz 5.0を予定より半年早くリリースすることになった顛末について話させてほしい。

これは少しばかり長い話になる。

カナダの学生たちが自分でカンファレンスを開こうと思いたち、計画を立てると、私に講演を依頼してきた。2年ほど前のことだ。

大学生というのは最高の聴衆だ。彼らは何にでも笑ってくれる。私はいろんなアイデアを手当たり次第にかき集め、それからインターネットでダウンロードした画像(そのうちの1つを右に載せておいた。これは火星の生命の存在を証明する写真だ)を使ったたおかしなスライドを作ったのだが、彼らはたいそう面白がってくれた。

このときの講演のテーマの1つは、私がPsych 110から学んだもっとも重要な事実を元にしていた。すなわち、人は環境をコントロールできるとハッピーになり、環境をコントロールできないと不機嫌になるということだ。

(実際には、「ハッピー」だとか「不機嫌」だとかいった言葉を使うと大学では認めてもらえないので、本物の心理学者たちは「繰り返される失敗は作用体験を阻害し、主観的幸福感を減ずる結果となる」みたいな言い方をしている。)

人々がまわりにあるものを直接コントロールできるようにしてやると、多かれ少なかれ、彼らはハッピーになる。これはマニュアルシフトを好む人たちがいる理由を説明している。これは鈍いユーザインタフェースを使っているとイライラし、気が沈む理由を説明している。これはCDを聞こうとするだけでウィルスがインストールされるようにしたソニーに対し、みんながなぜあんなに怒ったのかを説明している。

あなたがソフトウェアデザイナなら、これこそ力を入れるべきところだ。世界をより良くするために意味のある何かができる大きなチャンスが、ここにはある。たとえその製品がおおよそ考え得る限りもっとも退屈な会計ソフトであったとしても、ユーザがコントロールできるようにするソフトウェアをデザインすることで、ユーザをよりハッピーにすることができるのだ。これはごく些細なところでもやることができる。

  • 私がこの6年間使っている簿記ソフトは、取引を記録するときにビープを鳴らしてくれる。
  • Apple iPodは小さなスピーカを内蔵していて、サムホイールを回したときにクリック音を立てるようになっている。
  • デジタルミュージックシステムのコントローラにはモーションセンサが組込まれており、手に取るとすぐ画面が明るくなるようになっている。

同様にユーザをうんざりさせることだってできる。

  • 最近の携帯電話の多くは電源ボタンが軽く、電源が入るのには延々と時間がかかる。電源ボタンを押しても携帯は操作を無視したように振る舞うので、ボタンの押し方が弱すぎたのかどうかも分からない。
  • 映画のDVDを作っている人たちは、メニューや早送りボタンを無効にして広告やばかみたいなFBIの警告文を表示するのがOKだと思っている。
  • Webブラウザはセキュリティの問題に、限りなく続くと思えるたくさんのモーダルポップアップを繰り出すことで対処している。そして家に押しかけてきたNFLのラインバッカー3人にフットボールを無理やり見させられることをあなたが本当に望んでいるのかと確認するのだ。
  • Sonosのコントローラにあるサムホイールは敏感すぎて、メニューを選ぶときにさんざいじり回すことになる。あるいは私の指が太すぎるだけなのかも。

去年頃から多くのWeb開発者たちが、Ajaxとして知られるようになったテクニックを使い、アプリケーションを改良すべく努めてきた。これらのアプリケーションはJavaScriptを使っていて、何かをクリックすると、Webサーバがゆっくりしたペースで新しいページを送り返してくるのを待つことなく、即座に反応する。サーバからもっと情報を取ってくる必要がある場合には、サーバがまるまる新しいページを生成するのを待つのでなく、断片的なデータを必要なだけダウンロードする。この結果として得られる、早く、てきぱきとした反応は、ユーザにコントロールしている感覚を与え、「主観的幸福感」を生み出す。つまり、ユーザをハッピーにする。これは生物化学的には、でっかいチョコレートを食べるのといっしょなのだ。

ちょっと待って・・・事実関係を確認しておくから・・・

・・・OK、できた。結論を言うと、Ajax = チョコレート = ハッピーってことだ。だから私たちがFogBugz 5.0のプランを練り始めたとき、Ajax機能がこのリリースの重要な要素になるだろうと思っていた。

ユーザがFogBugzでほとんどの時間を過ごす場所が2つあって、それはバグレポートの参照と編集を行うバグ詳細ページと、バグレポートを一覧し、ソートし、スライス&ダイスするバグ一覧ページだ。バージョン5.0では、この2つのページについて、JavaScriptとAjaxでユーザ体験を改善できそうなところはすべて、徹底的にやることにした。

たとえばバグ一覧ページでは、ベンがカラムをドラッグ&ドロップできるようにし、複数のバグを選択する新しい直感的な方法をたくさん付け加え、カラムの幅を変えたり任意のデータに対するカラムを追加できるようにした。これはクライアントサイドで行われ、とても素早くやれる。

1件のバグや1通のe-mailを見るバグ詳細ページでは、ブレットが「編集」コマンドや「返信」コマンドをクライアント側で、サーバとのラウンドトリップなしにブラウザ上で即座に実行されるようにした。結果として、何件ものバグを処理したときのサーバとのラウンドトリップの回数が半分ほどになり、ユーザ体験は全体としてずっと機敏になった。ユーザはコントロールする感覚が得られ、よりハッピーになる。いい感じだ!

ブレットはまた、以前から入れたくてうずうずしていた機能を忍び込ませた。すっごくたくさんのキーボードショートカットだ。しかしユーザが覚えなきゃいけないショートカットはたった1つだ。Ctrl+; でFogBugzはキーボードモードに切り替わり、画面上のそれぞれのコマンドに対するショートカットが何か思い出させてくれる小さな文字が浮かび上がる。バグレポートの人への割り当てや、編集や、優先度の付け替えをたくさんのバグについてやる場合、それをマウスを使わずにキーボードだけでできるというのは本当にクールだ。Ajaxのスピードと反応性が組込まれ、FogBugzはほとんど、クリーニング屋にあるDOS 2.0キャラクタモードデータベースアプリのレベルのスピードと円滑さを手にした。そしてこれはWebアプリケーションとしてはすごく反応がいいということだ。

FogBugzはホスティング提供される製品ではない――顧客はソフトウェアを買って自分のサーバにインストールする――ので、リリースを多くしすぎないように心がけており、それぞれのリリースが非常に安定したものになるよう努めている。しかし私たち自身もまたFogBugzのサーバを持っており、これが会社を動かしている――会社宛のe-mailを分別し、バグや開発中の要件をトラッキングし、採用のためのデータや履歴書ファイルを管理し、Faxを処理し、注文書を管理している。私はBest Software Writingの次の版の編集にまでFogBugzを使っている。

自分のドッグフードを食べることの極端な形態として、開発者たちは自分で使う最新のビルドを数日ごとに立ち上げ、バグをたたき出せるようにしている。

新しいAjax機能を自分で使っていて、それが気に入るようになると、私たちがFogBugzに追加した機能でこれほど大きなものは久しくなかったと思うようになった。それでこの新機能をできるだけ早くリリースすることにした。完全なベータサイクルを実行するのには何ヶ月かかかるし、計画されている他のバージョン5.0の機能ができるのを待つよりは、すぐに顧客にリリースするほうがいいだろう。

それが現在の状況というわけだ。今日リリースするのは、本当のところFogBugz 4½とでも言うべきものなのだが、これを5.0と呼ぶことにした。分数がなくとも人生は十分込み入ったものだからだ。私たちはまだ「いいソフトウェアには10年はかかる」法則の6年目だが、もう60%以上の所まで来ているように思う。FogBugzのホームページをチェックして欲しい。オンラインデモがtry.fogbugz.comにある。


(オリジナル: FogBugz 4½ and Subjective Well-Being)

戻る

Personal tools