前回は「ウェブサイトをシンプルに保つ」ということについて考えてみました。シンプルに保つのは開発者だけでなく利用者にとっても,メリットの多いものだけど,油断するとどんどんシンプルさは失われてしまうので気をつけよう,という話でした。そこで重要となるのが,いかに多くの人の要望や意見をまとめて,シンプルな形で実現するか,ということを考えることです。

 が,これはなかなか誘惑が多くて難しいわけです。なぜなら,一つはちょっとした機能の場合,エンジニアはついつい「いろいろ考えるより実装したほうが早い」と考えてしまいがちなことがあります。そしてまた,受けた要望をまとめようにも,みんな意見がまちまちで,まとめられないことも理由として挙げられるでしょう。

利用者はわがままなもの

 誤解を恐れずにいいますが,利用者はとってもわがままで,自分のことしか考えていないものです。と言っても,利用者はあなたのサイトを「自分が」実際に使った経験に基づいて使いやすさ,使いにくさを判断しますから,これは当たり前のことで,客観的に判断してくれることなんて期待することのほうが間違っていると言えるでしょう。むしろ,直感的に判断した意見というのは,本質をよくとらえている場合もあるので,使いやすさを向上させるための重要な情報だと思います。

 しかし,利用者の意見というのは本当に人によってばらばらなもので,文字を大きくすれば「大きすぎる」と言う人がいて,小さくすれば「小さすぎる」と言う人がいたり,色合いやボタンの位置,ページ遷移やメニューの項目など,正反対の意見が同時に出てくる,といったことがよくあります。一つの意見を取り入れて画面や機能を変更したら,すぐさま他の利用者から「なぜ使いにくくするんだ」という意見がやってくる,という経験,したことはないでしょうか。

 人によってこれまでの経験や好み,思考のパターンは異なっていて,使いやすいと思うインタフェースや必要だと思う機能はそれぞれ異なっています。前回はそんな中でも本質を見極められるといいよね,という話で,これはこれで理想的なことなのですが,いろいろ検討して実装した機能に対して,「自分は必要ないしうっとおしいから機能を停止してほしい」なんて言われたときをはじめ,どうやっても互いに相反する意見を同時に解決できないことも,やっぱり,出てきてしまうんですよね。とても悩ましいし,せっかくがんばって実装した機能を「なくしてくれ」とか言われると,すごくがっかりしてしまいます。精神衛生上よろしくないです。

 そんなときに,(考えるのが)非常に楽な解決方法といえるのが「利用者が設定で機能をカスタマイズできるようにする」というものです。つまり,設定画面を用意して,どんな機能を利用するか,しないか,どういった画面構成にするか,といったことを利用者が自分の使いやすさに合わせて決められるようにすることです。

 インターネット上で公開されているサービスの中にも,カスタマイズ機能を提供しているものは多くあります。ということで前置きが長くなりましたが,今回はカスタマイズ機能について考えてみたいと思っています。

カスタマイズ項目は際限なく増えてゆく

 今回考えたいことというのは,「カスタマイズ機能なんて不要だ!」ということじゃありません。というかむしろ,カスタマイズ機能ってすごく便利だと思いませんか? よく利用するサービスは特に,自分の好きなようにカスタマイズすることでずっと使いやすくなると,筆者も思っています。そして,ウェブのシステム・サービスを開発する側からみても,利用者に個々に使いたい機能を選択したり,見た目を決めてもらうことで,利用者がそれぞれ求める「使いやすさ」を実現することができるこの機能は,いわば,利用者の要望にできる限り答えることができる究極の機能みたいなものです。

 しかしそんな究極の機能だからこそ,取り扱いはすごく難しいなあ,とも思います。今回考えて行きたいことは,カスタマイズ機能のはらむ危険性というか,どういう問題点があるのか,ということについてです。

 一番大きな問題は,カスタマイズ機能を一度実装してしまうと,カスタマイズ可能な項目を際限なく増やしていかなくてはならなくなってしまう危険性が非常に高くなるということです。

 例えば,ある一つの機能について,必要だという意見と,不要で邪魔だから付けないでくれ,という意見をどうしても調整できず,利用者がそれぞれ自分でその機能の有無を設定できるようにしたとしましょう。そうしたらおそらく,次に似たようなことが起こったとき,必ず「カスタマイズ機能で設定できるようにしてほしい」という意見が出てきます。それは,利用者がそのシステム・サービスにカスタマイズの機能が用意されていることを知ってしまったからです。

 これは極端なことを言えばパンドラの箱を開けてしまったようなものです。一度カスタマイズの機能をつけてしまうと,その後利用者からの要望を受けたとき,シンプルさを保つために,熟慮を重ねて実装を見送ったり,異なる形で実装を行っても,「カスタマイズが可能なんだからこちらの要望を受け入れてくれ」と言われてしまったりします。どんなに,受けた要望が結局はサービスやシステム,そして利用者のためにならないと説明しても,カスタマイズできるんだから問題ないじゃないか,という話になってしまう危険性があるのです。

コードが複雑になってバグの入り込む余地が増える

 さらに,カスタマイズの項目が増えてしまうことは,様々な問題を引き起こします。まず一つは,カスタマイズのための設定項目が増えすぎることで,どんな設定項目があるのか,目的とする機能はどこで設定できるのか,といったことがわかりにくくなってしまうことです。

 ウェブのシステムじゃないのですが,次に示すのは筆者がいっつも非常にわかりづらいと思うMicrosoft Office Word 2003(以下Word)の設定ページです(図1)。