2006-02-22

インタフェースの話 インタフェースの話 - Nao_uの日記 を含むブックマーク はてなブックマーク - インタフェースの話 - Nao_uの日記 インタフェースの話 - Nao_uの日記 のブックマークコメント

それから、これは個人的な意見ですが、プログラマはコンピューターの扱いになれているから、そうでない人が使うためのインタフェースを設計することができない、みたいな話をときどき耳にしますが、僕はそれに懐疑的です。インタフェースをうまく設計できない人というのはプログラマに限った話じゃない。それは「プログラマは営業ができない」と乱暴にまとめてしまうのと同じようなこと。

たぶん、プログラムができるかできないかということと、インタフェースをうまく設計できるかできないかというのはあんまり相関がないように思います。むしろコンピュータの世界では、プログラマは頭のなかで思い描いたインタフェースを実現する手段を最も良く知っている部類の人で、インタフェースを作るセンスさえ持ち得れば、それ作るのにもっとも適した人たちなんじゃないかと思います。

何事においても「センス」というものは意識して時間をかければだれでもある程度、最低限必要なレベルには到達できるものだろうと思う。あとはそれを意識してやるか、やらないのか、何に時間をかけるのか、の違いだけで。

特にウェブアプリケーションを作るなんて話で議論になると「初心者」という単語が良く出てきます。「初心者にもやさしい」とか「初心者でも扱えるように」とか。でも、初心者っていうのは3年後は初心者じゃない。上級者は3年後も上級者だろうけど。そして本当に初心者である期間はほんとに短い。だから「初心者にわかりやすい」みたいなところを中心に議論を進めると、罠にはまる。

そのアプリケーションを使って欲しいのは本当に初心者なのか。その初心者は、1年後には初心者じゃなくなっているんじゃないのか。初心者に合わせて作ったものは、1年後にはその成長した初心者にとって価値を提供し続けられるものでいられるのか。

だから、「使い易い」というのと「初心者にわかりやすい」というのは別の話なんだ、そういう風に考えながら色々改善する。「初心者"にも"分かりやすい」のはもちろんベストですが、それが「初心者向け」に変化してしまって、やたらと説明文の多い設定画面だとか、最小限で済むはずのインタフェースが冗長になってしまったりとか、そういう罠にはまらないように。

「根本的な部分が直感的で使いやすい」ということが前提の話だけど、プロがプロのために作るツールは、初心者が入りやすいだけのツールとはまた違った設計思想が必要なのだろう。必ずしもGUIにすれば使いやすくなるとは限らないし。


常に言い訳を考えておく 常に言い訳を考えておく  - Nao_uの日記 を含むブックマーク はてなブックマーク - 常に言い訳を考えておく  - Nao_uの日記 常に言い訳を考えておく  - Nao_uの日記 のブックマークコメント

インターフェースというものは、何も意識していないと、ついつい不親切な配置・設計を行ってしまう。「自分さえ分かればいい」と手を抜いた経験もあるだろう。そんな事態を避ける為に、「自分は何故こう配置しているのか」という理由を考えながら設計するべきだ。もちろん、『言い訳』なので完璧な理論的根拠がなくてもいい (インターフェースに最善はそうそう無い)。いい加減な理由でも、『口ごもる』よりは幾分ましだろう。例えば、

  • メニューアイテムの位置 (何故ここに置いたのか?)
  • メニューアイテムのキャプション (他人が見ても意味が分かるか?)
  • 各種デフォルトの値 (多くの人に適切な値か?)
  • コントロールの配置 (操作しやすいか? 見栄えは良いか?)

などは、じっくり考えておくべきだし、それがアプリケーションの直交性の高さ・使い勝手の良さに繋がるものだと思う。

「言い訳」というと後ろ向きに聞こえるけれど、すべてにおいて「なぜこの配置・この操作系なのか」という理由を考えながら作っていかないと、簡単に使いにくいものになってしまうものなんだろう。とくにデザイナーの人にはデザイン的な見栄えだけでなくもう少しこういうことにも気を配ってくれれば、と思うことも・・・。

逆にプログラマの人にはプログラムの組みやすさ以外のことももうちょっと考えてくれれば、と。


UIとアルゴリズム UIとアルゴリズム - Nao_uの日記 を含むブックマーク はてなブックマーク - UIとアルゴリズム - Nao_uの日記 UIとアルゴリズム - Nao_uの日記 のブックマークコメント

ビル・アトキンソンという世界でもトップのプログラマが居た。彼は初代MacintoshのQuickDrawというグラフィック描画機能を作ったことで有名だ。

円と楕円の高速表示に成功したアトキンソンは、それを見たスティーヴ・ジョヴズに「次は角が丸い四角形を描画できるようにしろ」と言われた。しかし、アトキンソンは拒絶した。

「たかが四角形が角丸四角形に成ったからと言って、大差はないだろう。それに角丸は(当時の)プログラミングテクニック的にめんどくさいから、そのコストに見合った成果が有るようには思えない。作るのがめんどくさいんだから必要だとは思えない」というような発想をしたのだと想像する。

結局、アトキンソンはジョヴズに強く説得されてしぶしぶ角丸四角形を実装した。のちに角が丸いウインドウによって、Macが親しみやすいGUIと優れたデザインを持っていると評価されて、ジョヴズの美的な判断が正しいことが証明された。(現代でもCSSで角丸デザインをする方法がTipsとして重宝されていたりするので、デザイン的に角丸四角形の需要が高いことは説明不要だろう)

この話でポイントなのは、優れたプログラマが持つ「プログラミングするためのコスト」という基準によって、一般的なユーザーが持つインターフェースや見た目に対する基準を見誤ってしまうことだろう。

プログラマは「こんなに組むのがめんどくさい要素だから、これは大した差ではない」と思い込んでしまうことってないだろうか?

ユーザーインターフェースを考えるときにはアルゴリズムのことなんて忘れるべき、と。

実装なんてどうとでもできる。