ユーザビリティと驚き最小の法則について

驚き最小の法則という言葉を、ぼくはRubyコミュニティ界隈から学んだような気がするんだけど、これはユーザビリティにとっては非常に重要な考え方だよね。いままでつらつらと書いてきたLeopardレビューも、この法則を軸にして考えている気がする。

http://www.seshop.com/lib/redir_url.asp?url=%2Fbook%2Fpreview%2F200212%2F4-7981-0228-8-ruby.pdf

だから、以下に書いたことはほとんど上に書かれていることの言い換えになるのだと思う。

この法則は、一昔前に流行っていまはあまり聞かなくなった「アフォーダンス」とも関係すると思うんだけど、つまり人間は身の回りのあらゆることに対して「予測」を行ってるということを前提にしようということだと思う。たとえば、ドアノブがついているドアがあったとしたら、それが引き戸だとは思わない。押すか引くかはするだろうけど、横に動かそうとすることはないだろう。だから、環境から一定の情報が得られたら、人間はその振る舞いを意識無意識問わず予測している。世界がこの予測から外れた振る舞いをするときにはじめて、人間はそこに注意を向け、はじめて意識の出番が出てくる。

「予測」というからには、予測を成立させるに足る学習経験が必要だ。そもそもデスクトップメタファの起源は、コンピュータの操作をいかに驚き最小にするかというところにあったはずだ。フォルダの形をしていたら中に何かがあるはずだ、ということは現実世界の経験から引き出せることだからだ。

このように、驚き最小の法則を成り立たせるものは、各個人が持っている世界の分節の仕方に依存しているから、何が驚き最小なのかは、その人が持っている世界観に依存する。現実世界において、扉が引き戸なのか開き戸なのかに関しては、各個人によって違う世界が広がってることはあまりないだろう。しかし、それがコンピュータの上の出来事になった場合は、各個人がそれに対してどういう予測を持っているかは全く違う。ここで次の段階の問題が出てくる。予測を成り立たせる環境に関する学習をどのように導入するかというものだ。予測のためには、ごく少数の具体例から自然な形で一般例を導出できるような抽象性の導入が不可欠である。しかし、コンピュータ上の抽象化には一種の困難がつきまとう。

コンピュータの場合、それが現在一般的に使われているモダンなものであれば、見た目がどうあれこうなっているだろうなという共通理解は成り立ちうる。これは、コンピュータの持っているアーキテクチャに依存している。CPUなどのコンピュータアーキテクチャ、マウスやキーボードなどのインタフェース機器、プロセス管理やファイルシステムやネットワークなどのOSレイヤのデザイン。これらはそれぞれある意図をもったデザインを持っている。これらの仕組みをベースに、それをいかにビジュアル化して見せるのかというところを考えると、たとえば階層型ファイルシステムなら出来るだけそのツリー状の情報を自然にビジュアライズすることを考えるしそれが驚き最小になる。また、人間にとって目に見えるコンピュータ上のものはすべて「ファイル」として考えよう、というふうにすれば、それを知っている人にとってはそれが驚き最小になるだろう。

ただ、多くの場合人間はそこまで抽象度が高い認識をしているわけではないので、抽象度が高すぎる見せ方はかえって驚き最小に反してしまう。すべてをオブジェクトとして見なしてもオブジェクトにならないものだってある。すべてをファイルと見なそうとしても、ファイルにならないものが出てくる。それが抽象化の難しいところで、強力だけれどもやりすぎると発散してしまって混乱を招く。違うものは「違う」ように見せなければならなくなる。

このように「驚き最小の法則」を実現するためには、学習の容易さを促すために、適切な抽象化とそして過度な抽象化の抑制という相反する二つの条件を両立させる必要が出てくるのである。どこまでの抽象化を受け入れられるかは人によって大きな差があるので、あるデザインが多くの人々の間で共有可能であるためには、更に難しいさじ加減が要求される。