問題設定
機能が正しく実装されていても、
ユーザーがそれを効率よく利用できるとは限らない。
多くの場合のボトルネックは機能ではなく、
ユーザー側の認知処理量
にある。
定義
デザインとは、
ユーザーがシステムを理解・操作する際に必要な
思考・探索・判断のコストを削減する設計
である。
ユーザーが行っている処理
UIを使う際、ユーザーは常に次を計算している:
- 何ができるか
- 今どこにいるか
- 次に何をすべきか
- 操作の結果は何か
- 失敗した場合どう戻るか
これらが不明確だと、
ユーザーは毎回推測アルゴリズムを実行することになる。
デザイン不在の状態
- 要素の意味を推測する必要がある
- 画面内を探索する必要がある
- 操作結果を解釈する必要がある
- 一度学習しても他画面で再利用できない
これは言い換えると:
UI側が持つべき情報をユーザーに計算させている状態
である。
良いデザインの状態
理想的には:
- 可能な操作が即座に分かる
- 次の行動がほぼ一意に決まる
- 状態が常に可視化されている
- 学習が他の画面にも転用できる
- エラーから回復可能
つまり、
ユーザーが考える必要がない。
実装上の解釈
デザインは機能追加ではない。
既存機能を最小の認知計算量で利用可能にする最適化層
と捉えられる。
なぜエンジニアだけの環境では不要に見えるか
開発者は:
- システムの内部構造を理解している
- 用語に慣れている
- 手順を記憶している
つまり認知コストが既に支払済みである。
そのため、一般ユーザーとの差が見えにくい。 ただし 最適化余地は多大に残されている ことは後述する。
暫定定義
デザインとは、
システムの能力ではなく、
ユーザー側の処理負担を最小化する設計領域
である。
補足
優れたUIは「簡単」なのではない。
内部の複雑さを外部に漏らさない設計になっている。